我想创建一个具有自定义组的用户,该组只允许我访问一个 S3 存储桶,但我这样做遇到了困难。
我现在看到这个屏幕:
我已经允许 S3 操作。现在我想将其限制为特定存储桶。我单击“资源”文本,得到以下内容:
我单击了两者的“添加 ARN”,得到以下信息:
我使用“whatever”作为存储桶的“存储桶名称”,使用“whatever”作为对象的“存储桶名称”(同时将“对象名称”留空),然后当我尝试使用新建组中新建的帐户访问 S3 时,我发现我无法从存储桶上传或下载文件,否则会出现 403 Forbidden 错误。如果我使用“所有资源”而不是“特定”,它可以工作,但我只希望此用户可以访问一个特定的存储桶。
有任何想法吗?
答案1
答案2
您尚未分享实际的政策,只是向导的屏幕截图。如果您需要政策方面的帮助,请编辑您的帖子以将其包含在内。
网上有很多资源可以帮助解决这个问题,例如这篇 AWS 博客文章, 和本文档。
我有这个策略,它允许对单个存储桶进行只读访问。我将策略附加到一个组,并将需要该策略的用户添加到该组。如果您需要不同的权限,只需将它们添加到 json 中即可。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "Stmt1498596902003",
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:ListAllMyBuckets",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:ListBucketVersions",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::bucket-name",
"arn:aws:s3:::bucket-name/*"
]
}
]
}