S3“拒绝访问”到存储桶
Posted
技术标签:
【中文标题】S3“拒绝访问”到存储桶【英文标题】:S3 "Access Denied" to Bucket 【发布时间】:2018-01-28 15:13:16 【问题描述】:我尝试允许我们的一个开发人员 (myapp-dev1) 访问一个明确的 S3-Bucket。
我创建了一个应该允许 CRUD 选项的策略(他应该能够将图像文件写入和读取到该存储桶中,并且只能写入该存储桶中。
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListObjects"
我创建了一个名为 dev1 的用户并将他分配给该新策略(该用户既不在组中,也没有角色)
我创建了一个相应命名的存储桶ARN: arn:aws:s3:::myapp-dev1-bucket
然后在这个存储桶中,我切换到“存储桶策略”并使用“策略生成器”并允许在那一刻所有操作。到目前为止,所有其他设置都失败了,这个也是。它看起来像这样:
"Id": "Policy123456789",
"Version": "2012-10-17",
"Statement": [
"Sid": "Stmt123456789",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::myapp-dev1-bucket",
"Principal":
"AWS": [
"arn:aws:iam::1234567890:user/myapp-dev1"
]
]
但我还是得到了一个
我做错了什么? 我错过了什么? 是否还必须允许用户列出存储桶?Excon::Error::Forbidden: Expected(200) Actual(403 Forbidden)
请帮忙!
【问题讨论】:
此存储桶是用于提供图像/资产还是用于提供已编译的单页应用程序? 用于提供图片,由应用通过 Carrierwave 上传。 【参考方案1】:试试这个,
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::Bucket_Name"
]
,
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListObject"
],
"Resource": [
"arn:aws:s3:::Bucket_Name/*"
]
]
【讨论】:
以上是关于S3“拒绝访问”到存储桶的主要内容,如果未能解决你的问题,请参考以下文章
如何在删除空S3 Elastic Beanstalk时修复“拒绝访问”?
为啥我的 lambda 函数在尝试访问 S3 存储桶时会被拒绝访问?