最简单的 IAM 策略被拒绝。为什么?
Simplest possible IAM Policy is Denied. Why?
我无法让 IAM 策略为我的 SQS 队列工作,我尝试了 IAM 策略模拟器。无论我的政策多么简单,它总是说它被拒绝了。
以下策略旨在允许对任何 SQS 资源执行任何操作。这是我附加到特定用户的策略,这就是未指定委托人的原因。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sqs:*",
"Effect": "Allow",
"Resource": "arn:aws:sqs:::*"
}
]
}
当我尝试 运行 在策略模拟器中执行 listQueues 操作时,我被拒绝了:隐式拒绝(没有匹配的声明)。这个说法怎么可能不符呢?
这是在政策编辑器上被拒绝的屏幕截图:
这不是最简单的 IAM 策略。这是:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "*",
"Effect": "Allow",
"Resource": "*"
}
]
}
您是否在 运行 模拟之前单击策略编辑器底部的 "Apply"?
默认情况下,IAM 策略模拟器将您正在模拟访问的资源的 ARN 设置为 *
。由于某种原因,这与 "Resource": "arn:aws:sqs:*:*:*"
的 Resource 子句不匹配
一旦我展开了模拟器的资源部分(见下面的屏幕截图),并粘贴到有效 SQS 资源的 ARN 中,策略就匹配了。请参阅下面屏幕截图的底部。
我发现解决问题的另一件事是@Mark-B 的建议。将 Resource 子句更改为 "Resource": "*"
。与策略模拟器的默认资源 *
匹配,而 "Resource": "arn:aws:sqs:*:*:*"
不匹配。
我无法让 IAM 策略为我的 SQS 队列工作,我尝试了 IAM 策略模拟器。无论我的政策多么简单,它总是说它被拒绝了。
以下策略旨在允许对任何 SQS 资源执行任何操作。这是我附加到特定用户的策略,这就是未指定委托人的原因。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sqs:*",
"Effect": "Allow",
"Resource": "arn:aws:sqs:::*"
}
]
}
当我尝试 运行 在策略模拟器中执行 listQueues 操作时,我被拒绝了:隐式拒绝(没有匹配的声明)。这个说法怎么可能不符呢?
这是在政策编辑器上被拒绝的屏幕截图:
这不是最简单的 IAM 策略。这是:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "*",
"Effect": "Allow",
"Resource": "*"
}
]
}
您是否在 运行 模拟之前单击策略编辑器底部的 "Apply"?
默认情况下,IAM 策略模拟器将您正在模拟访问的资源的 ARN 设置为 *
。由于某种原因,这与 "Resource": "arn:aws:sqs:*:*:*"
一旦我展开了模拟器的资源部分(见下面的屏幕截图),并粘贴到有效 SQS 资源的 ARN 中,策略就匹配了。请参阅下面屏幕截图的底部。
我发现解决问题的另一件事是@Mark-B 的建议。将 Resource 子句更改为 "Resource": "*"
。与策略模拟器的默认资源 *
匹配,而 "Resource": "arn:aws:sqs:*:*:*"
不匹配。