[FIXED] Kann ich vorhandene IAM-Richtlinien nach einer bestimmten Aktion durchsuchen?

Ausgabe

Gibt es in AWS IAM eine Möglichkeit, entweder durch Skripting oder in der Webkonsole herauszufinden, welche vorhandenen Richtlinien eine bestimmte Aktion enthalten?

Beispielsweise möchte ich der Rolle myRoleden Zugriff auf die DescribeTags -Aktion auf allen meinen EC2-Instances erlauben. Ich weiß, dass ich meine eigene Richtlinie mit einer entsprechenden Regel erstellen kann, möchte aber eine vorhandene Amazon-Richtlinie verwenden, falls eine solche existiert.

Lösung

Dies ist ein alter Beitrag, aber er kann jemandem helfen … Ungeachtet dessen, was andere gesagt haben, können Sie dies tun. Es erfordert nur ein wenig Skripting.

Mit der AWS CLI können Sie Folgendes tun.

  1. Rufen Sie die ARNs der Richtlinien ab und speichern Sie sie im policies_arnArray.

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

  2. Rufen Sie die VersionIds für jede Richtlinie ab und speichern Sie sie im policies_verArray.

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

  3. Verwenden Sie eine for-Schleife, um jede Richtlinie zu durchlaufen und das Richtliniendokument darin zu speichernpolicies.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 policies.txtSie in einem Texteditor und suchen Sie nach Ihrer Aktion.

Hinweis: Abhängig von Ihrer CLI-Konfiguration benötigen Sie den --output textParameter möglicherweise nicht. Die Ausgabe muss jedoch Text (nicht JSON) sein, damit dies funktioniert.

Von dort aus können Sie das .shganz einfach in ein Shell-Skript umwandeln.

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!


Beantwortet von –
Sathed


Antwort geprüft von –
Terry (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like