AWS S3 AccessDenied。授予了存储区权限,因此当我是用户时,是否需要存储桶策略?

时间:2012-01-31 04:20:38

标签: amazon-s3

当我测试将图像上传到我的S3存储桶时,我得到了一个AWS :: S3 :: AccessDenied(使用Ruby on Rails)。代码使用我自己的安全密钥和密码到我自己的桶中,我已经授予自己所有权限(列表,上传/删除,查看权限,编辑权限)。

我还需要输入Bucket Policy来设置ACL权限吗?我不明白为什么这是必要的,因为我的代码使用我自己的帐户密钥来访问S3。此外,图像在我的网站上显示正常,因此读取权限似乎没有问题。

1 个答案:

答案 0 :(得分:5)

你不需要在存储桶上设置任何策略,并且应该删除它们,至少是为了让事情运行起来。不需要设置任何ACL。

帐户持有者的AWS ID +密码可以访问存储桶中的所有内容,而无需任何ACL或策略集。

一旦你开始工作,你可能想要使用amazon IAM来创建一个比完整帐户持有者具有更低访问量的“用户”,并在ruby代码中使用该用户的凭据来处理上传。

我发现您希望上传的图像具有公共读取功能,为此您需要一个策略或ACL,但这不应该干扰上传。您可以稍后打开一些只读访问权限。

还可以在Cyber​​duck等工具中尝试这些AWS密钥和秘密,看看它是否是您的红宝石代码或ID。