2016-12-13 2 views
0

Не имея проблем с получением политики IAM для работы в очереди SQS, я попробовал симулятор политики IAM. Независимо от того, насколько просто я делаю свою политику, он всегда говорит, что это отрицается.Простейшая возможная политика IAM отрицается. Зачем?

Нижеприведенная политика предназначена для любых действий в отношении любого ресурса SQS. Это политика, которую я привязываю к конкретному пользователю, поэтому Принципал не указан.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Action": "sqs:*", 
     "Effect": "Allow", 
     "Resource": "arn:aws:sqs:::*" 
    } 
    ] 
} 

Когда я пытаюсь запустить в симуляторе политики для действия listQueues, я получаю отказано: Косвенно не отрицает (нет соответствия statments). Как это утверждение может не совпадать?

Here'a скриншот того, что было отказано в редакторе политики:

enter image description here

ответ

2

Это не самая простая IAM политика. Это:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Action": "*", 
      "Effect": "Allow", 
      "Resource": "*" 
     } 
    ] 
} 

Вы нажимаете «Применить» в нижней части редактора политики, прежде чем запускать симуляцию?

+0

Вы верны. Изменение предложения ресурса на то, что у вас было, устранило проблему. См. Мой ответ для деталей. – davidgyoung

2

По умолчанию симулятор политики IAM устанавливает ARN ресурса, который вы имитируете, для доступа к *. По какой-то причине это не соответствует положению ресурса "Resource": "arn:aws:sqs:*:*:*"

Как только я расширил часть ресурса симулятора (см. Снимок экрана ниже) и вставил в ARN для действительного ресурса SQS, согласованная политика. См. Снизу скриншота ниже.

Еще одна вещь, которую я нашел исправленной, - это то, что предложил @ Mark-B. Изменение предложения ресурса до "Resource": "*". соответствовал исходному ресурсу Policy Simulator от *, тогда как "Resource": "arn:aws:sqs:*:*:*" - нет.

enter image description here

Смежные вопросы