-
Are in a private subnet to block the incoming internet connection
-
Can’t be sshed from outside of the private network.
-
Allow only requests from specific local Ip range
-
All web instances have well defined security groups and there is no open ports to the world.
-
Instances has no ssh keys and has only one key in
~/.ssh/authorizedkeys
-
In a public network.
-
Can not be pinged
-
Can not be sshed
-
All security groups are well defined and well named
-
Any irrelevant security group has to be removed
- There is a security group just for load balancer
-
Production & staging SSH keys has to be secured with a passphrase.
-
Every AWS user has different credentials and well defined policies
-
AWS Keys has to be rotated at least in every 6 months. Add a calendar entry that repeats every 6 months.
-
AWS Root key has to be protected well. If no need to use. The access key has to be deleted from AWS panel.
-
Root account shouldn’t be used just to access to AWS. Create an individual AWS account for yourself (as manager)
-
Check every AWS user has MFA
-
Require users to create strong passwords. Check the related setting for this requirement. docs.aws.amazon.com
-
Check and delete unnecessary keys
-
Encrypt ~/.aws/credentials file in your local
-
is active
-
Check the latest CloudTrail archive date on S3
- Check if the sensitive files encrypted at S3
- Check if data encryption is enabled on MongoDb
- Configure GuardDuty with proper notification channels.