(Translated from Twenty Rules for Amazon cloud security)
-
Encrypt all network traffic.
-
Use only encrypted file systems for Block devices and non-root local devices.
-
Encrypt everything you put in S3 using strong encryption.
-
Never allow decryption keys to enter the cloud-unless and only for the duration of an actual decryption activity.
-
Include no authentication credentials in your AMIS encrypt t a key for decrypting the file system key.
-
Pass in your file system key encrypted at instance start-up.
-
Do not allow password-based authentication for shell access. Ever.
-
Do not require passwords for sudo access.
-
Design your systems so that you do not rely on a special AMI structure for your application to function.
-
Regularly pull full backups out of Amazon and store them securely elsewhere.
-
Run only one service per EC2 instance.
-
Open only the minimum ports necessary to support the services on an instance.
-
Specify source addresses when setting up your instance; only allow global access for global services like HTTP/HTTPS.
-
Segment out sensitive data from non-sensitive data into separate databases in separate security groups when hosting an application with highly sensitive data.
-
Automate your security embarrassments.
-
Install a host-based intrusion detection system likeOssec.
-
Leverage system hardening tools likeBastille Linux.
-
If you suspect a compromise, backup the root file system, snapshot your block volumes, and shut down the instance. You can perform forensics on an uncompromised system later.
-
Design things so you can roll out a security patch to an AMI and simply relaunch your instances.
-
Above all else, write Secure Web Applications.
20 Amazon cloud security rules