Schlüsselbeispiele für mehrwertige Kontexte - AWS Identitäts- und Zugriffsverwaltung

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.

Schlüsselbeispiele für mehrwertige Kontexte

Die folgenden Richtlinienbeispiele veranschaulichen, wie Richtlinienbedingungen mit mehrwertigen Kontextschlüsseln erstellt werden.

Beispiel: Richtlinie ablehnen mit Bedingungssatzoperator ForAllValues

Das folgende Beispiel zeigt, die Verwendung einer identitätsbasierten Richtlinie zum Verweigern der Verwendung von IAM-Tagging-Aktionen, wenn bestimmte Tag-Schlüsselpräfixe in der Anfrage enthalten sind. Die Werte für aws:TagKeys enthalten einen Platzhalter (*) für eine teilweise übereinstimmende Zeichenfolge. Die Richtlinie enthält den ForAllValues-Satz-Operator mit Kontextschlüssel aws:TagKeys, da der Anforderungskontextschlüssel mehrere Werte enthalten kann. Damit der Kontextschlüssel aws:TagKeys übereinstimmt, muss jeder Wert im Anfragekontext mit mindestens einem Wert in der Richtlinie übereinstimmen.

Der ForAllValues-Satz-Operator gibt auch „true“ zurück, wenn die Anfrage keine Kontextschlüssel enthält.

Sie können verhindern, dass fehlende Kontextschlüssel oder Kontextschlüssel mit leeren Werten als „true“ ausgewertet werden, indem Sie den Null-Bedingungsoperator mit dem Wert false in Ihre Richtlinie einschließen, um zu überprüfen, ob der Kontextschlüssel in der Anforderung vorhanden ist und sein Wert nicht null ist. Weitere Informationen finden Sie unter Bedingungsoperator zur Prüfung der Existenz von Bedingungsoperatoren .

Wichtig

Diese Richtlinie lässt keine Aktionen zu. Verwenden Sie diese Richtlinie in Kombination mit anderen Richtlinien, die bestimmte Aktionen zulassen.

Beispiel Einen einzelnen Richtlinienbedingungswert für einen mehrwertigen Kontextschlüssel verweigern

Im folgenden Beispiel lehnt die Richtlinie Anfragen ab, bei denen die Werte für aws:TagKeys in der Anfrage das Präfix key1 nicht enthalten. Der Anfragekontext kann mehrere Werte haben, aber aufgrund des -Bedingungssatzoperators müssen alle Tag-Schlüsselwerte im Anforderungskontext mit dem Präfix key1 beginnen.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyRestrictedTags", "Effect": "Deny", "Action": [ "iam:Tag*", "iam:UnTag*" ], "Resource": [ "*" ], "Condition": { "ForAllValues:StringNotLike": { "aws:TagKeys": "key1*" } } } ] }

Die folgende Tabelle zeigt, wie diese Richtlinie auf der Grundlage der Bedingungsschlüsselwerte in Ihrer Anfrage AWS bewertet wird. Bei einer Deny-Anweisung wird „Übereinstimmung“ verweigert und „Keine Übereinstimmung“ nicht verweigert, sodass dies durch eine andere Anweisung zugelassen werden kann.

Richtlinienbedingung Kontext anfordern Ergebnis
"ForAllValues:StringNotLike": { "aws:TagKeys": "key1*" }
aws:TagKeys: – key1:legal

Keine Übereinstimmung

Kann durch eine andere Anweisung zugelassen werden.

"ForAllValues:StringNotLike": { "aws:TagKeys": "key1*" }
aws:TagKeys: – key1:hr – key1:personnel

Kein Spiel

Kann durch eine andere Anweisung zugelassen werden.

"ForAllValues:StringNotLike": { "aws:TagKeys": "key1*" }
aws:TagKeys: – key2:audit

Spiel

"ForAllValues:StringNotLike": { "aws:TagKeys": "key1*" }

Kein aws:TagKeys im Anforderungskontext.

Spiel

Beispiel Mehrere Richtlinienbedingungswerte für einen mehrwertigen Kontextschlüssel verweigern

Im folgenden Beispiel lehnt die Richtlinie Anfragen ab, bei denen die Werte für aws:TagKeys in der Anfrage das Präfix key1 oder key2 nicht enthalten. Der Anfragekontext kann mehrere Werte haben, aber aufgrund des ForAllValues-Bedingungssatzoperators müssen alle Tag-Schlüsselwerte im Anforderungskontext mit dem Präfix key1 oder key2 beginnen.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyRestrictedTags", "Effect": "Deny", "Action": [ "iam:Tag*", "iam:UnTag*" ], "Resource": [ "*" ], "Condition": { "ForAllValues:StringNotLike": { "aws:TagKeys": [ "key1*", "key2*" ] } } } ] }

Die folgende Tabelle zeigt, wie diese Richtlinie auf der Grundlage der Bedingungsschlüsselwerte in Ihrer Anfrage AWS bewertet wird. Bei einer Deny-Anweisung wird „Übereinstimmung“ verweigert und „Keine Übereinstimmung“ nicht verweigert, sodass dies durch eine andere Anweisung zugelassen werden kann.

Richtlinienbedingung Kontext anfordern Ergebnis
"ForAllValues:StringNotLike": { "aws:TagKeys": [ "key1*", "key2*" ] }
aws:TagKeys: – key1:legal

Keine Übereinstimmung

Kann durch eine andere Anweisung zugelassen werden.

"ForAllValues:StringNotLike": { "aws:TagKeys": [ "key1*", "key2*" ] }
aws:TagKeys: – key1:hr – key1:personnel

Kein Spiel

Kann durch eine andere Anweisung zugelassen werden.

"ForAllValues:StringNotLike": { "aws:TagKeys": [ "key1*", "key2*" ] }
aws:TagKeys: – key1:hr – key2:audit

Kein Spiel

Kann durch eine andere Anweisung zugelassen werden.

"ForAllValues:StringNotLike": { "aws:TagKeys": [ "key1*", "key2*" ] }
aws:TagKeys: – key3:legal

Spiel

"ForAllValues:StringNotLike": { "aws:TagKeys": [ "key1*", "key2*" ] }

Kein aws:TagKeys im Anforderungskontext.

Spiel

Beispiel: Richtlinie mit Bedingungssatzoperator ablehnen ForAnyValue

Im folgenden Beispiel für eine identitätsbasierte Richtlinie wird die Erstellung von Snapshots von EC2 Instanz-Volumes verweigert, wenn Snapshots mit einem der in der Richtlinie angegebenen Tag-Schlüssel gekennzeichnet sind, oder. environment webserver Die Richtlinie enthält den ForAnyValue-Satz-Operator mit Kontextschlüssel aws:TagKeys, da der Anforderungskontextschlüssel mehrere Werte enthalten kann. Wenn Ihre Tagging-Anfrage einen der in der Richtlinie angegebenen Tag-Schlüsselwerte enthält, gibt der aws:TagKeys-Kontextschlüssel den Wert wahr zurück und ruft den Effekt der Ablehnungsrichtlinie auf.

Wichtig

Diese Richtlinie lässt keine Aktionen zu. Verwenden Sie diese Richtlinie in Kombination mit anderen Richtlinien, die bestimmte Aktionen zulassen.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ec2:CreateSnapshot", "ec2:CreateSnapshots" ], "Resource": "arn:aws:ec2:us-west-2::snapshot/*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "webserver" } } } ] }

Die folgende Tabelle zeigt, wie diese Richtlinie auf der Grundlage der Bedingungsschlüsselwerte in Ihrer Anfrage AWS bewertet wird. Bei einer Deny-Anweisung wird „Übereinstimmung“ verweigert und „Keine Übereinstimmung“ nicht verweigert, sodass dies durch eine andere Anweisung zugelassen werden kann.

Richtlinienbedingung Kontext anfordern Ergebnis
"ForAnyValue:StringEquals": { "aws:TagKeys": "webserver" }
aws:TagKeys: – webserver

Abgleich

"ForAnyValue:StringEquals": { "aws:TagKeys": "webserver" }
aws:TagKeys: – environment – webserver – test

Spiel

"ForAnyValue:StringEquals": { "aws:TagKeys": "webserver" }
aws:TagKeys: – environment – test

Kein Spiel

Kann durch eine andere Anweisung zugelassen werden.

"ForAnyValue:StringEquals": { "aws:TagKeys": "webserver" }

Kein aws:TagKeys im Anforderungskontext.

Kein Spiel

Kann durch eine andere Anweisung zugelassen werden.