AWS账户标识符的影响

时间:2020-03-06 14:41:32  来源:igfitidea点击:

我正在使用Amazon的工具来构建Web应用程序。我对他们感到非常满意,但是我有安全方面的顾虑。

现在,我正在使用多个EC2实例,即S3,SimpleDB和SQS。为了验证对不同服务的请求,我们需要包括访问标识符(需要登录)。

例如,要将文件从EC2实例上载到S3,EC2实例需要具有访问密钥ID和秘密访问密钥。

这基本上意味着用户名和密码必须在实例中。

如果要破坏我的一个实例,那么我所有的亚马逊资产都将受到破坏。这些键可用于上载/替换S3和SimpleDB数据,启动和停止EC2实例等。

如何最大程度地减少单个受感染主机的损坏?

我的第一个想法是为每个帐户获取多个标识符,这样我就可以跟踪所做的更改并快速撤消"被黑"的帐户。每个帐户Amazon不支持一组以上的凭证。

我的第二个想法是创建多个帐户并使用ACL来控制访问。不幸的是,并非所有服务都支持向其他帐户授予对数据的访问权限。再加上带宽,我们使用的越多越便宜,因此通过一个帐户进行所有交易是理想的。

有没有人处理过或者至少考虑过这个问题?

解决方案

我们可以做的是拥有一个超级锁定的"身份验证服务器"。秘密密钥仅存在于该服务器上,而其他所有服务器则需要向其寻求许可。我们可以将自己的密钥分配给各种服务器,也可以按IP地址将其锁定。这样,如果服务器受到威胁,我们只需从"身份验证服务器"中撤消其密钥即可。

这是有可能的,因为AWS身份验证的工作方式。假设网络服务器需要将文件上传到S3. 首先,它将生成AWS请求,并将该请求与自定义服务器密钥一起发送到"身份验证服务器"。身份验证服务器将对请求进行身份验证,进行加密魔术操作,然后将经过身份验证的字符串返回给Web服务器。然后,Web服务器可以使用它来实际提交请求以及要上传到S3的文件。

AWS提供了"合并账单",可在第二个思路中解决问题。

https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=consolidated-billing

"合并账单使我们可以通过指定一个付费帐户来合并公司中多个Amazon Web Services(AWS)帐户的付款。我们可以查看所有帐户产生的AWS费用的合并视图,并获得详细的费用报告与付费账户相关联的每个单独的AWS账户。合并账单还可以降低总体成本,因为所有账户的汇总使用情况可以更快地达到低价交易量层。"