2015-05-29 3 views
6

Кто-нибудь выяснил минимальные политики IAM, необходимые для запуска сценария динамической инвентаризации EC2 (ec2.py) по адресу ansible через роль IAM?Ansible EC2 Минимальная политика IAM для динамической инвентаризации

До сих пор я не видел конкретной ссылки в этом вопросе, кроме указания учетных данных для библиотеки boto в официальной документации о возможностях, но в производственных средах я редко использую пары ключей для доступа к услугам AWS от EC2 экземпляры, вместо этого я принял участие в использовании роли IAM для этого сценария.

Я пробовал политики, разрешающие действия ec2:Describe*, но для скрипта это кажется недостаточным, поскольку он всегда выходит с Unauthorized operation.

Не могли бы вы мне помочь?

ответ

4

Я только что создал демо-версию, создал новую роль и использовал эту новую политику, а затем создал новый экземпляр, который использовал эту новую роль.

Demo Политика:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Demo201505282045", 
      "Effect": "Allow", 
      "Action": [ 
       "ec2:Describe*", 
       "route53:ListHostedZones", 
       "route53:ListResourceRecordSets" 
      ], 
      "Resource": "*" 
     } 
    ] 
} 

мне пришлось добавить route53, как я использую route53 вариант (route53 = true в ec2.ini), но кроме этого он работал отлично.

Если у вас по-прежнему возникают проблемы, попробуйте запустить ec2.py из командной строки (./ec2.py), так как обычно они дают разумные сообщения об ошибках при запуске напрямую.

+1

Если включена функция RDS в 'ec2.ini', вы также будете нуждаться в' выстр: Describe' Я думаю – magnetik

+0

Ваш вклад были именно то, что мне нужно было знать, таким образом, я думаю, что это должно быть указано вместе с документация Ansible. Большое спасибо!. –

7

Сценарий также рассматривает RDS и эластику. Они могут быть отключены в ec2.ini, но если вы этого не сделаете, для запуска динамического инвентаря, похоже, будет достаточно следующей политики.

 
{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Demo201505282045", 
      "Effect": "Allow", 
      "Action": [ 
       "ec2:Describe*", 
       "route53:ListHostedZones", 
       "route53:ListResourceRecordSets", 
       "rds:Describe*", 
       "elasticache:Describe*" 
      ], 
      "Resource": "*" 
     } 
    ] 
} 
+0

просто попробовал это сегодня, и он работает. Благодарю. –

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