是否可以编写这样的AWS S3策略
可以做到吗?
我找不到允许我这样做的“条件” ...
谢谢
PS: 1)我只是编辑了这个问题,因为它是存储区还是对象名称以“ ...”结尾的模棱两可 2)从那以后,我无法过滤可以列出的存储桶的名称 3)bruno-reis的评论清楚表明,无论如何这都是一个坏主意
答案 0 :(得分:1)
否,这是不可能的。
您正在请求适用于多个存储桶的策略。因此,这需要成为 IAM策略,因为存储桶策略仅适用于特定存储桶。
尽管IAM策略允许使用通配符,但它们的功能非常有限。例如,该策略将出现起作用,并且确实授予对以-output
结尾的存储桶的访问权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::*-output/*"
}
]
}
因此,此命令将成功:
aws s3 cp foo-output/bar.txt .
但是,它也允许以下命令:
aws s3 cp foo/results-output/bar.txt .
这是因为策略中的通配符不能区分ARN中引用存储桶名称和路径/对象名称的部分。
因此,他们很可能可以访问未以-output
结尾的存储桶。因此,这是不安全的政策。