如何限制Amazon S3 API访问?

8
有没有一种方法可以创建不同的身份来访问Amazon S3存储桶的REST API,我可以限制访问(例如只读)?
3个回答

9
推荐的方式是使用IAM创建新用户,然后将策略应用于该用户。您可以访问此链接来创建策略。

4

是的,你可以。S3 API文档描述了可用于您的身份验证和访问控制服务。您可以设置一个存储桶,以便另一个Amazon S3帐户可以读取但无法修改存储桶中的项目。


那我需要设置另一个S3账户并使用它的凭证(密钥/秘钥)吗? - David Whatley
这将限制他们(指拥有其他帐户凭据的人)操纵共享存储桶的能力,但他们是否可以自由访问该S3帐户和存储?也就是说,他们可以通过API创建存储桶并上传文件。我特别寻找一种客户端应用程序,可以使用RESTful API与S3通信,但在使用这些凭据时受到限制。即只读。这可能吗? - David Whatley
你说得对,使用另一个S3账户确实会使该账户有能力创建新的存储桶。我能想到的唯一方法是使用匿名访问您的S3存储桶来实现您的建议。如果您选择足够随机的对象名称,那么人们不太可能猜出您对象的名称。但是,您将负责匿名下载产生的带宽费用,并且对您对象的访问不限于经过身份验证的账户。 - Greg Hewgill
我不担心人们下载东西...只是不希望他们做其他事情。就像只读一样。因此,如果使用REST API,则始终适用于具有对商店的完全访问权限的用户?唯一的方法是通过对象的公共URL使用普通的HTTP下载来完成这样的操作? - David Whatley
为了使用REST API,其他用户必须进行身份验证。要进行身份验证,他们必须拥有自己的Amazon AWS账户。由于账户是独立的,您无法限制他们在自己的账户上可以做什么。因此,您唯一的选择似乎是提供公共下载访问权限。 - Greg Hewgill

1

请查看http://docs.amazonwebservices.com/AmazonS3/2006-03-01/dev/index.html?UsingAuthAccess.html 的详细信息(跟随链接到“使用查询字符串认证”)- 这是Greg发布的子文档,描述了如何动态生成访问URL。

这使用了私有密钥的散列形式,并允许过期时间,因此您可以在不允许访问S3存储库中的其他文件时,为桶中的文件提供短暂访问权限。

构建REST URL非常困难,我花了大约三个小时编码才做对,但这是一种非常强大的访问技术。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接