我想要一个存储桶策略,允许访问存储桶中的所有对象,并对存储桶本身执行操作,如列出对象。 (行动是s3:*
。)
我能够通过使用两个不同的资源名称来解决这个问题:一个用于arn:aws:s3:::examplebucket/*
,另一个用于arn:aws:s3:::examplebucket
。
有没有更好的方法来做到这一点 - 有没有办法一次性指定一个引用桶本身及其所有包含对象的资源标识符?
答案 0 :(得分:2)
针对Bucket的权限与针对Bucket中的对象的权限是分开的。因此,您必须向两者授予权限。
幸运的是,您可以编写一个较短的版本来组合存储桶级和对象级权限:
{
"Id": "BucketPolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllAccess",
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
],
"Principal": "*"
}
]
}