2016-12-17 5 views
1

У меня есть x x EC2 экземпляров, которые я хочу ограничить действиями ec2 экземплярами с тем же тегом key/value (I.E. platform = dev).Политика IAM с использованием условия ec2: ResourceTag не работает

Я смотрю на это делать, используя IAM политики, прикрепленную к группе их по умолчанию пользователь IAM находится в

Политика:.

{ 
"Version": "2012-10-17", 
"Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "ec2:*", 
     "Resource": "*", 
     "Condition": { 
      "StringEquals": { 
       "ec2:ResourceTag/tag:platform": "dev" 
      } 
     } 
    } 
]} 

Я установить это в соответствии с онлайн-документации AWS: Example Policies for Working With the AWS CLI or an AWS SDK

Я проверяю его в симуляторе политики и работает как ожидалось (пройдите в dev, и это разрешено, в противном случае отрицается).

Затем на один из серверов с ключом тега/парой платформы = разработчик, я бегом aws ec2 describe-instances я получаю ответ:

An error occurred (UnauthorizedOperation) when calling the DescribeInstances operation: You are not authorized to perform this operation. 

но если я удалить условие он работает. Я не понимаю, что я делаю неправильно. Любая помощь будет с благодарностью получена!

ответ

2

Проблема в том, что не все действия API & Ресурс примет условие ec2: ResourceTag/tag в состоянии.

Я думаю, что вы, вероятно, предоставляете слишком широкие разрешения (Action: ec2: *), поэтому выясните, какие действия потребуются вашим экземплярам, ​​а затем решите, как их ограничить.

Список ключей действий, ресурсов и условий находится по адресу Supported Resource-Level Permissions for Amazon EC2 API Actions.

+0

Спасибо, Крис, я только тестировал это. У меня есть конкретные действия, проверенные и работающие без условия. Работая с этим, я предполагал, что я уменьшаю факторы, которые могут быть неправильными, но, как и в другом ответе, я не могу полагаться на то, чтобы быть правдой (условие может работать только с более конкретными определениями действий/ресурсов) , – the4thv

1

Я столкнулся с этим вопросом раньше, это как-то связано с объединением подстановочных знаков и условий. То, что было решено для нас, было более явным в действии (например, ["ec2:DescribeInstances"]), а также на ресурсе (arn:aws:ec2:region:accountid:instance/*).

+0

Спасибо - между вашими ответами я получил его. – the4thv

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