Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

IAM-JSON-Richtlinienelemente: Condition

Fokusmodus
IAM-JSON-Richtlinienelemente: Condition - 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.

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.

Mit dem Element Condition (oder dem Condition-Block) können Sie angeben, unter welchen Bedingungen eine Richtlinie wirksam ist. Das Element Condition ist optional. Im Condition-Element formulieren Sie Ausdrücke, in denen Sie Bedingungsoperatoren (gleich, kleiner als usw.) verwenden, um die Kontextschlüssel und -werte in der Richtlinie mit Schlüsseln und Werten im Anforderungskontext abzugleichen. Weitere Informationen zum Anforderungskontext finden Sie unter Bestandteile einer Anfrage.

"Condition" : { "{condition-operator}" : { "{condition-key}" : "{condition-value}" }}

Der Kontextschlüssel, den Sie in einer Richtlinienbedingung angeben, kann ein globaler Bedingungskontextschlüssel oder ein servicespezifischer Kontextschlüssel sein. Kontextschlüssel für globale Bedingungen verfügen über das Präfix aws:. Servicespezifische Kontextschlüssel verfügen über das Präfix des Services. EC2 Mit Amazon können Sie beispielsweise eine Bedingung mithilfe des ec2:InstanceType Kontextschlüssels schreiben, der für diesen Service einzigartig ist. Informationen zum Anzeigen servicespezifischer IAM-Kontextschlüssel mit dem Präfix iam: finden Sie unter IAM- und AWS STS Bedingungskontextschlüssel.

Bei Namen von Kontextschlüsseln wird die Groß-/Kleinschreibung nicht beachtet. Das Einbeziehen des aws:SourceIP-Kontextschlüssels ist beispielsweise gleichbedeutend mit dem Testen auf AWS:SourceIp. Die Berücksichtigung der Groß- und Kleinschreibung bei  Werten von Kontextschlüsseln hängt vom verwendeten Bedingungsoperator ab. Die folgende Bedingung enthält beispielsweise den StringEquals-Operator, um sicherzustellen, dass nur von johndoe gestellte Anfragen übereinstimmen. Benutzern mit dem Namen JohnDoe wird der Zugriff verweigert.

"Condition" : { "StringEquals" : { "aws:username" : "johndoe" }}

Die folgende Bedingung verwendet den StringEqualsIgnoreCase-Operator, damit Benutzer mit dem Namen johndoe oder JohnDoe gefunden werden.

"Condition" : { "StringEqualsIgnoreCase" : { "aws:username" : "johndoe" }}

Einige Kontextschlüssel unterstützen Schlüssel-Wert-Paare, mit denen Sie einen Teil des Schlüsselnamens festlegen können. Beispiele hierfür sind der aws:RequestTag/tag-keyKontextschlüssel AWS KMS kms:EncryptionContext:encryption_context_key, der und der ResourceTag/tag-keyKontextschlüssel, die von mehreren Diensten unterstützt werden.

  • Wenn Sie den ResourceTag/tag-key Kontextschlüssel für einen Service wie Amazon verwenden EC2, müssen Sie einen Schlüsselnamen für den angebentag-key.

  • Bei den Schlüsselnamen muss die Groß- und Kleinschreibung nicht berücksichtigt werden. Dies bedeutet Folgendes: Wenn Sie "aws:ResourceTag/TagKey1": "Value1" im Bedingungselement Ihrer Richtlinie angeben, stimmt die Bedingung mit einem Ressourcen-Tag-Schlüssel mit dem Namen TagKey1 oder tagkey1 überein, aber nicht mit beiden.

  • AWS Dienste, die diese Attribute unterstützen, ermöglichen es Ihnen möglicherweise, mehrere Schlüsselnamen zu erstellen, die sich nur je nach Groß- und Kleinschreibung unterscheiden. Sie könnten beispielsweise eine EC2 Amazon-Instance mit ec2=test1 und kennzeichnenEC2=test2. Wenn Sie eine Bedingung wie "aws:ResourceTag/EC2": "test1" verwenden, um den Zugriff auf diese Ressource zu erlauben, stimmt der Schlüsselname mit beiden Tags, jedoch nur mit einem Wert überein. Dies kann zu unerwarteten Bedingungsfehlern führen.

Wichtig

Als bewährte Methode stellen Sie sicher, dass Mitglieder Ihres Kontos eine konsistente Namenskonvention beim Benennen von Schlüssel-Wert-Paar-Attributen verfolgen. Beispiele hierfür sind Tags oder AWS KMS -Verschlüsselungskontexte. Sie können dies mit dem aws:TagKeysKontextschlüssel für das Tagging oder dem kms:EncryptionContextKeysfür den AWS KMS Verschlüsselungskontext erzwingen.

Der Anforderungskontext

Wenn ein Principal eine Anfrage an stellt AWS, fasst er AWS die Anforderungsinformationen in einem Anforderungskontext zusammen. Der Anforderungskontext umfasst Informationen über den Principal, Ressourcen, Aktionen und andere Umgebungseigenschaften. Bei der Richtlinienbewertung werden die Eigenschaften in der Richtlinie mit den Eigenschaften verglichen, die in der Anfrage gesendet wurden, um die Aktionen zu bewerten und zu autorisieren, die Sie ausführen können. AWS

Sie können das Condition-Element einer JSON-Richtlinie verwenden, um bestimmte Kontextschlüssel anhand des Anforderungskontexts zu testen. Sie können beispielsweise eine Richtlinie erstellen, die den CurrentTime Kontextschlüssel aws: verwendet, um es einem Benutzer zu ermöglichen, Aktionen nur innerhalb eines bestimmten Zeitraums durchzuführen.

Das folgende Beispiel zeigt eine Darstellung des Anforderungskontextes, wenn Martha Rivera eine Anfrage zur Deaktivierung ihres MFA-Geräts sendet.

Principal: AROA123456789EXAMPLE Action: iam:DeactivateMFADevice Resource: arn:aws:iam::user/martha_rivera Context: – aws:UserId=AROA123456789EXAMPLE:martha_rivera – aws:PrincipalAccount=1123456789012 – aws:PrincipalOrgId=o-example – aws:PrincipalARN=arn:aws:iam::1123456789012:assumed-role/TestAR – aws:MultiFactorAuthPresent=true – aws:MultiFactorAuthAge=2800 – aws:CurrentTime=... – aws:EpochTime=... – aws:SourceIp=...

Der Anforderungskontext wird mit einer Richtlinie abgeglichen, die es Benutzern ermöglicht, ihr eigenes Multi-Faktor-Authentifizierungsgerät (MFA) zu entfernen, aber nur, wenn sie sich in der letzten Stunde (3.600 Sekunden) mit MFA angemeldet haben.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowRemoveMfaOnlyIfRecentMfa", "Effect": "Allow", "Action": [ "iam:DeactivateMFADevice" ], "Resource": "arn:aws:iam::*:user/${aws:username}", "Condition": { "NumericLessThanEquals": {"aws:MultiFactorAuthAge": "3600"} } } }

In diesem Beispiel entspricht die Richtlinie dem Anforderungskontext: Die Aktion ist dieselbe, die Ressource entspricht dem Platzhalter „*“ und der Wert für aws:MultiFactorAuthAge ist 2800, was weniger als 3600 ist, sodass die Richtlinie diese Autorisierungsanfrage zulässt.

AWS wertet jeden Kontextschlüssel in der Richtlinie aus und gibt den Wert wahr oder falsch zurück. Ein Kontextschlüssel, der in der Anfrage nicht vorhanden ist, wird als Nichtübereinstimmung betrachtet.

Der Anforderungskontext kann die folgenden Werte zurückgeben:

  • True – Wenn der Anforderer sich innerhalb der letzten Stunde per MFA angemeldet hat, gibt die Bedingung true zurück.

  • False – Wenn sich der Anforderer vor mehr als einer Stunde per MFA angemeldet hat, gibt die Bedingung false zurück.

    • Nicht vorhanden — Wenn der Anforderer eine Anfrage mit seinen IAM-Benutzerzugriffsschlüsseln in der AWS CLI AWS OR-API gestellt hat, ist der Schlüssel nicht vorhanden. In diesem Fall ist der Schlüssel nicht vorhanden und stimmt nicht überein.

Anmerkung

In einigen Fällen kann die Bedingung dennoch wahr zurückgeben, wenn der Wert des Bedingungsschlüssels nicht vorhanden ist. Wenn Sie beispielsweise den ForAllValues Qualifizierer hinzufügen, gibt die Anforderung „true“ zurück, wenn der Kontextschlüssel nicht in der Anforderung enthalten ist. Um zu verhindern, dass fehlende Kontextschlüssel oder Kontextschlüssel mit leeren Werten als wahr ausgewertet werden, können Sie den Bedingungsoperator Null mit einem false Wert in Ihre Richtlinie aufnehmen, um zu überprüfen, ob der Kontextschlüssel existiert und sein Wert nicht Null ist.

Der Bedingungsblock

Das folgende Beispiel zeigt das grundlegende Format eines Condition-Elements:

"Condition": {"StringLike": {"s3:prefix": ["janedoe/*"]}}

Ein Wert aus der Anfrage wird durch einen Kontextschlüssel dargestellt, in diesem Fall s3:prefix. Der Kontextschlüsselwert wird mit einem Wert verglichen, den Sie als Literalwert angeben, z. B. janedoe/*. Der vorzunehmende Vergleich wird vom Bedingungsoperator (hier StringLike) bestimmt. Sie können Bedingungen erstellen, die Zeichenketten, Datumsangaben, Zahlen und vieles mehr mit typischen booleschen Vergleichen wie "gleich", "größer als" und "kleiner als" vergleichen. Wenn Sie Zeichenfolgen-Operatoren oder ARN-Operatoren verwenden, können Sie auch eine Richtlinienvariable im Kontextschlüsselwert verwenden. Das folgende Beispiel enthält die Variable aws:username.

"Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}

Unter bestimmten Umständen können Kontextschlüssel mehrere Werte enthalten. Eine Anforderung an Amazon DynamoDB könnte beispielsweise darin bestehen, mehrere Attribute einer Tabelle zurückzugeben oder zu aktualisieren. Eine Richtlinie für den Zugriff auf DynamoDB-Tabellen kann den dynamodb:Attributes-Kontextschlüssel enthalten, der alle in der Anfrage aufgeführten Attribute enthält. Sie können diese Attribute mit einer Liste zulässiger Attribute in einer Richtlinie mithilfe von Mengenoperatoren im Element Condition vergleichen. Weitere Informationen finden Sie unter Mehrwertige Kontextschlüssel.

Wenn die Richtlinie während einer Anfrage ausgewertet wird, wird der Schlüssel durch den entsprechenden Wert aus der Anforderung AWS ersetzt. (In diesem Beispiel AWS würden Datum und Uhrzeit der Anfrage verwendet.) Die Auswertung der Bedingung gibt "true" oder "false" zurück und das Ergebnis wird von der Richtlinie berücksichtigt, um die Anforderung zuzulassen oder zu verweigern.

Mehrere Werte in einer Bedingung

Ein Condition-Element kann mehrere Bedingungsoperatoren enthalten, und jeder Bedingungsoperator kann mehrere Kontext-Schlüssel-Wert-Paare enthalten. Dies wird in folgender Abbildung veranschaulicht.

Zwei Blockdiagramme für Bedingungs-Operatoren. Der erste Block enthält zwei Platzhalter für Kontextschlüssel mit jeweils mehreren Werten. Der zweite Bedingungsblock enthält einen Kontextschlüssel mit mehreren Werten.

Weitere Informationen finden Sie unter Mehrwertige Kontextschlüssel.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.