2015-05-29 12 views
6

Qualcuno ha individuato le politiche IAM minime richieste per eseguire lo script di inventario dinamico EC2 (ec2.py) su ansible tramite un ruolo IAM?Ansible EC2 Condizioni minime di inventario dinamico IAM

Finora, non ho visto un riferimento concreto in questa materia se non specificando credenziali per la libreria boto nella documentazione ufficiale di ansible, tuttavia, negli ambienti di produzione, utilizzo raramente coppie di chiavi per l'accesso ai servizi AWS da EC2 istanze, invece ho abbracciato l'uso dei ruoli IAM per quel caso.

Ho provato i criteri che consentono azioni ec2:Describe* ma non sembra essere sufficiente per lo script in quanto esce sempre con Unauthorized operation.

Potrebbe aiutarmi?

risposta

4

Ho appena creato una politica demo, creato un nuovo ruolo e utilizzato quella nuova politica, quindi ho creato una nuova istanza che utilizzava quel nuovo ruolo.

politica Demo:

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

ho dovuto aggiungere route53 come si utilizza l'opzione route53 (route53 = true nel ec2.ini), ma diverso da quello che ha funzionato bene.

Se si riscontrano ancora problemi, provare a eseguire ec2.py dalla riga di comando (./ec2.py) poiché in genere vengono forniti messaggi di errore ragionevoli quando vengono eseguiti direttamente.

+1

Se è stata abilitata RDS in 'ec2.ini', avrete anche bisogno di' RDS: Describe' credo – magnetik

+0

I suoi contributi sono stati esattamente ciò che avevo bisogno di sapere, in tal modo, credo che questo dovrebbe essere specificato insieme la documentazione di Ansible. Molte grazie!. –

7

Lo script esamina anche RDS ed elasticache. Possono essere disabilitati in ec2.ini, ma se non lo fai, la seguente politica sembra essere sufficiente per eseguire l'inventario dinamico.

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

ho appena provato questo oggi e funziona. Grazie. –

Problemi correlati