我正在使用亚马逊的工具构建Web应用程序。我对它们非常满意,但是我有一个安全问题。
目前,我正在使用多个EC2实例、S3、SimpleDB和SQS。为了验证对不同服务的请求,您需要包含您的访问标识(需要登录)。
例如,要从EC2实例上传文件到S3,您的EC2实例需要拥有您的访问密钥ID和秘密访问密钥。
这基本上意味着您的用户名和密码需要在您的实例中保存。
如果我的其中一个实例受到攻击,所有的亚马逊资产都将受到威胁。这些密钥可以用于上传/替换S3和SimpleDB数据,启动和停止EC2实例等等。
如何最小化单个受攻击主机的损失?
我首先想到的是获取每个帐户的多个标识符,以便我可以跟踪所做的更改并快速撤销“被盗”的帐户。但亚马逊不支持在一个帐户中使用多组凭据。
我的第二个想法是创建多个帐户并使用ACL控制访问。不幸的是,并非所有服务都支持授予其他帐户对您的数据的访问权限。而且,带宽使用越多,费用越低,因此让全部数据经过一个帐户是理想的。
有人处理过或者至少考虑过这个问题吗?