Wie kann ich den Zugriff auf eine bestimmte IAM-Rollensitzung mithilfe einer identitätsbasierten IAM-Richtlinie einschränken?

Lesedauer: 2 Minute
0

Ich möchte Berechtigungen für eine bestimmte AWS-Identity-and-Access-Management-Rollensitzung (IAM) mit einer identitätsbasierten Richtlinie erteilen.

Auflösung

Erstellen Sie eine IAM-Richtlinie, um den Zugriff auf eine bestimmte IAM-Rollensitzung mithilfe des globalen Kontext-Schlüssels aws:userid von AWS zu ermöglichen.

Hinweis: Wenn Sie beim Ausführen von AWS-Command-Line-Interface-Befehlen (AWS CLI) Fehlermeldungen erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.

Der globale Bedingungsschlüssel aws:userid prüft, ob die eindeutige ID des Auftraggebers, der die Anforderung stellt, mit der in der IAM-Richtlinie angegebenen eindeutigen ID übereinstimmt.

Wenn Sie beispielsweise zulassen möchten, dass eine bestimmte IAM-Rollensitzung nur bestimmte Amazon-Elastic-Compute-Cloud-Aktionen (Amazon EC2) in Ihrem AWS-Konto ausführt. Erstellen Sie eine IAM-Richtlinie ähnlich der folgenden:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowASpecificRoleSession",
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances",
                "ec2:TerminateInstances"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:userid": "AROAXXXXXXXXXXXXXXXXX:<role-session-name>"
                }
            }
        }
    ]
}

Diese IAM-Richtlinie gewährt der Amazon-EC2-Instance Zugriff auf die IAM-Rollensitzung im globalen Bedingungsschlüssel aws:userid. Andere Rollensitzungen können keine Amazon-EC2-Aktionen ausführen.

Um die Rollen-ID für die IAM-Rolle abzurufen, führen Sie den folgenden AWS-CLI-Befehl aus:

$ aws iam get-role --role-name <rolename>

Sie erhalten eine Ausgabe ähnlich der folgenden:

{
    "Role": {
        "Description": "Test Role",
        "AssumeRolePolicyDocument":"<URL-encoded-JSON>",
        "MaxSessionDuration": 3600,
        "RoleId": "AROA1234567890EXAMPLE",
        "CreateDate": "2019-11-13T16:45:56Z",
        "RoleName": "Test-Role",
        "Path": "/",
        "RoleLastUsed": {
            "Region": "us-east-1",
            "LastUsedDate": "2019-11-13T17:14:00Z"
        },
        "Arn": "arn:aws:iam::123456789012:role/Test-Role"
    }
}

Prüfen Sie in der Ausgabe die RoleID-Zeichenfolge. Die Rollen-ID wird in der identitätsbasierten Richtlinie verwendet, um den Zugriff von Amazon-EC2-Instances auf die IAM-Rollensitzung einzugrenzen.

Hinweis: Der globale Bedingungsschlüssel aws:userid kann in jeder Art von IAM-Richtlinie verwendet werden, z. B. in einer identitätsbasierten Richtlinie, einer ressourcenbasierten Richtlinie, einer Richtlinie für Berechtigungsgrenzen usw. Die Werte für den globalen Bedingungsschlüssel aws:userid hängen davon ab, welcher Prinzipaltyp die Anforderung initiiert. Informationen zum Ermitteln der Werte für verschiedene Typen von Hauptbenutzern finden Sie unter Informationen, die in allen Anforderungen verfügbar sind.


Zugehörige Informationen

Kann ich den Zugriff auf bestimmte Amazon-EC2-Ressourcen durch IAM-Nutzer einschränken?

Wie kann ich mit IAM-Richtlinientags die Erstellung von EC2-Instances oder EBS-Volumes beschränken?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren