我在编写AWS策略以向用户授予对单个存储桶的读/写访问权限时遇到问题。根据我在网上找到的示例,这似乎很简单:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-bucket"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::my-bucket/*"
]
}
]
}
但是,策略编辑器返回错误提供的策略文档不符合指定策略类型的要求。
策略编辑器中的一条评论还显示:
要允许操作,请包含格式为““效果”:“允许”的语句。所有其他动作均被隐式拒绝。 要明确拒绝操作,请包含格式为“效果”:“拒绝”的语句。 只有“拒绝”语句可以包含资源和条件。
此评论与我发现的每个示例都不符。我无法想象如何在不指定资源的情况下有效地编写全局使用“允许”效果的策略,然后“拒绝”是精细的并指出其影响的资源。