"Implicitly denied" 当我在 AWS Policy Simulator 中明确允许 S3 IAM 用户操作时
"Implicitly denied" when I've explicitly allowed S3 IAM user actions in AWS Policy Simulator
我正在尝试模拟我想附加到用户的 IAM 策略,这样我就可以限制他们对两个存储桶的访问,一个用于文件上传,一个用于文件下载。
策略模拟器告诉我以下策略不起作用,我也不知道为什么,但似乎与通配符有关。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GetObject",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket-*-report-output/*.csv"
]
},
{
"Sid": "PutObjects",
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": [
"arn:aws:s3:::mybucket-*-report-input/*.csv"
]
}
]
}
政策模拟器说以下政策确实有效:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GetObject",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket-*-report-output"
]
},
{
"Sid": "PutObjects",
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": [
"arn:aws:s3:::mybucket-*-report-input"
]
}
]
}
关于如何构建策略,我肯定缺少一些东西,但我想限制对策略中存储桶的访问,对于提到的操作,但我也想确保用户只能添加和检索扩展名为 .csv
的文件。
下面是模拟器的截图:
您的政策 100% 正确 - IAM 政策模拟器出于某些荒谬的原因显示错误的结果。
我也可以使用上述策略重现您的问题,结果到处都是 - 有时两者都被允许,两者都被拒绝,只允许一个等等。
双通配符似乎有问题,有时它会在返回的 HTTP 响应中评估错误的资源 ARN(我有时会看到两个 ARN 都设置为 output
而不是仅在 HTTP 响应的网络选项卡中将 1 设置为 output
- 缓存?)。
它不仅限于 PutObject
,它给我带来了很多与双通配符冲突的结果,即使对于 s3:RestoreObject
.
等其他操作也是如此
无论如何,我不确定问题出在哪里,但您的政策是正确的 - 在这种情况下请忽略 IAM 政策模拟器。
如果您有权访问 AWS Support,我会在那里创建一个支持票证,或者 post 这个问题与 AWS forums.
上的潜在错误相同
结果相互矛盾的证据,即使我已经完全重新创建了您的场景:
我正在尝试模拟我想附加到用户的 IAM 策略,这样我就可以限制他们对两个存储桶的访问,一个用于文件上传,一个用于文件下载。
策略模拟器告诉我以下策略不起作用,我也不知道为什么,但似乎与通配符有关。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GetObject",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket-*-report-output/*.csv"
]
},
{
"Sid": "PutObjects",
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": [
"arn:aws:s3:::mybucket-*-report-input/*.csv"
]
}
]
}
政策模拟器说以下政策确实有效:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GetObject",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket-*-report-output"
]
},
{
"Sid": "PutObjects",
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": [
"arn:aws:s3:::mybucket-*-report-input"
]
}
]
}
关于如何构建策略,我肯定缺少一些东西,但我想限制对策略中存储桶的访问,对于提到的操作,但我也想确保用户只能添加和检索扩展名为 .csv
的文件。
下面是模拟器的截图:
您的政策 100% 正确 - IAM 政策模拟器出于某些荒谬的原因显示错误的结果。
我也可以使用上述策略重现您的问题,结果到处都是 - 有时两者都被允许,两者都被拒绝,只允许一个等等。
双通配符似乎有问题,有时它会在返回的 HTTP 响应中评估错误的资源 ARN(我有时会看到两个 ARN 都设置为 output
而不是仅在 HTTP 响应的网络选项卡中将 1 设置为 output
- 缓存?)。
它不仅限于 PutObject
,它给我带来了很多与双通配符冲突的结果,即使对于 s3:RestoreObject
.
无论如何,我不确定问题出在哪里,但您的政策是正确的 - 在这种情况下请忽略 IAM 政策模拟器。
如果您有权访问 AWS Support,我会在那里创建一个支持票证,或者 post 这个问题与 AWS forums.
上的潜在错误相同结果相互矛盾的证据,即使我已经完全重新创建了您的场景: