【发布时间】:2016-03-31 17:15:37
【问题描述】:
如何从本地计算机授予对 amazon s3 存储桶的访问权限?我不断收到此错误:
Expected(200) <=> Actual(403 Forbidden) excon.error.response :body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AllAccessDisabled</Code><Message>All access to this object has been disabled</Message>
在 IAM 控制台中,我为自己设置了 AmazonS3FullAccess 和 AdministratorAccess 策略。
在“权限”下的 S3 控制台中,我有这个 CORS 配置:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://localhost:3000</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>https://localhost:3000</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
但是,在 S3 控制台中,当我单击“添加存储桶策略”时,策略编辑器为空白。 IAM 控制台中创建的两个策略不应该显示在此处吗?或者它们是不同的东西?
我应该在策略编辑器中添加什么策略?我尝试过创建一个,但出现了很多错误。
【问题讨论】:
-
您是通过 HTTP 还是通过 XML 连接?
-
这里有几个问题... CORS 配置与访问控制无关,IAM 策略不会出现在存储桶策略中,因为它们不是存储桶策略。 IAM 策略和存储桶策略一起工作——如果其中一个或两个都授予,则授予权限;如果其中一个或两个都拒绝,则拒绝许可。最后,
All access to this object has been disabled表示您正在访问错误的存储桶——当您访问某个帐户所拥有的存储桶被取消时,似乎会出现该错误。
标签: ruby-on-rails amazon-web-services amazon-s3