我们有一个网络应用程序,可以上传文件到S3。要做到这一点,需要一个配置文件,其中包含我的AWS账户的访问密钥id和访问密钥。
我不是运行web应用程序的机器的系统管理员。所以基本上这个人可以抓取我的访问密钥,例如启动、停止和终止EC2实例等。
在这种情况下,我如何才能将我的密钥保密?
编辑:为了澄清,这并不是不信任系统管理员,否则这样的人将无法获得他维护的框的root访问权限。信任系统管理员并不意味着我必须给他/她我的信用卡信息,我的房子和汽车的钥匙,等等。这太荒谬了。
这件事是,亚马逊在概述安全流程( http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1697 )时提到:
在EC2中,主机管理员和云管理员可以是单独的人员,从而允许强制实施两个人工规则安全策略。
但是,如果主机管理员需要访问密钥才能上传到S3,我不明白这两者怎么能分开。
发布于 2010-07-09 13:49:13
不幸的是,我没有时间在这里发布详细的说明,但我强烈建议您查看如何设置policies for a bucket和access policy language。您应该能够仅允许从特定IP地址(与您的EC2实例相关联)向给定存储桶进行未经身份验证的上传。您还可以创建第二个AWS帐户,该帐户除了上传到该存储桶之外根本没有访问权限。这样,即使管理员偷走了你的证书,他们也不会得到任何有用的东西。
发布于 2010-07-09 11:46:39
我不相信你能做到。如果sys管理员想要您的密钥,并且拥有对机器的root访问权限,他们将能够获得它。
发布于 2010-07-09 11:47:21
你绝对应该(对你的密钥保密)。
您应该提供另一种将文件上传到服务器的方法。我可以想象S3允许你创建帐号,如果你只有一个FTP机器,你可以创建一个新帐号或者安装一个EC2服务器来进行上传。
https://stackoverflow.com/questions/3209670
复制相似问题