[英]Rails localhost connecting to amazon s3 bucket
您如何从本地计算机授予对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控制台中创建的两个策略不应该显示在这里吗? 还是他们不同?
我应该在策略编辑器中添加什么策略? 我尝试创建一个,但是出现很多错误。
问题很可能出在您的存储桶策略中。 只要您的本地主机作为KEY和SECRET都没有关系。
尝试将此策略添加到您要连接的IAM用户:
{
"Version": "2015-12-26",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::BUCKET_NAME"
]
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::BUCKET_NAME/*"
]
}
]
}
这样做是允许用户查找该存储桶名称(顶部),然后与所有文件夹arn:aws:s3:::BUCKET_NAME/*
进行交互。
如果要限制该用户使用子文件夹,只需在上方修改该部分。
让我知道是否可行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.