2016-07-08 17 views
0

In AWS IAM gibt es eine Möglichkeit, entweder durch Skripting oder in der Webkonsole, welche vorhandenen Richtlinien eine bestimmte Aktion enthalten?Kann ich nach vorhandenen IAM-Richtlinien für eine bestimmte Aktion suchen?

Zum Beispiel möchte ich Rolle myRole Zugriff auf die Aktion DescribeTags auf alle meine EC2-Instanzen haben. Ich weiß, dass ich meine eigene Richtlinie mit einer entsprechenden Regel erstellen kann, möchte jedoch eine vorhandene Amazon-Richtlinie verwenden, wenn so etwas existiert.

Antwort

0

Ja, Sie können nach verfügbaren Richtlinien in der Webkonsole suchen. Überprüfen Sie diesen Screenshot unten.

enter image description here

+0

Gibt es eine Möglichkeit, diese Liste durch Aktionen einzuschränken? Ich könnte die 200+ Richtlinien manuell nach 'DescribeTags' durchgehen, aber das wäre mühsam. In meinem Fall funktionierte "AmazonEC2ReadOnlyPolicy" gut genug, aber das war im Wesentlichen nur eine "glückliche Vermutung". Was ich mir erhofft habe, ist eine Möglichkeit, nach "ec2: DescribeTags" oder sogar "ec2: Describe *" in allen verfügbaren Richtlinien zu suchen. – amacleod

+1

Nein, das geht nicht, wenn Sie den Richtliniensimulator ausprobieren können, aber Sie können die Richtlinie nicht nach Schlüsselwörtern in der obigen Konsole durchsuchen. – error2007s

0

Dies ist eine alte Post, aber es kann jemand helfen ... Trotz allem, was andere gesagt haben, können Sie dies tun. Es erfordert nur ein bisschen Scripting.

Sie können mit dem AWS CLI Folgendes tun.

  1. die ARN der Politik holen und in der policies_arn Array speichern.

    mapfile -t policies_arn < <(aws iam list-policies --query 'Policies[*].[Arn]' --output text)

  2. die VersionIds für jede Politik und Geschäft in der policies_ver Array holen. up policies.txt in einem Texteditor und suchen Sie Ihre Aktion

    mapfile -t policies_ver < <(aws iam list-policies --query 'Policies[*].[DefaultVersionId]' --output text)

  3. Nutzung durch jede Politik Schleife eines for-Schleife und speichern Sie das Richtliniendokument in ~/policies.txt

    for ((i=0; i<${#policies_arn[@]}; i++)); do echo ${policies_arn[i]} >> policies.txt && aws iam get-policy-version --policy-arn ${policies_arn[i]} --version-id ${policies_ver[i]} --output json >> ~/policies.txt; done

  4. öffnen.

Hinweis: Je nach CLI-Konfiguration, können Sie oder können die --output text Parameter nicht benötigen. Die Ausgabe muss jedoch Text (nicht JSON) sein, damit dies funktioniert.

Von dort können Sie das in ein .sh Shell-Skript leicht genug drehen.

Beispielausgabe:

arn:aws:iam::123456789012:policy/DenyAllAccess 
{ 
    "PolicyVersion": { 
     "CreateDate": "2016-12-06T18:40:51Z", 
     "VersionId": "v1", 
     "Document": { 
      "Statement": [ 
       { 
        "Action": "*", 
        "Effect": "Deny", 
        "Resource": "*" 
       } 
      ], 
      "Version": "2012-10-17" 
     }, 
     "IsDefaultVersion": true 
    } 
} 

Prost!