Attributbasierte Zugriffskontrolle mit Tags und AWS Organizations - AWS Organizations

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Attributbasierte Zugriffskontrolle mit Tags und AWS Organizations

Mit der attributbasierten Zugriffskontrollek önnen Sie vom Administrator verwaltete Attribute wie Tags, die an AWS-Ressourcen und AWS-Identitäten angefügt sind, verwenden, um den Zugriff auf diese Ressourcen zu steuern. Sie können beispielsweise angeben, dass ein Benutzer auf eine Ressource zugreifen kann, wenn sowohl der Benutzer als auch die Ressource denselben Wert für ein bestimmtes Tag haben.

Markierbare AWS Organizations-Ressourcen beinhalten AWS-Konten-Stamm-Organisationseinheiten (OUs) oder Richtlinien der Organisation. Wenn Sie Tags an Organizationsressourcen anfügen, können Sie diese Tags verwenden, um zu steuern, wer auf diese Ressourcen zugreifen kann. Dazu fügen Sie Condition-Elemente zu Ihren AWS Identity and Access Management-Berechtigungsrichtlinienanweisungen (IAM) hinzu, die prüfen, ob bestimmte Tag-Schlüssel und -Werte vorhanden sind, bevor die Aktion zugelassen wird. Auf diese Weise können Sie eine IAM-Richtlinie erstellen, die effektiv besagt: „Benutzer darf nur die OUs verwalten, die ein Tag mit einem Schlüssel X und einem Wert Y haben“ oder „Benutzern erlauben, nur die OUs zu verwalten, die mit einem Schlüssel Z gekennzeichnet sind“ der denselben Wert hat wie der angehängte Tag-Schlüssel Z des Benutzers.“

Sie können Ihre Condition-Tests auf verschiedenen Typen von Tag-Referenzen in einer IAM-Richtlinie aufbauen.

Weitere Informationen zur Verwendung von Tags für die Zugriffssteuerung in Richtlinien finden Sie unter Steuern des Zugriffs auf und für IAM-Benutzer und -Rollen mithilfe von Ressourcen-Tags. Die vollständige Syntax der IAM-Berechtigungsrichtlinien finden Sie in der IAM-JSON-Richtlinienreferenz

Überprüfen der Tags, die den Ressourcen zugeordnet sind, die in der Anforderung angegeben sind

Wenn Sie eine Anfrage mit AWS Management Console, AWS Command Line Interface (AWS CLI) oder einem der AWS-SDKs stellen, geben Sie an, auf welche Ressourcen Sie mit dieser Anfrage zugreifen möchten. Unabhängig davon, ob Sie versuchen, verfügbare Ressourcen eines bestimmten Typs aufzulisten, eine Ressource zu lesen oder eine Ressource zu schreiben, zu ändern oder zu aktualisieren, geben Sie die Ressource als Parameter in der Anforderung an. Solche Anforderungen werden durch IAM-Berechtigungsrichtlinien gesteuert, die Sie Ihren Benutzern und Rollen zuordnen. In diesen Richtlinien können Sie die Tags vergleichen, die der angeforderten Ressource zugeordnet sind, und den Zugriff basierend auf den Schlüsseln und Werten dieser Tags zulassen oder verweigern.

Um ein Tag zu überprüfen, das an die Ressource angehängt ist, verweisen Sie auf das Tag in einem Condition-Element durch Voranstellen des Tag-Schlüsselnamens mit der folgenden Zeichenfolge: aws:ResourceTag/

Die folgende Beispielrichtlinie ermöglicht es dem Benutzer oder der Rolle beispielsweise, jede AWS Organizations-Operation auszuführen, es sei denn, diese Ressource hat ein Tag mit dem Schlüssel department und dem Wert security. Wenn dieser Schlüssel und Wert vorhanden ist, verweigert die Richtlinie die Operation UntagResource explizit.

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : "organizations:*", "Resource" : "*" }, { "Effect" : "Deny", "Action" : "organizations:UntagResource", "Resource" : "*", "Condition" : { "StringEquals" : { "aws:ResourceTag/department" : "security" } } } ] }

Weitere Informationen zur Verwendung dieses Elements finden Sie unter Steuern des Zugriffs auf Ressource und aws:ResourceTag im IAM-Benutzerhandbuch.

Überprüfen der Tags, die dem IAM-Benutzer oder -Rolle angefügt sind, der die Anforderung stellt

Steuern Sie, welche Aktionen die Person, von der die Anforderung stammt (der Prinzipal), durchführen darf, auf Grundlage der Tags, die dem IAM-Benutzer oder der Rolle der Person angefügt sind. Verwenden Sie dazu die aws:PrincipalTag/key-name, um anzugeben, welcher Tag und welcher Wert dem aufrufenden Benutzer oder der aufrufenden Rolle zugeordnet werden müssen.

Das folgende Beispiel zeigt, wie eine Aktion nur zugelassen wird, wenn das angegebene Tag (cost-center) denselben Wert sowohl für den die Operation aufrufenden Prinzipal als auch für die Ressource hat, auf die die Operation zugreift. In diesem Beispiel kann der aufrufende Benutzer eine Amazon-EC2-Instance nur starten und stoppen, wenn die Instance mit demselben cost-center-Wert wie der Benutzer gekennzeichnet ist.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "ec2:startInstances", "ec2:stopInstances" ], "Resource": "*", "Condition": {"StringEquals": {"ec2:ResourceTag/cost-center": "${aws:PrincipalTag/cost-center}"}} } }

Weitere Informationen zur Verwendung dieses Elements finden Sie unter Steuern des Zugriffs für IAM-Prinzipale und aws:PrincipalTag im IAM-Benutzerhandbuch.

Überprüfen Sie die Tags, die als Parameter in der Anforderung enthalten sind

Mehrere Operationen ermöglichen es Ihnen, Tags als Teil der Anforderung anzugeben. Wenn Sie beispielsweise eine Ressource erstellen, können Sie die Tags angeben, die der neuen Ressource zugeordnet sind. Sie können ein Condition-Element angeben, das aws:TagKeys verwendet, um den Vorgang zuzulassen oder zu verweigern, je nachdem, ob ein bestimmter Tag-Schlüssel oder eine Reihe von Schlüsseln in der Anforderung enthalten ist. Diesem Vergleichsoperator ist es egal, welchen Wert das Tag enthält. Es prüft nur, ob ein Tag mit dem angegebenen Schlüssel vorhanden ist.

Um den Tag-Schlüssel oder eine Liste von Schlüsseln zu überprüfen, geben Sie ein Condition-Element mit der folgenden Syntax an:

"aws:TagKeys": [ "tag-key-1", "tag-key-2", ... , "tag-key-n" ]

Sie können dem Vergleichsoperator ForAllValues: voranstellen, um sicherzustellen, dass alle Schlüssel in der Anforderung mit einem der in der Richtlinie angegebenen Schlüssel übereinstimmen müssen. Die folgende Beispielrichtlinie lässt beispielsweise jede Organisationsoperation nur zu, wenn alle drei der angegebenen Tag-Schlüssel in der Anforderung vorhanden sind.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "organizations:*", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "department", "costcenter", "manager" ] } } } }

Alternativ können Sie ForAnyValue: verwenden, um einen Vergleichsoperator voranzustellen, um sicherzustellen, dass mindestens einer der Schlüssel in der Anforderung mit einem der in der Richtlinie angegebenen Schlüssel übereinstimmen muss. Die folgende Richtlinie lässt beispielsweise eine Organizations-Operation nur zu, wenn mindestens einer der angegebenen Tag-Schlüssel in der Anforderung vorhanden ist.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "organizations:*", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": [ "stage", "region", "domain" ] } } } }

Mehrere Operationen ermöglichen es Ihnen, Tags in der Anforderung anzugeben. Wenn Sie beispielsweise eine Ressource erstellen, können Sie die Tags angeben, die der neuen Ressource zugeordnet sind. Sie können ein Tag-Schlüssel-Wert-Paar in der Richtlinie mit einem Schlüssel-Wert-Paar vergleichen, das in der Anforderung enthalten ist. Verweisen Sie dazu auf das Tag in einem Condition-Element, indem Sie dem Tag-Schlüsselnamen die folgende Zeichenfolge voranstellen: aws:RequestTag/key-name und dann den Tag-Wert angeben, der vorhanden sein muss.

Die folgende Beispielrichtlinie lehnt beispielsweise jede Anforderung des Benutzers oder der Rolle ab, ein AWS-Konto zu erstellen, wenn in der Anforderung entweder das costcenter-Tag fehlt oder dieses Tag mit einem anderen Wert als 1, 2, oder 3versehen wird.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "organizations:CreateAccount", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/costcenter": "true" } } }, { "Effect": "Deny", "Action": "organizations:CreateAccount", "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "aws:RequestTag/costcenter": [ "1", "2", "3" ] } } } ] }

Weitere Informationen zur Verwendung dieser Elemente finden Sie unter aws:TagKeys und aws:RequestTag im IAM-Benutzerhandbuch.