在實例啓動時解密用戶的文件系統;html
(譯自 Twenty Rules for Amazon Cloud Security)linux
Encrypt all network traffic.web
Use only encrypted file systems for block devices and non-root local devices.shell
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.promise
Include NO authentication credentials in your AMIs except 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.app
Do not require passwords for sudo access.less
Design your systems so that you do not rely on a particular 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 like OSSEC.
Leverage system hardening tools like Bastille 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.