Einwertige im Vergleich zu mehrwertige Kontextschlüssel - 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.

Einwertige im Vergleich zu mehrwertige Kontextschlüssel

Der Unterschied zwischen einwertigen und mehrwertigen Kontextschlüsseln liegt in der Anzahl der Werte im Anforderungskontext, nicht in der Anzahl der Werte in der Richtlinienbedingung.

  • Einwertige Bedingungskontextschlüssel haben höchstens einen Wert im Anforderungskontext. Wenn Sie beispielsweise Ressourcen taggen, wird jedes Ressourcen-Tag als Schlüssel-Wert-Paar gespeichert. AWS Da ein Ressourcen-Tag-Schlüssel nur einen einzigen Tag-Wert haben kann, aws:ResourceTag/Tag-Taste handelt es sich um einen einwertigen Kontextschlüssel. Verwenden Sie keinen Bedingungssatzoperator mit einem einwertigen Kontextschlüssel.

  • Mehrwertige Bedingungskontextschlüssel können im Anforderungskontext mehrere Werte enthalten. Wenn Sie beispielsweise Ressourcen taggen AWS, können Sie mehrere Tag-Schlüssel-Wert-Paare in eine einzige Anfrage aufnehmen. Daher handelt es sich bei als: TagKeys um einen mehrwertigen Kontextschlüssel. Mehrwertige Kontextschlüssel erfordern einen Bedingungssatz-Operator.

Wichtig

Mehrwertige Kontextschlüssel erfordern einen Bedingungssatz-Operator. Verwenden Sie die Bedingungssatz-Operatoren ForAllValues oder ForAnyValue nicht mit einwertigen Kontextschlüsseln. Weitere Informationen zu Bedingungssatz-Operatoren finden Sie unter Mehrwertige Kontextschlüssel.

Die einwertigen und mehrwertigen Klassifizierungen sind in der Beschreibung jedes Bedingungskontextschlüssels als Werttyp im AWS Kontextschlüssel für globale Bedingungen-Thema enthalten. Die Service Authorization Reference verwendet eine andere Wertetypklassifizierung für mehrwertige Kontextschlüssel, wobei ein ArrayOf Präfix verwendet wird, gefolgt vom Kategorietyp des Bedingungsoperators, z. B. oder. ArrayOfString ArrayOfARN

Eine Anfrage kann beispielsweise von höchstens einem VPC Endpunkt stammen, ebenso wie ein als: SourceVpce einwertiger Kontextschlüssel. Da ein Service über mehr als einen Prinzipal verfügen kann, der zum Service gehört, handelt es sich bei aws: PrincipalServiceNamesList um einen mehrwertigen Kontextschlüssel.

Sie können jeden verfügbaren einwertigen Kontextschlüssel als Richtlinienvariable verwenden, aber Sie können keinen mehrwertigen Kontextschlüssel als Richtlinienvariable verwenden. Weitere Informationen zu Richtlinienvariablen finden Sie unter IAM-Richtlinienelemente: Variablen und Tags.

Bei der Verwendung von Kontextschlüsseln, die Schlüssel-Wert-Paare enthalten, ist es wichtig zu beachten, dass es zwar mehrere Tag-Schlüssel-Werte geben kann, aber jeder nur einen Wert haben kann. tag-key Daher aws:ResourceTag handelt es sich bei beiden um aws:RequestTag einwertige Kontextschlüssel. Die Verwendung von Bedingungssatzoperatoren mit einwertigen Kontextschlüsseln kann zu übermäßig zulässigen Richtlinien führen.

Mehrwertige Kontextschlüssel

Um Ihren Bedingungskontextschlüssel mit einem Anforderungskontext-Schlüssel mit mehreren Werten zu vergleichen, müssen Sie die Satzoperatoren ForAllValues oder ForAnyValue verwenden. Diese Satzoperatoren werden verwendet, um zwei Sätze von Werten zu vergleichen, z. B. den Satz von Tags in einer Anfrage und den Satz von Tags in einer Richtlinienbedingung.

Mit den ForAnyValue Qualifizierern ForAllValues und wird der Bedingungsoperator um die Funktionalität der Mengenoperation erweitert, sodass Sie Anforderungskontextschlüssel mit mehreren Werten anhand mehrerer Kontextschlüsselwerte in einer Richtlinienbedingung testen können. Wenn Sie außerdem einen mehrwertigen Zeichenfolgen-Kontextschlüssel mit einem Platzhalter oder einer Variablen in Ihre Richtlinie einschließen, müssen Sie auch den StringLike-Bedingungsoperator verwenden. Mehrere Bedingungsschlüsselwerte müssen in Klammern eingeschlossen werden, wie z. B. ein Array. "Key2":["Value2A", "Value2B"]

  • ForAllValues – Dieser Qualifikator prüft, ob der Wert jedes Elements des Anforderungssatzes eine Teilmenge des Bedingungskontextschlüsselsatzes ist. Die Bedingung wird zurückgegeben, true wenn jeder Kontextschlüsselwert in der Anfrage mit mindestens einem Kontextschlüsselwert in der Richtlinie übereinstimmt. Sie gibt auch zurück, true ob die Anforderung keine Kontextschlüssel enthält oder ob der Kontextschlüsselwert in einen Null-Datensatz aufgelöst wird, z. B. eine leere Zeichenfolge. Um zu verhindern, dass fehlende Kontextschlüssel oder Kontextschlüssel mit leeren Werten als ausgewertet werdentrue, können Sie den NullBedingungsoperator mit einem false Wert in Ihre Richtlinie aufnehmen, um zu überprüfen, ob der Kontextschlüssel existiert und sein Wert nicht Null ist.

    Wichtig

    Seien Sie vorsichtig, wenn Sie einen Allow Effekt verwendenForAllValues, da er zu freizügig sein kann, wenn das Vorhandensein fehlender Kontextschlüssel oder Kontextschlüssel mit leeren Werten im Anforderungskontext unerwartet ist. Sie können den Null Bedingungsoperator mit einem false Wert in Ihre Richtlinie aufnehmen, um zu überprüfen, ob der Kontextschlüssel existiert und sein Wert nicht Null ist. Ein Beispiel finden Sie unter Zugriffssteuerung auf der Grundlage von Tag-Schlüsseln.

  • ForAnyValue – Dieser Qualifikator prüft, ob mindestens ein Element des Satzes von Bedingungskontextschlüssel-Werten mit mindestens einem Element des Satzes von Bedingungskontextschlüssel-Werten in Ihrer Richtlinie übereinstimmt. Der Kontextschlüssel gibt zurück, true ob einer der Kontextschlüsselwerte in der Anfrage mit einem der Kontextschlüsselwerte in der Richtlinie übereinstimmt. Wenn kein übereinstimmender Kontextschlüssel oder ein Null-Datensatz vorhanden ist, wird die Bedingung zurückgegebenfalse.

Anmerkung

Der Unterschied zwischen einwertigen und mehrwertigen Kontextschlüsseln hängt von der Anzahl der Werte im Anforderungskontext ab, nicht von der Anzahl der Werte in der Richtlinienbedingung.