

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.

# AWS KMS Bedingungsschlüssel
<a name="conditions-kms"></a>

AWS KMS stellt eine Reihe von Bedingungsschlüsseln bereit, die Sie in wichtigen Richtlinien und IAM-Richtlinien verwenden können. Diese Bedingungsschlüssel sind spezifisch für. AWS KMS Sie können beispielsweise den Bedingungsschlüssel `kms:EncryptionContext:context-key` verwenden, damit ein bestimmter [Verschlüsselungskontext](encrypt_context.md) bei der Steuerung des Zugriffs auf einen KMS-Schlüssel zur symmetrischen Verschlüsselung erforderlich ist.

**Bedingungen für die Anforderung einer API-Produktion**

Viele AWS KMS Bedingungsschlüssel steuern den Zugriff auf einen KMS-Schlüssel auf der Grundlage des Werts eines Parameters in der Anforderung für einen AWS KMS Vorgang. Sie können z. B. den KeySpec Bedingungsschlüssel [kms:](#conditions-kms-key-spec) in einer IAM-Richtlinie verwenden, um die Verwendung des [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)Vorgangs nur dann zuzulassen, wenn der Wert des `KeySpec` Parameters in der `CreateKey` Anforderung `RSA_4096` 

Dieser Bedingungstyp funktioniert sogar dann, wenn der Parameter nicht in der Anforderung angezeigt wird, z. B. wenn Sie den Standardwert des Parameters verwenden. Sie können beispielsweise den KeySpec Bedingungsschlüssel [kms:](#conditions-kms-key-spec) verwenden, um Benutzern zu ermöglichen, die `CreateKey` Operation nur dann zu verwenden, wenn der Wert des `KeySpec` Parameters ist`SYMMETRIC_DEFAULT`, was der Standardwert ist. Diese Bedingung gewährt Anforderungen mit dem Parameter `KeySpec` und dem Wert `SYMMETRIC_DEFAULT` sowie Anforderungen ohne den Parameter `KeySpec`.

**Bedingungen für KMS-Schlüssel, die in API-Operationen verwendet werden**

Einige AWS KMS Bedingungsschlüssel können den Zugriff auf Operationen auf der Grundlage einer Eigenschaft des KMS-Schlüssels steuern, der für den Vorgang verwendet wird. Sie können beispielsweise die KeyOrigin Bedingung [kms:](#conditions-kms-key-origin) verwenden, um es Prinzipalen zu ermöglichen, einen KMS-Schlüssel nur dann [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)aufzurufen, wenn `Origin` der KMS-Schlüssel aktiviert ist`AWS_KMS`. Um herauszufinden, ob ein Bedingungsschlüssel auf diese Weise verwendet werden kann, lesen Sie die Beschreibung des Bedingungsschlüssels.

Bei der Produktion muss es sich um eine *KMS-Schlüsselressourcen-Produktion* handeln, das heißt, eine Produktion, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle [Actions and Resources (Aktionen und Ressourcen)](kms-api-permissions-reference.md#kms-api-permissions-reference-table) Sie nach dem Wert von `KMS key` in der `Resources`-Spalte für die Produktion. Wenn Sie diese Art von Bedingungsschlüssel beispielsweise für einen Vorgang verwenden, der für eine bestimmte KMS-Schlüsselressource nicht autorisiert ist [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html), ist die Berechtigung nicht wirksam, da die Bedingung niemals erfüllt werden kann. Es ist keine KMS-Schlüssel-Ressource an der Autorisierung der Produktion `ListKeys` beteiligt und keine `KeySpec`-Eigenschaft. 

In den folgenden Themen werden die einzelnen AWS KMS Bedingungsschlüssel beschrieben. Sie enthalten auch Beispiele für Richtlinienanweisungen, die die Richtliniensyntax veranschaulichen.

**Verwenden von Satz-Operatoren mit Bedingungsschlüssel**

Wenn eine Richtlinienbedingung zwei Gruppen von Werten vergleicht, z. B. die Gruppe von Tags in einer Anforderung und die Gruppe von Tags in einer Richtlinie, müssen Sie angeben, AWS wie die Gruppen verglichen werden sollen. IAM definiert für diesen Zweck zwei Satz-Operatoren, `ForAnyValue` und `ForAllValues`. Verwenden Sie Satz-Operatoren nur mit *mehrwertigen Bedingungsschlüssel*, die diese erfordern. Verwenden Sie keine Satz-Operatoren mit *einzelwertigen Bedingungsschlüssel*. Testen Sie Ihre Richtlinienanweisungen immer gründlich, bevor Sie sie in einer Operationsumgebung verwenden.

Bedingungsschlüssel sind einzelwertig oder mehrwertig. Informationen dazu, ob ein AWS KMS Bedingungsschlüssel ein- oder mehrwertig ist, finden Sie in der Spalte **Wertetyp** in der Beschreibung des Bedingungsschlüssels. 
+ *Einzelwertige* Bedingungsschlüssel haben höchstens einen Wert im Autorisierungskontext (die Anforderung oder Ressource). Da beispielsweise jeder API-Aufruf nur von einem API-Aufruf ausgehen kann AWS-Konto, CallerAccount ist [kms:](#conditions-kms-caller-account) ein einwertiger Bedingungsschlüssel. Verwenden Sie keinen Satz-Operator mit einem einzelwertigen Bedingungsschlüssel. 
+ *Mehrwertige* Bedingungsschlüssel haben mehrfache Wert im Autorisierungskontext (die Anforderung oder Ressource). Da beispielsweise jeder KMS-Schlüssel mehrere Aliase haben kann, ResourceAliases kann [kms:](#conditions-kms-resource-aliases) mehrere Werte haben. Mehrwertige Bedingungsschlüssel erfordern einen Satz-Operator. 

Beachten Sie, dass der Unterschied zwischen einzelwertigen und mehrwertigen Bedingungsschlüsseln von der Anzahl der Werte im Autorisierungskontext abhängt, nicht von der Anzahl der Werte in der Richtlinienbedingung.

**Warnung**  
Wenn Sie einen Satz-Operator mit einem einzelwertigen Bedingungsschlüssel verwenden, können Sie eine Richtlinienanweisung erstellen, die übermäßig permissiv (oder zu restriktiv) ist. Verwenden Sie Satz-Operatoren nur mit mehrwertigen Bedingungsschlüssel, die diese erfordern.  
Wenn Sie eine Richtlinie erstellen oder aktualisieren, die einen `ForAllValues` Set-Operator mit dem *Kontextschlüssel* oder den `aws:RequestTag/tag-key` Bedingungsschlüsseln enthält, wird die folgende AWS KMS Fehlermeldung zurückgegeben kms:EncryptionContext:  
`OverlyPermissiveCondition: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified [encryption context or tag] or with an unspecified [encryption context or tag]. To fix, remove ForAllValues.`

Ausführliche Informationen zu den `ForAnyValue`- und `ForAllValues`-Satz-Operatoren finden Sie unter [Verwenden mehrerer Schlüssel und Werte](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) im *IAM-Benutzerhandbuch*. Informationen zum Risiko der Verwendung des `ForAllValues` Set-Operators mit einer einwertigen Bedingung finden Sie unter [Sicherheitswarnung — ForAllValues mit einwertigem Schlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html#access-analyzer-reference-policy-checks-security-warning-forallvalues-with-single-valued-key) im *IAM-Benutzerhandbuch*.

**Topics**
+ [km: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [km: CallerAccount](#conditions-kms-caller-account)
+ [kms: CustomerMasterKeySpec (veraltet)](#conditions-kms-key-spec-replaced)
+ [kms: CustomerMasterKeyUsage (veraltet)](#conditions-kms-key-usage-replaced)
+ [km: DataKeyPairSpec](#conditions-kms-data-key-spec)
+ [km: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [kms:EncryptionContext: *Kontextschlüssel*](#conditions-kms-encryption-context)
+ [km: EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [km: ExpirationModel](#conditions-kms-expiration-model)
+ [km: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [km: KeyAgreementAlgorithm](#conditions-kms-key-agreement-algorithm)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [km: KeySpec](#conditions-kms-key-spec)
+ [km: KeyUsage](#conditions-kms-key-usage)
+ [km: MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km: MessageType](#conditions-kms-message-type)
+ [km: MultiRegion](#conditions-kms-multiregion)
+ [km: MultiRegionKeyType](#conditions-kms-multiregion-key-type)
+ [km: PrimaryRegion](#conditions-kms-primary-region)
+ [km: ReEncryptOnSameKey](#conditions-kms-reencrypt-on-same-key)
+ [km: RequestAlias](#conditions-kms-request-alias)
+ [km: ResourceAliases](#conditions-kms-resource-aliases)
+ [km: ReplicaRegion](#conditions-kms-replica-region)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)
+ [km: RotationPeriodInDays](#conditions-kms-rotation-period-in-days)
+ [km: ScheduleKeyDeletionPendingWindowInDays](#conditions-kms-schedule-key-deletion-pending-window-in-days)
+ [km: SigningAlgorithm](#conditions-kms-signing-algorithm)
+ [km: ValidTo](#conditions-kms-valid-to)
+ [km: ViaService](#conditions-kms-via-service)
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km: BypassPolicyLockoutSafetyCheck
<a name="conditions-kms-bypass-policy-lockout-safety-check"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:BypassPolicyLockoutSafetyCheck`  |  Boolesch  | Einzelwertig |  `CreateKey` `PutKeyPolicy`  |  Nur IAM-Richtlinien Schlüsselrichtlinien und IAM-Richtlinien  | 

Der `kms:BypassPolicyLockoutSafetyCheck` Bedingungsschlüssel steuert den Zugriff auf die [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)Operationen [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)und auf der Grundlage des Werts des `BypassPolicyLockoutSafetyCheck` Parameters in der Anforderung. 

Die folgende Beispiel-IAM-Richtlinienanweisung verhindert, dass Benutzer die Richtliniensperre-Sicherheitsprüfung umgehen, indem Sie die Berechtigung zum Erstellen von KMS-Schlüssel ablehnen, wenn der Wert des Parameters `BypassPolicyLockoutSafetyCheck` in der `CreateKey`-Anforderung `true.` lautet. 

```
{
  "Effect": "Deny",
  "Action": [
    "kms:CreateKey",
    "kms:PutKeyPolicy"
  ],
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
```

Außerdem können Sie den `kms:BypassPolicyLockoutSafetyCheck`-Bedingungsschlüssel in einer IAM- oder Schlüsselrichtlinie verwenden, um den Zugriff auf die `PutKeyPolicy`-Produktion zu steuern. Die folgende Beispiel-Richtlinienanweisung einer Schlüsselrichtlinie verhindert, dass Benutzer beim Ändern der Richtlinie eines KMS-Schlüssel die Richtliniensperre-Sicherheitsprüfung umgehen. 

Statt eine explizite `Deny`-Bedingung zu verwenden, nutzt diese Richtlinienanweisung `Allow` mit dem [Null-bedingten Operator](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null), um den Zugriff nur zu erlauben, wenn die Anforderung keinen `BypassPolicyLockoutSafetyCheck`-Parameter enthält. Wenn der Parameter nicht verwendet wird, lautet der Standardwert `false`. Diese etwas schwächere Richtlinienanweisung kann überschrieben werden, wenn ein Bypass erforderlich ist. Dies ist allerdings selten der Fall. 

```
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: KeySpec](#conditions-kms-key-spec)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [km: KeyUsage](#conditions-kms-key-usage)

## km: CallerAccount
<a name="conditions-kms-caller-account"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:CallerAccount`  |  Zeichenfolge  | Einzelwertig |  KMS-Schlüsselressourcen-Operationen Benutzerdefinierter-Schlüsselspeicher-Operationen  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf alle Identitäten (Benutzer und Rollen) in einem AWS-Konto zu gestatten oder verweigern. In Schlüsselrichtlinien verwenden Sie das Element `Principal`, um die Identitäten festzulegen, für die die Richtlinieanweisung gilt. Die Syntax für das `Principal`-Element bietet keine Möglichkeit, alle Identitäten in einem AWS-Konto festzulegen. Sie können diesen Effekt jedoch erzielen, indem Sie diesen Bedingungsschlüssel mit einem `Principal` Element kombinieren, das alle AWS Identitäten spezifiziert.

Sie können damit den Zugriff auf jeden *KMS-Schlüsselressourcenvorgang* steuern, d. h. auf jeden AWS KMS Vorgang, der einen bestimmten KMS-Schlüssel verwendet. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle [Actions and Resources (Aktionen und Ressourcen)](kms-api-permissions-reference.md#kms-api-permissions-reference-table) Sie nach dem Wert von `KMS key` in der `Resources`-Spalte für die Operation. Er ist auch gültig für Operationen, die [benutzerdefinierte Schlüsselspeicher](key-store-overview.md#custom-key-store-overview) verwalten.

Die folgende Schlüsselrichtlinienanweisung veranschaulicht beispielsweise die Verwendung des Bedingungsschlüssels `kms:CallerAccount`. Diese Grundsatzerklärung ist Teil der wichtigsten Richtlinie Von AWS verwalteter Schlüssel für Amazon EBS. Sie kombiniert ein `Principal` Element, das alle AWS Identitäten spezifiziert, mit dem `kms:CallerAccount` Bedingungsschlüssel, um effektiv den Zugriff auf alle Identitäten in 111122223333 zu ermöglichen. AWS-Konto Es enthält einen zusätzlichen AWS KMS Bedingungsschlüssel (`kms:ViaService`), um die Berechtigungen weiter einzuschränken, indem nur Anfragen zugelassen werden, die über Amazon EBS eingehen. Weitere Informationen finden Sie unter [km: ViaService](#conditions-kms-via-service).

```
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
```

## kms: CustomerMasterKeySpec (veraltet)
<a name="conditions-kms-key-spec-replaced"></a>

Der Bedingungsschlüssel `kms:CustomerMasterKeySpec` ist veraltet. Verwenden Sie stattdessen den [KeySpecBedingungsschlüssel kms:](#conditions-kms-key-spec).

Die Bedingungsschlüssel `kms:CustomerMasterKeySpec` und `kms:KeySpec` funktionieren auf die gleiche Weise. Nur die Namen unterscheiden sich. Wir empfehlen Ihnen, `kms:KeySpec` zu verwenden. AWS KMS Unterstützt jedoch beide Bedingungsschlüssel, um fehlerhafte Änderungen zu vermeiden.

## kms: CustomerMasterKeyUsage (veraltet)
<a name="conditions-kms-key-usage-replaced"></a>

Der Bedingungsschlüssel `kms:CustomerMasterKeyUsage` ist veraltet. Verwenden Sie stattdessen den [KeyUsageBedingungsschlüssel kms:](#conditions-kms-key-usage).

Die Bedingungsschlüssel `kms:CustomerMasterKeyUsage` und `kms:KeyUsage` funktionieren auf die gleiche Weise. Nur die Namen unterscheiden sich. Wir empfehlen Ihnen, `kms:KeyUsage` zu verwenden. AWS KMS Unterstützt jedoch beide Bedingungsschlüssel, um fehlerhafte Änderungen zu vermeiden.

## km: DataKeyPairSpec
<a name="conditions-kms-data-key-spec"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:DataKeyPairSpec`  |  Zeichenfolge  | Einzelwertig |  `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf die [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)Operationen [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)und auf der Grundlage des `KeyPairSpec` Parameterwerts in der Anforderung zu steuern. Beispielsweise können Sie Benutzern erlauben, nur bestimmte Typen von Datenschlüsselpaaren zu generieren.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel `kms:DataKeyPairSpec`, um es Benutzern zu erlauben, mit dem KMS-Schlüssel nur RSA-Datenschlüsselpaare zu generieren.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: KeySpec](#conditions-kms-key-spec)
+ [km: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [kms:EncryptionContext: *Kontextschlüssel*](#conditions-kms-encryption-context)
+ [km: EncryptionContextKeys](#conditions-kms-encryption-context-keys)

## km: EncryptionAlgorithm
<a name="conditions-kms-encryption-algorithm"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionAlgorithm`  |  Zeichenfolge  | Einzelwertig |  `Decrypt` `Encrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Mit dem Bedingungsschlüssel `kms:EncryptionAlgorithm` können Sie den Zugriff auf kryptografische Operationen basierend auf dem in der Produktion verwendeten Verschlüsselungsalgorithmus kontrollieren. Bei den [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)Vorgängen [Verschlüsseln](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html), [Entschlüsseln](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) und Entschlüsseln steuert es den Zugriff auf der Grundlage des Werts des [EncryptionAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#KMS-Decrypt-request-EncryptionAlgorithm)Parameters in der Anforderung. Für Operationen, die Datenschlüssel und Datenschlüsselpaare generieren, steuert er den Zugriff basierend auf dem Verschlüsselungsalgorithmus, der zum Verschlüsseln des Datenschlüssels verwendet wird.

Dieser Bedingungsschlüssel hat keine Auswirkung auf Operationen, die außerhalb von ausgeführt werden AWS KMS, wie z. B. die Verschlüsselung mit dem öffentlichen Schlüssel in einem asymmetrischen KMS-Schlüsselpaar außerhalb von. AWS KMS

**EncryptionAlgorithm Parameter in einer Anfrage**

Damit Benutzer nur einen bestimmten Verschlüsselungsalgorithmus mit einem KMS-Schlüssel verwenden können, verwenden Sie eine Richtlinienanweisung mit dem Effekt `Deny` und dem Bedingungsoperator `StringNotEquals`. Die folgende Schlüsselrichtlinienanweisung verhindert beispielsweise, dass Prinzipale, die die `ExampleRole`-Rolle annehmen können, diesen KMS-Schlüssel in den angegebenen kryptografischen Operationen verwenden, es sei denn, der Verschlüsselungsalgorithmus in der Anforderung ist `RSAES_OAEP_SHA_256` (ein asymmetrischer Verschlüsselungsalgorithmus, der mit RSA-KMS-Schlüsseln verwendet wird).

Im Gegensatz zu einer Richtlinienanweisung, die es einem Benutzer erlaubt, einen bestimmten Verschlüsselungsalgorithmus zu verwenden, hindert eine Richtlinienanweisung mit einem doppelten Negativwert wie diese andere Richtlinien und Erteilungen für diesen KMS-Schlüssel daran, dieser Rolle die Verwendung anderer Verschlüsselungsalgorithmen zu ermöglichen. Das `Deny` in dieser Schlüsselrichtlinienanweisung hat Vorrang vor allen Schlüsselrichtlinien oder IAM-Richtlinien mit `Allow`-Wirkung, und es hat vor allen Erteilungen für diesen KMS-Schlüssel und seine Prinzipale Vorrang.

```
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
```

**Der für die Produktion verwendete Verschlüsselungsalgorithmus**

Sie können auch den `kms:EncryptionAlgorithm`-Bedingungsschlüssel verwenden, um den Zugriff auf Operationen basierend auf dem in der Produktion verwendeten Verschlüsselungsalgorithmus zu steuern, auch wenn der Algorithmus nicht in der Anforderung angegeben ist. Auf diese Weise können Sie den `SYMMETRIC_DEFAULT`-Algorithmus, der möglicherweise nicht in einer Anforderung angegeben wird, erfordern oder verbieten, da es sich um den Standardwert handelt.

Mit diesem Feature können Sie den `kms:EncryptionAlgorithm`-Bedingungsschlüssel verwenden, um den Zugriff auf die Operationen zu steuern, die Datenschlüssel und Datenschlüsselpaare generieren. Diese Operationen verwenden nur KMS-Schlüssel zur symmetrischen Verschlüsselung und den `SYMMETRIC_DEFAULT`-Algorithmus.

Beispielsweise beschränkt diese IAM-Richtlinie ihre Prinzipale auf symmetrische Verschlüsselung. Sie verweigert den Zugriff auf jeden KMS-Schlüssel im Beispielkonto für kryptografische Operationen, es sei denn, der in der Anforderung angegebene oder in der Produktion verwendete Verschlüsselungsalgorithmus ist SYMMETRIC\$1DEFAULT. `GenerateDataKey*`Einschließlich der [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)Erweiterungen [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html), und [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)zu den Berechtigungen. Die Bedingung hat keine Auswirkungen auf diese Vorgänge, da sie immer einen symmetrischen Verschlüsselungsalgorithmus verwenden.

```
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km: SigningAlgorithm](#conditions-kms-signing-algorithm)

## kms:EncryptionContext: *Kontextschlüssel*
<a name="conditions-kms-encryption-context"></a>


| AWS KMS Bedingungsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionContext:context-key`  |  Zeichenfolge  | Einzelwertig |  `CreateGrant` `Encrypt` `Decrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt` `RetireGrant`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Mit dem `kms:EncryptionContext:context-key`-Bedingungsschlüssel können Sie den Zugriff auf einen [KMS-Schlüssel zu symmetrischen Verschlüsselung](symm-asymm-choose-key-spec.md#symmetric-cmks) anhand des [Verschlüsselungskontexts](encrypt_context.md) in einer Anforderung für eine [kryptografische Produktion](kms-cryptography.md#cryptographic-operations) steuern. Verwenden Sie diesen Bedingungsschlüssel, um sowohl den Schlüssel als auch den Wert im Verschlüsselungskontext-Paar auszuwerten. Verwenden Sie den EncryptionContextKeys Bedingungsschlüssel [kms:](#conditions-kms-encryption-context-keys), um nur die Schlüssel für den Verschlüsselungskontext auszuwerten oder einen Verschlüsselungskontext unabhängig von Schlüsseln oder Werten zu benötigen.

**Anmerkung**  
Bedingungsschlüsselwerte müssen die Zeichenregeln für Schlüsselrichtlinien und IAM-Richtlinien einhalten. Einige Zeichen, die in einem Verschlüsselungskontext gültig sind, sind in Richtlinien nicht gültig. Sie können diesen Bedingungsschlüssel möglicherweise nicht verwenden, um alle gültigen Verschlüsselungskontextwerte auszudrücken. Weitere Informationen zu wichtigen Dokumentenregeln für Schlüsselrichtlinien finden Sie unter [Schlüsselrichtlinienformat](key-policy-overview.md#key-policy-format). Weitere Informationen zu Regeln für IAM-Richtliniendokumente finden Sie unter [Anforderungen für den IAM-Namen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) im *IAM-Benutzerhandbuch*.

Sie können mit einem [asymmetrische KMS-Schlüssel](symmetric-asymmetric.md) oder einem [HMAC-KMS-Schlüssel](hmac.md) keinen Verschlüsselungskontext in einer kryptografischen Produktion angeben. Asymmetrische Algorithmen und MAC-Algorithmen unterstützen keinen Verschlüsselungskontext.

Um den Bedingungsschlüssel kms:EncryptionContext: *context-key* zu verwenden, ersetzen Sie den *context-key* Platzhalter durch den Verschlüsselungskontextschlüssel. Ersetzen Sie den *context-value*-Platzhalter durch den Kontextwert der Verschlüsselung.

```
"kms:EncryptionContext:context-key": "context-value"
```

Der folgende Bedingungsschlüssel gibt beispielsweise einen Verschlüsselungskontext an, in dem der Schlüssel `AppName` und der Wert `ExampleApp` (`AppName = ExampleApp`) ist.

```
"kms:EncryptionContext:AppName": "ExampleApp"
```

Dies ist ein [einzelwertiger Bedingungsschlüssel](#set-operators). Der Schlüssel im Bedingungsschlüssel gibt einen bestimmten Verschlüsselungskontext-Schlüssel an (*Kontext-Schlüssel*). Obwohl Sie mehrere Verschlüsselungskontext-Paare in jede API-Anforderung einschließen können, kann das Verschlüsselungskontext-Paar mit dem angegebenen *Kontext-Schlüssel* nur einen Wert haben. Der `kms:EncryptionContext:Department`-Bedingungsschlüssel gilt beispielsweise nur für Verschlüsselungskontext-Paare mit einem `Department`-Schlüssel, und jedes gegebene Verschlüsselungskontext-Paar mit dem `Department`-Schlüssel kann nur einen Wert haben.

Verwenden Sie keinen Satz-Operator mit dem `kms:EncryptionContext:context-key`-Bedingungsschlüssel. Wenn Sie eine Richtlinienanweisung mit einer `Allow`-Aktion, dem `kms:EncryptionContext:context-key`-Bedingungsschlüssel und dem `ForAllValues`-Satz-Operator erstellen, erlaubt die Bedingung Anforderungen ohne Verschlüsselungskontext und Anforderungen mit Verschlüsselungskontext-Paaren, die nicht in der Richtlinienbedingung angegeben sind.

**Warnung**  
Verwenden Sie keinen `ForAnyValue`- oder `ForAllValues`-Satz-Operator mit diesem einzelwertigen Bedingungsschlüssel. Diese Satz-Operatoren können eine Richtlinienbedingung erstellen, die keine der von Ihnen gewünschten Werte erfordert und Werte erlaubt, die Sie verbieten möchten.  
Wenn Sie eine Richtlinie erstellen oder aktualisieren, die einen `ForAllValues` Set-Operator mit dem *Kontextschlüssel kms:EncryptionContext: enthält, wird die folgende* Fehlermeldung AWS KMS zurückgegeben:  
`OverlyPermissiveCondition:EncryptionContext: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified encryption context or with an unspecified encryption context. To fix, remove ForAllValues.`

Um ein bestimmtes Verschlüsselungskontext-Paar zu erfordern, verwenden Sie den `kms:EncryptionContext:context-key`-Bedingungsschlüssel mit dem `StringEquals`-Operator.

Die folgende Beispiel-Schlüsselrichtlinienanweisung erlaubt es Prinzipalen, die die Rolle übernehmen können, den KMS-Schlüssel in einer `GenerateDataKey`-Anforderung zu verwenden, nur dann, wenn der Verschlüsselungskontext in der Anforderung das `AppName:ExampleApp`-Paar beinhält. Andere Verschlüsselungskontext-Paare sind zulässig.

Für den Schlüsselnamen muss die Groß-/Kleinschreibung nicht berücksichtigt werden. Die Berücksichtigung der Groß-/Kleinschreibung des Wertes wird durch den Bedingungsoperator (z. B. `StringEquals`) festgelegt. Details hierzu finden Sie unter [Beachtung der Groß-/Kleinschreibung bei der Verschlüsselungskontextbedingung](#conditions-kms-encryption-context-case).

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
```

Um ein Verschlüsselungskontextpaar vorzuschreiben und alle anderen Verschlüsselungskontextpaare zu verbieten, verwenden Sie sowohl kms:EncryptionContext: *context-key* als auch in der Richtlinienanweisung. [`kms:EncryptionContextKeys`](#conditions-kms-encryption-context-keys) Die folgende Schlüsselrichtlinienanweisung verwendet die `kms:EncryptionContext:AppName`-Bedingung, um das `AppName=ExampleApp`-Verschlüsselungskontext-Paar in der Anforderung zu erfordern. Sie verwendet auch einen `kms:EncryptionContextKeys`-Bedingungsschlüssel mit dem `ForAllValues`-Satz-Operator, um nur den `AppName`-Verschlüsselungskontext-Schlüssel zu erlauben. 

Der `ForAllValues`-Satz-Operator beschränkt Verschlüsselungskontext-Schlüssel in der Anforderung an `AppName`. Wenn die `kms:EncryptionContextKeys`-Bedingung mit dem `ForAllValues`-Satz-Operator alleine in einer Richtlinienanweisung verwendet würde, würde dieser Satz-Operator Anforderungen ohne Verschlüsselungskontext erlauben. Wenn die Anforderung jedoch keinen Verschlüsselungskontext hätte, würde die `kms:EncryptionContext:AppName`-Bedingung fehlschlagen. Ausführliche Informationen zu dem `ForAllValues`-Satz-Operator finden Sie unter [Verwenden mehrerer Schlüssel und Werte](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) im *IAM-Benutzerhandbuch*.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/KeyUsers"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}
```

Sie können diesen Bedingungsschlüssel auch verwenden, um den Zugriff auf einen KMS-Schlüssel für eine bestimmte Produktion zu verweigern. Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet eine `Deny`-Wirkung, um dem Prinzipal die Verwendung des KMS-Schlüssels zu verbieten, wenn der Verschlüsselungskontext in der Anforderung ein `Stage=Restricted`-Verschlüsselungskontext-Paar enthält. Diese Bedingung ermöglicht eine Anforderung mit anderen Verschlüsselungskontext-Paaren, einschließlich Verschlüsselungskontext-Paaren mit dem `Stage`-Schlüssel und andere Werte, wie `Stage=Test`.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Stage": "Restricted"
    }
  }
}
```

### Verwenden mehrerer Verschlüsselungskontext-Paare
<a name="conditions-kms-encryption-context-many"></a>

Sie können mehrere Verschlüsselungskontext-Paare erfordern oder verbieten. Sie können auch eines von mehreren Verschlüsselungskontext-Paaren erfordern. Ausführliche Informationen zur Logik, die zum Interpretieren dieser Bedingungen verwendet wird, finden Sie unter [Erstellen einer Bedingung mit mehreren Schlüsseln oder Werten](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html) im IAM-Benutzerhandbuch. 

**Anmerkung**  
In früheren Versionen dieses Themas wurden Richtlinienanweisungen angezeigt, in denen die Operatoren `ForAnyValue` und `ForAllValues` Set mit dem Bedingungsschlüssel kms:EncryptionContext: *context-key* verwendet wurden. Verwenden eines Set-Operators mit einem [einzelwertigen Bedingungsschlüssel](#set-operators) kann zu Richtlinien führen, die Anforderungen ohne Verschlüsselungskontext und mit nicht-spezifizierten Verschlüsselungskontext-Paaren erlauben.   
Eine Richtlinienbedingung mit dem `Allow`-Effekt, dem `ForAllValues`-Satz-Operator und dem `"kms:EncryptionContext:Department": "IT"`-Bedingungsschlüssel, beschränkt den Verschlüsselungskontext nicht auf das Paar „Department=IT“. Sie erlaubt Anforderungen ohne Verschlüsselungskontext und Anforderungen mit nicht spezifizierten Verschlüsselungskontext-Paaren, wie `Stage=Restricted`.  
*Bitte überprüfen Sie Ihre Richtlinien und entfernen Sie den Operator set aus allen Bedingungen mit kms:EncryptionContext: context-key.* Versuche, eine Richtlinie mit diesem Format zu erstellen oder zu aktualisieren, schlagen mit einer `OverlyPermissiveCondition`-Ausnahme fehl. Um den Fehler zu beheben, löschen Sie den Satz-Operator.

Um mehrere Verschlüsselungskontext-Paare zu erfordern, listen Sie die Paare in derselben Bedingung auf. Die folgende Beispiel-Schlüsselrichtlinienanweisung erfordert zwei Verschlüsselungskontext-Paare, `Department=IT` und `Project=Alpha`. Da die Bedingungen unterschiedliche Schlüssel haben (`kms:EncryptionContext:Department` und `kms:EncryptionContext:Project`), werden sie implizit durch einen AND-Operator verbunden. Andere Verschlüsselungskontext-Paare sind zulässig, aber nicht erforderlich.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Department": "IT",
      "kms:EncryptionContext:Project": "Alpha"
    }
  }
}
```

Um ein Verschlüsselungskontext-Paar OR ein anderes Paar zu erfordern, platzieren Sie jeden Bedingungsschlüssel in einer separaten Richtlinienanweisung. Das folgende Beispiel einer Schlüsselrichtlinie erfordert `Department=IT`- *oder* `Project=Alpha`-Paare oder beides. Andere Verschlüsselungskontext-Paare sind zulässig, aber nicht erforderlich.

```
{
 "Effect": "Allow",
 "Principal": {
  "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
 },
 "Action": "kms:GenerateDataKey",
 "Resource": "*",
 "Condition": {
  "StringEquals": {
   "kms:EncryptionContext:Department": "IT"
  }
 }
},
{
 "Effect": "Allow",
 "Principal": {
  "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
 },
 "Action": "kms:GenerateDataKey",
 "Resource": "*",
 "Condition": {
  "StringEquals": {
   "kms:EncryptionContext:Project": "Alpha"
  }
 }
}
```

Um bestimmte Verschlüsselungspaare vorzuschreiben und alle anderen Verschlüsselungskontextpaare auszuschließen, verwenden Sie sowohl den kms: EncryptionContext *Kontextschlüssel* als auch [`kms:EncryptionContextKeys`](#conditions-kms-encryption-context-keys)in der Richtlinienerklärung. *In der folgenden wichtigen Richtlinienanweisung wird die Bedingung kms:EncryptionContext: *context-key* verwendet, um einen Verschlüsselungskontext mit beiden Und-Paaren vorzuschreiben. `Department=IT`* `Project=Alpha` Sie verwendet einen `kms:EncryptionContextKeys`-Bedingungsschlüssel mit dem `ForAllValues`-Satz-Operator, um nur die `Department`- und `Project`-Verschlüsselungskontext-Schlüssel zu erlauben. 

Der `ForAllValues`-Satz-Operator beschränkt Verschlüsselungskontext-Schlüssel in der Anforderung an `Department` und `Project`. Wenn er allein in einer Bedingung verwendet würde, würde dieser Set-Operator Anfragen ohne Verschlüsselungskontext zulassen, aber in dieser Konfiguration würde der *Kontext-Schlüssel kms: EncryptionContext*: in dieser Bedingung fehlschlagen.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Department": "IT",
      "kms:EncryptionContext:Project": "Alpha"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "Department",
        "Project"
      ]
    }
  }
}
```

Sie können auch mehrere Verschlüsselungskontext-Paare verbieten. Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet eine `Deny`-Wirkung, um dem Prinzipal die Verwendung des KMS-Schlüssels zu verbieten, wenn der Verschlüsselungskontext in der Anforderung ein `Stage=Restricted`- oder `Stage=Production`-Paar enthält. 

Mehrere Werte (`Restricted` und `Production`) für denselben Schlüssel (`kms:EncryptionContext:Stage`) sind implizit durch ein OR verbunden. Details dazu finden Sie unter [Auswertungslogik für Bedingungen mit mehreren Schlüsseln oder Werten](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multiple-conditions-eval) im *IAM-Benutzerhandbuch*.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Stage": [
         "Restricted",
         "Production"
      ] 
    }
  }
}
```

### Beachtung der Groß-/Kleinschreibung bei der Verschlüsselungskontextbedingung
<a name="conditions-kms-encryption-context-case"></a>

Der Verschlüsselungskontext, der in einem Entschlüsselungsvorgang angegeben wird, muss exakt mit dem Verschlüsselungskontext übereinstimmen, der in dem Verschlüsselungsvorgang angegeben wird (inklusive Groß-/Kleinschreibung). Nur die Reihenfolge, in der die Paare angegeben werden, spielt keine Rolle.

In den Richtlinienbedingungen wird die Groß-/Kleinschreibung für den Bedingungsschlüssel nicht berücksichtigt. Die Berücksichtigung der Groß-/Kleinschreibung des Bedingungswertes wird durch den von Ihnen verwendeten [Richtlinienbedingungsoperator](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) (z. B. `StringEquals` oder `StringEqualsIgnoreCase`) festgelegt.

Daher unterscheidet der Bedingungsschlüssel, der aus dem `kms:EncryptionContext:`-Präfix und dem *`context-key`*-Ersatz besteht, nicht zwischen Groß-/Kleinschreibung. Eine Richtlinie, die diese Bedingung verwendet, berücksichtigt die Groß-/Kleinschreibung bei beiden Elemente des Bedingungsschlüssels nicht. Die Berücksichtigung der Groß-/Kleinschreibung des Wertes (d. h. der *`context-value`*-Ersatz) wird durch den Richtlinienbedingungsoperator festgelegt.

Die folgende Richtlinie erlaubt den Vorgang, wenn der Verschlüsselungskontext einen `Appname`-Schlüssel enthält – unabhängig von der Groß-/Kleinschreibung. Die `StringEquals`-Bedingung erfordert, dass `ExampleApp` wie ursprünglich angegeben geschrieben wird. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Appname": "ExampleApp"
    }
  }
}
```

Um einen Verschlüsselungskontextschlüssel zu verlangen, bei dem die Groß- und Kleinschreibung beachtet werden muss, verwenden Sie die EncryptionContextKeys Richtlinienbedingung [kms:](#conditions-kms-encryption-context-keys) mit einem Bedingungsoperator, bei dem Groß- und Kleinschreibung beachtet werden muss, z. B. `StringEquals` Da der Verschlüsselungskontext-Schlüssel in dieser Richtlinienbedingung der Wert der Richtlinienbedingung ist, wird die Groß-/Kleinschreibung durch den Bedingungsoperator berücksichtigt. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    }
  }
}
```

Um eine Bewertung sowohl des Schlüssels als auch des Werts für den Verschlüsselungskontext unter Berücksichtigung der Groß- und Kleinschreibung zu verlangen, verwenden Sie die Richtlinienbedingungen `kms:EncryptionContextKeys` und kms:EncryptionContext: für den *Kontextschlüssel* zusammen in derselben Richtlinienanweisung. Der Bedingungsoperator (z. B.`StringEquals`) gilt immer für den Wert der Bedingung. Der Verschlüsselungskontext-Schlüssel (z. B.`AppName`) ist der Wert der `kms:EncryptionContextKeys`-Bedingung. *Der Wert für den Verschlüsselungskontext (z. B.`ExampleApp`) ist der Wert der Bedingung kms:EncryptionContext: context-key.*

In der folgenden Beispiel-Schlüsselrichtlinienanweisung wird, nachdem der `StringEquals`-Operator die Groß-/Kleinschreibung berücksichtigt, sowohl im Schlüssel als auch im Wert des Verschlüsselungskontextes die Groß-/Kleinschreibung berücksichtigt.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    },
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
```

### Verwenden von Variablen in einer Verschlüsselungskontextbedingung
<a name="conditions-kms-encryption-context-variables"></a>

Der Schlüssel und der Wert in einem Verschlüsselungskontextpaar müssen einfache Literalzeichenfolgen sein. Sie dürfen keine Ganzzahlen oder Objekte oder Typen, die nicht vollständig aufgelöst sind, sein. Wenn Sie einen anderen Typ verwenden, z. B. eine Ganzzahl oder eine Fließkommazahl, AWS KMS interpretiert dies als Literalzeichenfolge.

```
"encryptionContext": {
    "department": "10103.0"
}
```

Der Wert im `kms:EncryptionContext:context-key`-Bedingungsschlüsselpaar kann jedoch eine [IAM-Richtlinien-Variable](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html) sein. Diese Richtlinien-Variablen werden zur Laufzeit basierend auf Werten in der Anforderung aufgelöst. Beispielsweise wird `aws:CurrentTime ` zum Zeitpunkt der Anforderung und `aws:username` zum Anzeigenamen des Aufrufers aufgelöst.

Sie können diese Richtlinien-Variablen verwenden, um eine Richtlinienanweisung mit einer Bedingung zu erstellen, die sehr spezifische Informationen in einem Verschlüsselungskontext erfordert, z. B. den Benutzernamen des Aufrufers. Da sie eine Variable enthält, können Sie dieselbe Richtlinienanweisung für alle Benutzer verwenden, die die Rolle übernehmen können. Sie müssen nicht für jeden Benutzer eine separate Richtlinienanweisung schreiben.

Angenommen, Sie möchten, dass alle Benutzer, die eine Rolle annehmen können, denselben KMS-Schlüssel verwenden, um ihre Daten zu verschlüsseln und zu entschlüsseln. Sie möchten ihnen jedoch nur erlauben, die Daten zu entschlüsseln, die sie verschlüsselt haben. Stellen Sie zunächst fest, dass jede Anfrage einen Verschlüsselungskontext AWS KMS enthalten muss, in dem sich der Schlüssel befindet `user` und der Wert dem AWS Benutzernamen des Aufrufers entspricht, z. B. der folgende.

```
"encryptionContext": {
    "user": "bob"
}
```

Um diese Anforderung zu erzwingen, können Sie dann eine Richtlinienanweisung wie die im folgenden Beispiel verwenden. Diese Richtlinienanweisung erteilt der `TestTeam`-Rolle die Berechtigung zum Verschlüsseln und Entschlüsseln von Daten mit dem KMS-Schlüssel. Die Berechtigung ist jedoch nur gültig, wenn der Verschlüsselungskontext in der Anforderung ein `"user": "<username>"`-Paar enthält. Um den Benutzernamen darzustellen, verwendet die Bedingung die [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse)-Richtlinien-Variable.

Wenn die Anforderung ausgewertet wird, ersetzt der Benutzername des Aufrufers die Variable in der Bedingung. So erfordert die Bedingung einen Verschlüsselungskontext von `"user": "bob"` für "bob" und `"user": "alice"` für "alice".

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/TestTeam"
  },
  "Action": [
    "kms:Decrypt",
    "kms:Encrypt"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:user": "${aws:username}"
    }
  }
}
```

Sie können eine IAM-Richtlinien-Variable nur im Wert des Bedingungsschlüssels `kms:EncryptionContext:context-key` verwenden. Sie können keine Variable im Schlüssel verwenden.

Sie können auch [anbieterspezifische Kontextschlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_user-id.html) in Variablen verwenden. Diese Kontextschlüssel identifizieren eindeutig Benutzer, die sich AWS mithilfe des Web Identity Federation angemeldet haben. 

Wie alle Variablen können diese Variablen nur in der `kms:EncryptionContext:context-key`-Richtlinienbedingung und nicht im eigentlichen Verschlüsselungskontext verwendet werden. Und sie können nur im Wert der Bedingung verwendet werden, nicht im Schlüssel.

Die folgende Schlüsselrichtlinienanweisung ähnelt beispielsweise der vorherigen. Die Bedingung erfordert jedoch einen Verschlüsselungskontext, in dem der Schlüssel `sub` ist und der Wert einen Benutzer eindeutig identifiziert, der in einem Amazon-Cognito-Benutzerpool angemeldet ist. Weitere Informationen zum Identifizieren von Benutzern und Rollen in Amazon Cognito finden Sie unter [IAM-Rollen](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html) im [Amazon-Cognito-Entwicklerhandbuch](https://docs.aws.amazon.com/cognito/latest/developerguide/).

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/TestTeam"
  },
  "Action": [
    "kms:Decrypt",
    "kms:Encrypt"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
       "kms:EncryptionContext:sub": "${cognito-identity.amazonaws.com:sub}"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [km: GrantConstraintType](#conditions-kms-grant-constraint-type)

## km: EncryptionContextKeys
<a name="conditions-kms-encryption-context-keys"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionContextKeys`  |  Zeichenfolge (Liste)  | Mehrwertig |  `CreateGrant` `Decrypt` `Encrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt` `RetireGrant`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Mit dem Bedingungsschlüssel `kms:EncryptionContextKeys` können Sie den Zugriff auf einen [KMS-Schlüssel zu symmetrischen Verschlüsselung](symm-asymm-choose-key-spec.md#symmetric-cmks) anhand des [Verschlüsselungskontexts](encrypt_context.md) in einer Anforderung für eine kryptografische Produktion steuern. Verwenden Sie diesen Bedingungsschlüssel, um nur den Wert in den einzelnen Verschlüsselungskontext-Paaren auszuwerten. Verwenden Sie den Bedingungsschlüssel `kms:EncryptionContext:context-key`, um sowohl den Schlüssel als auch den Wert im Verschlüsselungskontext auszuwerten.

Sie können mit einem [asymmetrische KMS-Schlüssel](symmetric-asymmetric.md) oder einem [HMAC-KMS-Schlüssel](hmac.md) keinen Verschlüsselungskontext in einer kryptografischen Produktion angeben. Asymmetrische Algorithmen und MAC-Algorithmen unterstützen keinen Verschlüsselungskontext.

**Anmerkung**  
Bedingungsschlüsselwerte, einschließlich eines Verschlüsselungskontextschlüssels, müssen den Zeichen- und Kodierungsregeln für AWS KMS Schlüsselrichtlinien entsprechen. Sie können diesen Bedingungsschlüssel möglicherweise nicht verwenden, um alle gültigen Verschlüsselungskontextschlüssel auszudrücken. Weitere Informationen zu wichtigen Dokumentenregeln für Schlüsselrichtlinien finden Sie unter [Schlüsselrichtlinienformat](key-policy-overview.md#key-policy-format). Weitere Informationen zu Regeln für IAM-Richtliniendokumente finden Sie unter [Anforderungen für den IAM-Namen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) im *IAM-Benutzerhandbuch*.

Dies ist ein [mehrwertiger Bedingungsschlüssel](#set-operators). Sie können mehrere Verschlüsselungskontext-Paare in jeder API-Anforderung angeben. `kms:EncryptionContextKeys` vergleicht die Verschlüsselungskontext-Schlüssel in der Anforderung mit dem Satz von Verschlüsselungskontext-Schlüsseln in der Richtlinie. Um zu bestimmen, wie diese Sätze verglichen werden, müssen Sie einen `ForAnyValue` oder `ForAllValues`-Satz-Operator in der Richtlinienbedingung angeben. Ausführliche Informationen zu den Satz-Operatoren finden Sie unter [Verwenden mehrerer Schlüssel und Werte](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) im IAM-Benutzerhandbuch.
+ `ForAnyValue`: Mindestens ein Verschlüsselungskontext-Schlüssel in der Anforderung muss mit einem Verschlüsselungskontext-Schlüssel in der Richtlinienbedingung übereinstimmen. Andere Verschlüsselungskontext-Schlüssel sind zulässig. Wenn die Anforderung keinen Verschlüsselungskontext aufweist, ist die Bedingung nicht erfüllt.
+ `ForAllValues`: Mindestens ein Verschlüsselungskontext-Schlüssel in der Anforderung muss mit einem Verschlüsselungskontext-Schlüssel in der Richtlinienbedingung übereinstimmen. Dieser Satz-Operator beschränkt die Verschlüsselungskontext-Schlüssel auf diejenigen in der Richtlinienbedingung. Er erfordert keine Verschlüsselungskontext-Schlüssel, aber er verbietet nicht spezifizierte Verschlüsselungskontext-Schlüssel.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den `kms:EncryptionContextKeys`-Bedingungsschlüssel mit dem `ForAnyValue`-Operator. Diese Richtlinienanweisung erlaubt die Verwendung eines KMS-Schlüssels für die angegebenen Operationen nur, wenn mindestens eines der Verschlüsselungskontext-Paare in der Anforderung den `AppName`-Schlüssel enthält, unabhängig von dessen Wert. 

Diese Schlüsselrichtlinienanweisung erlaubt beispielsweise eine `GenerateDataKey`-Anforderung mit zwei Verschlüsselungskontext-Paaren, `AppName=Helper` und `Project=Alpha`, da das erste Verschlüsselungskontext-Paar die Bedingung erfüllt. Eine Anforderung mit nur `Project=Alpha` oder ohne Verschlüsselungskontext würde fehlschlagen.

Da bei der [StringEquals](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)Bedingungsoperation Groß- und Kleinschreibung beachtet wird, erfordert diese Richtlinienanweisung die Schreibweise und Groß- und Kleinschreibung des Verschlüsselungskontextschlüssels. Sie können aber einen Bedingungsoperator verwenden, der die Groß-/Kleinschreibung des Schlüssels ignoriert – z. B. `StringEqualsIgnoreCase`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": [
    "kms:Encrypt",
    "kms:GenerateDataKey*"
  ],
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    }
  }
}
```

Sie können den `kms:EncryptionContextKeys`-Bedingungsschlüssel auch verwenden, um einen (beliebigen) Verschlüsselungskontext in kryptografischen Operationen, die den KMS-Schlüssel verwenden, zu erfordern. 

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel `kms:EncryptionContextKeys` mit dem [Null-bedingten Operator](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null), um den Zugriff auf einen KMS-Schlüssel nur zu erlauben, wenn der Verschlüsselungskontext in der API-Anforderung nicht Null ist. Diese Bedingung überprüft nicht die Schlüssel oder Werte des der Verschlüsselungskontexts. Sie überprüft nur, ob der Verschlüsselungskontext vorhanden ist. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": [
    "kms:Encrypt",
    "kms:GenerateDataKey*"
  ],
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:EncryptionContextKeys": false
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [kms:EncryptionContext: *Kontextschlüssel*](#conditions-kms-encryption-context)
+ [km: GrantConstraintType](#conditions-kms-grant-constraint-type)

## km: ExpirationModel
<a name="conditions-kms-expiration-model"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:ExpirationModel`  |  Zeichenfolge  | Einzelwertig |  `ImportKeyMaterial`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Der `kms:ExpirationModel` Bedingungsschlüssel steuert den Zugriff auf die [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)Operation auf der Grundlage des Werts des [ExpirationModel](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ExpirationModel)Parameters in der Anforderung. 

`ExpirationModel` ist ein optionaler Parameter, der festlegt, ob das importierte Schlüsselmaterial abgelaufen ist. Gültige Werte sind `KEY_MATERIAL_EXPIRES` und `KEY_MATERIAL_DOES_NOT_EXPIRE`. Der Standardwert ist `KEY_MATERIAL_EXPIRES`. 

Das Ablaufdatum und die Uhrzeit werden durch den Wert des [ValidTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ValidTo)Parameters bestimmt. Der `ValidTo`-Parameter ist erforderlich, es sei denn der Wert des `ExpirationModel`-Parameters lautet `KEY_MATERIAL_DOES_NOT_EXPIRE`. Sie können auch den ValidTo Bedingungsschlüssel [kms:](#conditions-kms-valid-to) verwenden, um ein bestimmtes Ablaufdatum als Bedingung für den Zugriff festzulegen.

Das folgende Richtlinienanweisungsbeispiel verwendet den `kms:ExpirationModel`-Bedingungsschlüssel, um Benutzern das Importieren von Schlüsselmaterial in einen KMS-Schlüssel nur dann zu erlauben, wenn die Anforderung den `ExpirationModel`-Parameter enthält und der entsprechende Wert `KEY_MATERIAL_DOES_NOT_EXPIRE` lautet. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE"
    }
  }
}
```

Sie können auch den `kms:ExpirationModel`-Bedingungsschlüssel verwenden, um Benutzern das Importieren von Schlüsselmaterial nur dann zu erlauben, wenn das Schlüsselmaterial abgelaufen ist, ohne ein Ablaufdatum in der Bedingung anzugeben. Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den `kms:ExpirationModel`-Bedingungsschlüssel mit dem [Null-bedingten Operator](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null), um Benutzern das Importieren von Schlüsselmaterial nur dann zu erlauben, wenn die Anforderung keinen `ExpirationModel`-Parameter enthält. Der Standardwert für ExpirationModel ist`KEY_MATERIAL_EXPIRES`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:ExpirationModel": true
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: ValidTo](#conditions-kms-valid-to)
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km: GrantConstraintType
<a name="conditions-kms-grant-constraint-type"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantConstraintType`  |  Zeichenfolge  | Einzelwertig |  `CreateGrant` `RetireGrant`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf den [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Vorgang auf der Grundlage der Art der [Gewährungsbeschränkung](create-grant-overview.md#grant-constraints) in der Anfrage zu steuern. 

Wenn Sie eine Erteilung erstellen, können Sie optional eine Erteilungseinschränkung festlegen, damit die Operationen nur dann Zugriff gewähren, wenn ein bestimmter [Verschlüsselungskontext](encrypt_context.md) vorhanden ist. Die Erteilungseinschränkung kann einem der folgenden beiden Typen vorliegen: `EncryptionContextEquals` oder `EncryptionContextSubset`. Sie können diesen Bedingungsschlüssel verwenden, um zu überprüfen, ob die Anforderung den einen oder den anderen Typen enthält.

**Wichtig**  
Geben Sie keine vertraulichen oder sensiblen Informationen in dieses Feld ein. Dieses Feld kann in CloudTrail Protokollen und anderen Ausgaben im Klartext angezeigt werden.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel `kms:GrantConstraintType`, um Benutzern nur dann das Erstellen von Erteilungen zu gestatten, wenn die Anforderung die Erteilungseinschränkung `EncryptionContextEquals` enthält. Das Beispiel zeigt eine Richtlinienanweisung in einer Schlüsselrichtlinie.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:GrantConstraintType": "EncryptionContextEquals"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [kms:EncryptionContext: *Kontextschlüssel*](#conditions-kms-encryption-context)
+ [km: EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## km: GrantIsFor AWSResource
<a name="conditions-kms-grant-is-for-aws-resource"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantIsForAWSResource`  |  Boolesch  | Einzelwertig |  `CreateGrant` `ListGrants` `RevokeGrant`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Erlaubt oder verweigert die Erlaubnis für die [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)Operationen [CreateGrant[ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html), oder nur, wenn ein in [integrierter AWS Dienst](https://aws.amazon.com/kms/features/#AWS_Service_Integration) den Vorgang im Namen des Benutzers AWS KMS aufruft. Diese Richtlinienbedingung erlaubt es dem Benutzer nicht, diese Erteilungs-Operationen direkt aufzurufen.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel `kms:GrantIsForAWSResource`. Es ermöglicht integrierten AWS Diensten wie Amazon EBS AWS KMS, im Namen des angegebenen Prinzipals Grants für diesen KMS-Schlüssel zu gewähren. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:GrantIsForAWSResource": true
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## km: GrantOperations
<a name="conditions-kms-grant-operations"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantOperations`  |  Zeichenfolge  | Mehrwertig |  `CreateGrant`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf den [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Vorgang auf der Grundlage der in der Anfrage [enthaltenen Zuschussoperationen](grants.md#terms-grant-operations) zu steuern. Sie können beispielsweise Benutzer berechtigen, Erteilungen zu erstellen, mit denen die Berechtigung zum Verschlüsseln, aber nicht zum Entschlüsseln gewährt wird. Weitere Informationen zu Erteilungen finden Sie unter [Verwenden von Erteilungen](grants.md).

Dies ist ein [mehrwertiger Bedingungsschlüssel](#set-operators). `kms:GrantOperations` vergleicht den Satz von Erteilungs-Operationen in der `CreateGrant`-Anforderung an den Satz der Erteilungs-Operationen in der Richtlinie. Um zu bestimmen, wie diese Sätze verglichen werden, müssen Sie einen `ForAnyValue` oder `ForAllValues`-Satz-Operator in der Richtlinienbedingung angeben. Ausführliche Informationen zu den Satz-Operatoren finden Sie unter [Verwenden mehrerer Schlüssel und Werte](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) im IAM-Benutzerhandbuch.
+ `ForAnyValue`: Mindestens eine Erteilungs-Operation in der Anforderung muss mit einem der Erteilungs-Operationen in der Richtlinienbedingung übereinstimmen. Andere Erteilungs-Operationen sind zulässig.
+ ForAllValues: Jeder Grant-Vorgang in der Anfrage muss mit einem Grant-Vorgang in der Richtlinienbedingung übereinstimmen. Dieser Satz-Operator beschränkt die Erteilungs-Operationen auf die in der Richtlinienbedingung angegebenen Operationen. Er erfordert keine Erteilungs-Operationen, aber er verbietet nicht-spezifizierte Erteilungs-Operationen.

  ForAllValues gibt auch „true“ zurück, wenn die Anfrage keine Zuschussvorgänge enthält, lässt sie aber `CreateGrant` nicht zu. Wenn das `Operations`-Symbol fehlt oder einen Nullwert hat, schlägt die `CreateGrant`-Anforderung fehl.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel `kms:GrantOperations`, um nur dann das Erstellen von Erteilungen zu erlauben, wenn die Erteilungs-Operationen `Encrypt`, `ReEncryptTo` oder beides sind. Wenn die Erteilung andere Operationen umfasst, schlägt die `CreateGrant`-Anforderung fehl.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "ForAllValues:StringEquals": {
      "kms:GrantOperations": [
        "Encrypt",
        "ReEncryptTo"
      ]
    }
  }
}
```

Wenn Sie den Satz-Operator in der Richtlinienbedingung auf `ForAnyValue` ändern, würde die Richtlinienanweisung erfordern, dass mindestens eine der Erteilungs-Operationen in der Erteilung `Encrypt` oder `ReEncryptTo` ist, aber es würde andere Erteilungs-Operationen wie `Decrypt` oder `ReEncryptFrom` erlauben.

**Informationen finden Sie auch unter:**
+ [km: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## km: GranteePrincipal
<a name="conditions-kms-grantee-principal"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:GranteePrincipal`  |  Zeichenfolge  | Einzelwertig |  `CreateGrant`  |  IAM- und Schlüsselrichtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf die [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Operation anhand des [GranteePrincipal](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-GranteePrincipal)Parameterwerts in der Anforderung zu steuern. Sie können beispielsweise das Erstellen von Erteilungen zur Verwendung eines KMS-Schlüssels nur erlauben, wenn der erteilungsempfangende Prinzipal in der `CreateGrant`-Anforderung dem in der Bedingungsanweisung angegebenen Prinzipal entspricht.

Um den Principal des Empfängers anzugeben, verwenden Sie den Amazon-Ressourcennamen (ARN) eines AWS Prinzipals. Zu den gültigen Prinzipalen gehören AWS-Konten IAM-Benutzer, IAM-Rollen, Verbundbenutzer und Benutzer mit angenommenen Rollen. Hilfe zur ARN-Syntax für einen Prinzipal finden Sie unter [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) im *IAM-Benutzerhandbuch*.

Die folgende Beispiel-Schlüsselrichtlinienanweisung verwendet den Bedingungsschlüssel `kms:GranteePrincipal`, um nur dann das Erstellen von Erteilungen für einen KMS-Schlüssel zu erlauben, wenn der erteilungsempfangende Prinzipal in der Erteilung die `LimitedAdminRole` ist.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:GranteePrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km: GrantOperations](#conditions-kms-grant-operations)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## km: KeyAgreementAlgorithm
<a name="conditions-kms-key-agreement-algorithm"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyAgreementAlgorithm`  |  Zeichenfolge  | Einzelwertig | `DeriveSharedSecret` |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können den `kms:KeyAgreementAlgorithm` Bedingungsschlüssel verwenden, um den Zugriff auf die [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)Operation basierend auf dem Wert des `KeyAgreementAlgorithm` Parameters in der Anforderung zu steuern. Der einzig gültige Wert für `KeyAgreementAlgorithm` ist`ECDH`.

In der folgenden wichtigen Richtlinienanweisung wird beispielsweise der `kms:KeyAgreementAlgorithm` Bedingungsschlüssel verwendet, um jeglichen Zugriff zu verweigern, DeriveSharedSecret sofern dies nicht der `KeyAgreementAlgorithm` Fall ist`ECDH`.

```
{
       "Effect": "Deny",
       "Principal": {
         "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
       },
       "Action": "kms:DeriveSharedSecret",
       "Resource": "*",
       "Condition": {
            "StringNotEquals": {
               "kms:KeyAgreementAlgorithm": "ECDH"
         }
       }
}
```

**Informationen finden Sie auch unter:**
+ [km: KeyUsage](#conditions-kms-key-usage)

## km: KeyOrigin
<a name="conditions-kms-key-origin"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyOrigin`  |  Zeichenfolge  | Einzelwertig |  `CreateKey` KMS-Schlüsselressourcen-Operationen  |  IAM-Richtlinien Schlüsselrichtlinien und IAM-Richtlinien  | 

Der Bedingungsschlüssel `kms:KeyOrigin` steuert den Zugriff auf Vorgänge anhand des Wertes der `Origin`-Eigenschaft des KMS-Schlüssels, der von der Produktion erstellt oder verwendet wird. Er funktioniert als Ressourcenbedingung oder als Anforderungsbedingung.

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf die [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)Operation auf der Grundlage des Werts des [Origin-Parameters](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-Origin) in der Anfrage zu steuern. Gültige Werte für `Origin` sind `AWS_KMS``AWS_CLOUDHSM`,`EXTERNAL_KEY_STORE`, und`EXTERNAL`. 

Sie können beispielsweise einen KMS-Schlüssel nur erstellen, wenn das Schlüsselmaterial in AWS KMS (`AWS_KMS`) generiert wird, nur wenn das Schlüsselmaterial in einem AWS CloudHSM Cluster generiert wird, der mit einem [benutzerdefinierten CloudHSM-Schlüsselspeicher](key-store-overview.md#custom-key-store-overview) (`AWS_CLOUDHSM`) verknüpft ist, nur wenn das Schlüsselmaterial in einem [externen Schlüsselspeicher](key-store-overview.md#custom-key-store-overview) (`EXTERNAL_KEY_STORE`) generiert wird, oder nur, wenn das [Schlüsselmaterial aus einer externen Quelle importiert wird](importing-keys.md) (`EXTERNAL`). 

In der folgenden Beispielanweisung für eine Schlüsselrichtlinie wird der `kms:KeyOrigin` Bedingungsschlüssel nur dann verwendet, um einen KMS-Schlüssel zu erstellen, wenn das Schlüsselmaterial AWS KMS erstellt wird.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
      },
      "Action": "kms:CreateKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:KeyOrigin": "AWS_KMS"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:GenerateDataKeyPair",
        "kms:GenerateDataKeyPairWithoutPlaintext",
        "kms:ReEncrypt*"
      ],
      "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "kms:KeyOrigin": "AWS_CLOUDHSM"
        }
      }
    }
  ]
}
```

------

Sie können mit dem Bedingungsschlüssel `kms:KeyOrigin` auch den Zugriff auf Operationen steuern, die einen KMS-Schlüssel verwenden oder verwalten, basierend auf der `Origin`-Eigenschaft des KMS-Schlüssels, der für die Produktion verwendet wird. Bei der Operation muss es sich um eine *KMS-Schlüsselressourcen-Operation* handeln, das heißt, eine Operation, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle [Actions and Resources (Aktionen und Ressourcen)](kms-api-permissions-reference.md#kms-api-permissions-reference-table) Sie nach dem Wert von `KMS key` in der `Resources`-Spalte für die Operation.

Die folgende IAM-Richtlinie erlaubt es beispielsweise Prinzipalen, die angegebenen KMS-Schlüsselressourcen-Operationen auszuführen, jedoch nur mit KMS-Schlüssel in dem Konto, die in einem benutzerdefinierten Schlüsselspeicher erstellt wurde.

```
{
  "Effect": "Allow",  
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:GenerateDataKey",
    "kms:GenerateDataKeyWithoutPlaintext",
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext",
    "kms:ReEncrypt*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeyOrigin": "AWS_CLOUDHSM"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [km: KeySpec](#conditions-kms-key-spec)
+ [km: KeyUsage](#conditions-kms-key-usage)

## km: KeySpec
<a name="conditions-kms-key-spec"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:KeySpec`  |  Zeichenfolge  | Einzelwertig |  `CreateKey` KMS-Schlüsselressourcen-Operationen |  IAM-Richtlinien Schlüsselrichtlinien und IAM-Richtlinien  | 

Der Bedingungsschlüssel `kms:KeySpec` steuert den Zugriff auf Operationen anhand des Wertes der `KeySpec`-Eigenschaft des KMS-Schlüssels, der von der Produktion erstellt oder verwendet wird. 

Sie können diesen Bedingungsschlüssel in einer IAM-Richtlinie verwenden, um den Zugriff auf den [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)Vorgang anhand des [KeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-KeySpec)Parameterwerts in einer `CreateKey` Anforderung zu steuern. Beispielsweise können Sie es mit dieser Bedingung Benutzern erlauben, nur KMS-Schlüssel für symmetrische Verschlüsselung oder nur HMAC-KMS-Schlüssel zu erstellen.

Die folgende Beispiel-IAM-Richtlinienanweisung verwendet den Bedingungsschlüssel `kms:KeySpec`, um den Prinzipalen nur dann das Erstellen eines asymmetrischen RSA-KMS-Schlüssels zu erlauben. Die Berechtigung ist nur gültig, wenn der `KeySpec` in der Anfrage mit `RSA_` beginnt.

```
{
  "Effect": "Allow",
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:KeySpec": "RSA_*"
    }
  }
}
```

Sie können mit dem Bedingungsschlüssel `kms:KeySpec` auch den Zugriff auf Operationen steuern, die einen KMS-Schlüssel verwenden oder verwalten, basierend auf der `KeySpec`-Eigenschaft des KMS-Schlüssels, der für die Produktion verwendet wird. Bei der Operation muss es sich um eine *KMS-Schlüsselressourcen-Operation* handeln, das heißt, eine Operation, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle [Actions and Resources (Aktionen und Ressourcen)](kms-api-permissions-reference.md#kms-api-permissions-reference-table) Sie nach dem Wert von `KMS key` in der `Resources`-Spalte für die Produktion. 

Die folgende IAM-Richtlinie erlaubt es beispielsweise Prinzipalen, die angegebenen KMS-Schlüsselressourcen-Operationen auszuführen, jedoch nur mit KMS-Schlüsseln zur symmetrischen Verschlüsselung im Konto. 

```
{
  "Effect": "Allow",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:DescribeKey"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeySpec": "SYMMETRIC_DEFAULT"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms: CustomerMasterKeySpec (veraltet)](#conditions-kms-key-spec-replaced)
+ [km: DataKeyPairSpec](#conditions-kms-data-key-spec)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [km: KeyUsage](#conditions-kms-key-usage)

## km: KeyUsage
<a name="conditions-kms-key-usage"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyUsage`  |  Zeichenfolge  | Einzelwertig |  `CreateKey` KMS-Schlüsselressourcen-Operationen  |  IAM-Richtlinien Schlüsselrichtlinien und IAM-Richtlinien  | 

Der Bedingungsschlüssel `kms:KeyUsage` steuert den Zugriff auf Operationen anhand des Wertes der `KeyUsage`-Eigenschaft des KMS-Schlüssels, der von der Produktion erstellt oder verwendet wird. 

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf die [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)Operation anhand des [KeyUsage](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-KeyUsage)Parameterwerts in der Anforderung zu steuern. Gültige Werte für `KeyUsage` sind `ENCRYPT_DECRYPT``SIGN_VERIFY`,`GENERATE_VERIFY_MAC`, und`KEY_AGREEMENT`.

Beispielsweise können Sie es erlauben, einen KMS-Schlüssel nur dann zu erstellen, wenn `KeyUsage` auf `ENCRYPT_DECRYPT` eingestellt ist, oder einem Benutzer die Berechtigung verweigert, wenn `KeyUsage` auf `SIGN_VERIFY` eingestellt ist. 

Die folgende Beispiel-IAM-Richtlinienanweisung verwendet den Bedingungsschlüssel `kms:KeyUsage`, damit nur dann ein KMS-Schlüssel erstellt werden kann, wenn `KeyUsage` auf `ENCRYPT_DECRYPT` eingestellt ist.

```
{
  "Effect": "Allow",  
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:KeyUsage": "ENCRYPT_DECRYPT"
    }
  }
}
```

Sie können mit dem Bedingungsschlüssel `kms:KeyUsage` auch den Zugriff auf Operationen steuern, die einen KMS-Schlüssel verwenden oder verwalten, basierend auf der `KeyUsage`-Eigenschaft des KMS-Schlüssels, der für die Produktion verwendet wird. Bei der Operation muss es sich um eine *KMS-Schlüsselressourcen-Operation* handeln, das heißt, eine Operation, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle [Actions and Resources (Aktionen und Ressourcen)](kms-api-permissions-reference.md#kms-api-permissions-reference-table) Sie nach dem Wert von `KMS key` in der `Resources`-Spalte für die Operation.

Die folgende IAM-Richtlinie erlaubt es beispielsweise Prinzipalen, die angegebenen KMS-Schlüsselressourcen-Operationen auszuführen, jedoch nur mit KMS-Schlüsseln im Konto, die für Signatur und Verifizierung verwendet werden.

```
{
  "Effect": "Allow",
  "Action": [
    "kms:CreateGrant",
    "kms:DescribeKey",
    "kms:GetPublicKey",
    "kms:ScheduleKeyDeletion"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeyUsage": "SIGN_VERIFY"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms: CustomerMasterKeyUsage (veraltet)](#conditions-kms-key-usage-replaced)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [km: KeySpec](#conditions-kms-key-spec)

## km: MacAlgorithm
<a name="conditions-kms-mac-algorithm"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:MacAlgorithm`  |  Zeichenfolge  | Einzelwertig | `GenerateMac``VerifyMac` |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können den `kms:MacAlgorithm` Bedingungsschlüssel verwenden, um den Zugriff auf die [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)Operationen [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)und basierend auf dem Wert des `MacAlgorithm` Parameters in der Anforderung zu steuern. 

Die folgende Beispiel-Schlüsselrichtlinie ermöglicht Benutzern, die zur Verwendung des HMAC-KMS-Schlüssels zum Generieren und Verifizieren von HMAC-Tags nur dann, wenn der MAC-Algorithmus in der Anforderung `HMAC_SHA_384` oder `HMAC_SHA_512` ist, die Rolle `testers` annehmen können. Diese Richtlinie verwendet zwei separate Richtlinienaussagen mit jeweils einer eigenen Bedingung. Wenn Sie mehr als einen MAC-Algorithmus in einer einzigen Bedingungsanweisung angeben, erfordert die Bedingung beide Algorithmen anstelle des einen oder anderen.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/testers"
      },
      "Action": [
        "kms:GenerateMac",
        "kms:VerifyMac"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:MacAlgorithm": "HMAC_SHA_384"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/testers"
      },
      "Action": [
        "kms:GenerateMac",
        "kms:VerifyMac"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:MacAlgorithm": "HMAC_SHA_512"
        }
      }
    }
  ]
}
```

------

**Informationen finden Sie auch unter:**
+ [km: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [km: SigningAlgorithm](#conditions-kms-signing-algorithm)

## km: MessageType
<a name="conditions-kms-message-type"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:MessageType`  |  Zeichenfolge  | Einzelwertig |  `Sign` `Verify`  | Schlüsselrichtlinien und IAM-Richtlinien | 

Der Bedingungsschlüssel `kms:MessageType` steuert den Zugriff auf die Operationen [Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) und [Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) basierend auf dem Wert des `MessageType`-Parameters in der Anforderung. Gültige Werte für `MessageType` sind `RAW` und `DIGEST`. 

Die folgende Schlüsselrichtlinienanweisung verwendet beispielsweise den Bedingungsschlüssel `kms:MessageType`, um zu erlauben, einen asymmetrischen KMS-Schlüssel zum Signieren einer Nachricht zu verwenden, jedoch keinen Nachrichten-Digest.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:Sign",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:MessageType": "RAW"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: SigningAlgorithm](#conditions-kms-signing-algorithm)

## km: MultiRegion
<a name="conditions-kms-multiregion"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:MultiRegion`  |  Boolesch  | Einzelwertig |  `CreateKey` KMS-Schlüsselressourcen-Operationen  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um Operationen entweder nur für einzelregionale Schlüssel oder nur für [multiregionale Schlüssel](multi-region-keys-overview.md) zu erlauben. Der `kms:MultiRegion` Bedingungsschlüssel steuert den Zugriff auf AWS KMS Operationen mit KMS-Schlüsseln und auf den [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)Vorgang, der auf dem Wert der `MultiRegion` Eigenschaft des KMS-Schlüssels basiert. Gültige Werte sind `true` (multiregionaler Schlüssel) oder `false` (einzelregionaler Schlüssel). Alle KMS-Schlüssel verfügen über eine `MultiRegion`-Eigenschaft.

Das folgende Beispiel einer IAM-Richtlinienanweisung verwendet den `kms:MultiRegion`-Bedingungsschlüssel, um den Prinzipalen nur dann das Erstellen von einzelregionalen Schlüsseln zu gestatten. 

```
{
  "Effect": "Allow",
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:MultiRegion": false
    }
  }
}
```

## km: MultiRegionKeyType
<a name="conditions-kms-multiregion-key-type"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:MultiRegionKeyType`  |  Zeichenfolge  | Einzelwertig |  `CreateKey` KMS-Schlüsselressourcen-Operationen  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um Operationen entweder nur für [multiregionale Primärschlüssel](multi-region-keys-overview.md#mrk-primary-key) oder nur für [multiregionale Replikatschlüssel](multi-region-keys-overview.md#mrk-replica-key) zu erlauben. Der `kms:MultiRegionKeyType` Bedingungsschlüssel steuert den Zugriff auf AWS KMS Operationen mit KMS-Schlüsseln und den [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)Vorgang, der auf der `MultiRegionKeyType` Eigenschaft des KMS-Schlüssels basiert. Die gültigen Werte sind `PRIMARY` und `REPLICA`. Nur multiregionale Schlüssel verfügen über eine `MultiRegionKeyType`-Eigenschaft.

In der Regel verwenden Sie den `kms:MultiRegionKeyType`-Bedingungsschlüssel in einer IAM-Richtlinie, um den Zugriff auf mehrere KMS-Schlüssel zu kontrollieren. Da ein bestimmter multiregionaler Schlüssel jedoch zu Primär- oder Replikat wechseln kann, sollten Sie diese Bedingung in einer Schlüsselrichtlinie verwenden, um eine Produktion nur dann zu erlauben, wenn der bestimmte multiregionale Schlüssel ein Primär- oder Replikatschlüssel ist.

In diesem Beispiel verwendet die IAM-Richtlinienanweisung den Bedingungsschlüssel `kms:MultiRegionKeyType`, um Prinzipalen das Planen und Abbrechen einer Schlüssellöschung nur für multiregionale Replikatschlüssel im angegebenen AWS-Konto zu erlauben. 

```
{
  "Effect": "Allow",
  "Action": [
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "arn:aws:kms:*:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:MultiRegionKeyType": "REPLICA"
    }
  }
}
```

Um den Zugriff auf alle multiregionale Schlüssel zu erlauben oder zu verweigern, können Sie beide Werte oder einen Nullwert mit `kms:MultiRegionKeyType` verwenden. Zu diesem Zweck wird jedoch der MultiRegion Bedingungsschlüssel [kms:](#conditions-kms-multiregion) empfohlen.

## km: PrimaryRegion
<a name="conditions-kms-primary-region"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:PrimaryRegion`  |  Zeichenfolge (Liste)  | Einzelwertig |  `UpdatePrimaryRegion`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um die Zielregionen in einem [UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)Vorgang einzuschränken. Diese AWS-Regionen können Ihre Primärschlüssel für mehrere Regionen hosten. 

Der `kms:PrimaryRegion` Bedingungsschlüssel steuert den Zugriff auf die [UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)Operation auf der Grundlage des `PrimaryRegion` Parameterwerts. Der `PrimaryRegion` Parameter gibt den AWS-Region [Replikatschlüssel für mehrere Regionen an, der zum Primärschlüssel](multi-region-keys-overview.md#mrk-replica-key) heraufgestuft wird. Der Wert der Bedingung besteht aus einem oder mehreren AWS-Region Namen, z. B. `us-east-1` oder`ap-southeast-2`, oder Regionsnamenmustern, wie `eu-*`

Die folgende Schlüsselrichtlinienanweisung verwendet beispielsweise den Bedingungsschlüssel `kms:PrimaryRegion`, um es Prinzipalen zu erlauben, die primäre Region eines multiregionalen Schlüssels auf eine der vier angegebenen Regionen zu aktualisieren.

```
{
  "Effect": "Allow",
  "Action": "kms:UpdatePrimaryRegion",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/Developer"
  },
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:PrimaryRegion": [ 
         "us-east-1",
         "us-west-2",
         "eu-west-3",
         "ap-southeast-2"
      ]
    }
  }
}
```

## km: ReEncryptOnSameKey
<a name="conditions-kms-reencrypt-on-same-key"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:ReEncryptOnSameKey`  |  Boolesch  | Einzelwertig |  `ReEncrypt`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf den [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)Vorgang zu steuern, je nachdem, ob in der Anforderung ein KMS-Zielschlüssel angegeben ist, der derselbe ist, der für die ursprüngliche Verschlüsselung verwendet wurde. 

Die folgende Richtlinienanweisung verwendet beispielsweise den Bedingungsschlüssel `kms:ReEncryptOnSameKey`, um zu erlauben, nur dann eine erneute Verschlüsselung vorzunehmen, wenn der verwendete Ziel-KMS-Schlüssel mit dem der ursprünglichen Verschlüsselung übereinstimmt.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:ReEncrypt*",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:ReEncryptOnSameKey": true
    }
  }
}
```

## km: RequestAlias
<a name="conditions-kms-request-alias"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:RequestAlias`  |  Zeichenfolge (Liste)  | Einzelwertig |  [Kryptografische Operationen](kms-cryptography.md#cryptographic-operations) [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um eine Produktion nur dann zu erlauben, wenn die Anforderung einen bestimmten Alias zum Identifizieren des KMS-Schlüssels verwendet. Der Bedingungsschlüssel `kms:RequestAlias` steuert den Zugriff auf einen KMS-Schlüssel, der in einer kryptografischen Produktion verwendet wird, `GetPublicKey`, oder `DescribeKey`, basierend auf dem [Alias](kms-alias.md), der diesen KMS-Schlüssel in der Anforderung identifiziert. (Diese Richtlinienbedingung hat keine Auswirkung auf den [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)Vorgang, da der Vorgang keinen KMS-Schlüssel oder Alias verwendet.) 

Diese Bedingung unterstützt die [attributebasierte Zugriffskontrolle](abac.md) (ABAC) AWS KMS, mit der Sie den Zugriff auf KMS-Schlüssel anhand der Tags und Aliase eines KMS-Schlüssels steuern können. Sie können Tags und Aliase verwenden, um den Zugriff auf einen KMS-Schlüssel zu erlauben oder zu verweigern, ohne Richtlinien oder Erteilungen zu ändern. Details hierzu finden Sie unter [ABAC für AWS KMS](abac.md).

Um den Alias in dieser Richtlinienbedingung anzugeben, verwenden Sie einen [Aliasnamen](concepts.md#key-id-alias-name), wie `alias/project-alpha`, oder ein Alias-Namensmuster, wie `alias/*test*`. Sie können keinen [Alias-ARN](concepts.md#key-id-alias-ARN) im Wert dieses Bedingungsschlüssels angeben.

Um diese Bedingung zu erfüllen, muss der Wert des `KeyId`-Parameters in der Anforderung ein übereinstimmender Aliasname oder Alias-ARN sein. Wenn die Anforderung einen anderen [Schlüsselbezeichner](concepts.md#key-id) verwendet, erfüllt er die Bedingung nicht, selbst wenn er denselben KMS-Schlüssel identifiziert.

Die folgende wichtige Richtlinienanweisung ermöglicht es dem Principal beispielsweise, den [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)Vorgang mit dem KMS-Schlüssel aufzurufen. Dies ist jedoch nur zulässig, wenn der Wert des `KeyId`-Parameters in der Anforderung `alias/finance-key` ist oder ein Alias-ARN mit diesem Aliasnamen, z. B. `arn:aws:kms:us-west-2:111122223333:alias/finance-key`.

```
{
  "Sid": "Key policy using a request alias condition",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/developer"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:RequestAlias": "alias/finance-key"
    }
  }
}
```

Sie können diesen Bedingungsschlüssel nicht verwenden, um den Zugriff auf Aliasoperationen wie [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)oder zu steuern [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html). Weitere Hinweise zum Steuern des Zugriffs auf Alias-Operationen finden Sie unter [Steuern des Zugriffs auf Aliasse](alias-access.md).

## km: ResourceAliases
<a name="conditions-kms-resource-aliases"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:ResourceAliases`  |  Zeichenfolge (Liste)  | Mehrwertig | KMS-Schlüsselressourcen-Operationen |  Nur IAM-Richtlinien  | 

Verwenden Sie diesen Bedingungsschlüssel, um den Zugriff auf einen KMS-Schlüssel basierend auf den [Aliasen](kms-alias.md), die dem KMS-Schlüssel zugeordnet sind. Bei der Operation muss es sich um eine *KMS-Schlüsselressourcen-Operation* handeln, das heißt, eine Operation, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle [Actions and Resources (Aktionen und Ressourcen)](kms-api-permissions-reference.md#kms-api-permissions-reference-table) Sie nach dem Wert von `KMS key` in der `Resources`-Spalte für die Produktion.

Diese Bedingung unterstützt attributbasierte Zugriffssteuerung (ABAC) in AWS KMS. Mit ABAC können Sie den Zugriff auf KMS-Schlüssel anhand der Tags steuern, die einem KMS-Schlüssel zugewiesen sind, und den Aliasen, die einem KMS-Schlüssel zugeordnet sind. Sie können Tags und Aliasse verwenden, um den Zugriff auf einen KMS-Schlüssel zu erlauben oder zu verweigern, ohne Richtlinien oder Erteilungen zu ändern. Details hierzu finden Sie unter [ABAC für AWS KMS](abac.md).

Ein Alias muss in einer AWS-Konto UND-Region eindeutig sein. Mit dieser Bedingung können Sie jedoch den Zugriff auf mehrere KMS-Schlüssel in derselben Region (mithilfe des `StringLike` Vergleichsoperators) oder auf mehrere KMS-Schlüssel in verschiedenen AWS-Regionen Konten steuern.

**Anmerkung**  
Die [kms: ResourceAliases](#conditions-kms-resource-aliases) -Bedingung ist nur wirksam, wenn der KMS-Schlüssel den [Aliasnamen pro KMS-Schlüsselkontingent](resource-limits.md#aliases-per-key) entspricht. Wenn ein KMS-Schlüssel dieses Kontingent überschreitet, wird auch Prinzipalen, die berechtigt sind, den KMS-Schlüssel zu nutzen, durch die Bedingung `kms:ResourceAliases` der Zugriff auf den KMS-Schlüssel verweigert.

Um den Alias in dieser Richtlinienbedingung anzugeben, verwenden Sie einen [Aliasnamen](concepts.md#key-id-alias-name), wie `alias/project-alpha`, oder ein Alias-Namensmuster, wie `alias/*test*`. Sie können keinen [Alias-ARN](concepts.md#key-id-alias-ARN) im Wert dieses Bedingungsschlüssels angeben. Um die Bedingung zu erfüllen, muss der in der Produktion verwendete KMS-Schlüssel über den angegebenen Alias verfügen. Es spielt keine Rolle, ob oder wie der KMS-Schlüssel in der Anforderung für die Produktion identifiziert wird.

Dies ist ein mehrwertiger Bedingungsschlüssel, der den Satz von Aliasen, die einem KMS-Schlüssel zugeordnet sind, mit dem Satz von Aliasen in der Richtlinie vergleicht. Um zu bestimmen, wie diese Sätze verglichen werden, müssen Sie einen `ForAnyValue` oder `ForAllValues`-Satz-Operator in der Richtlinienbedingung angeben. Ausführliche Informationen zu den Satz-Operatoren finden Sie unter [Verwenden mehrerer Schlüssel und Werte](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) im IAM-Benutzerhandbuch.
+ ForAnyValue: Mindestens ein dem KMS-Schlüssel zugeordneter Alias muss mit einem Alias in der Richtlinienbedingung übereinstimmen. Andere Aliase sind zulässig. Wenn der KMS-Schlüssel keine Aliase aufweist, ist die Bedingung nicht erfüllt.
+ ForAllValues: Jeder Alias, der dem KMS-Schlüssel zugeordnet ist, muss mit einem Alias in der Richtlinie übereinstimmen. Dieser Satz-Operator beschränkt die Aliase, die dem KMS-Schlüssel zugeordnet sind, auf diejenigen in der Richtlinienbedingung. Er erfordert keine Aliase, aber er verbietet nicht-spezifizierte Aliase.

Die folgende IAM-Richtlinienanweisung ermöglicht es dem Principal beispielsweise, den [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)Vorgang für jeden KMS-Schlüssel in der angegebenen Datei aufzurufen AWS-Konto , der dem `finance-key` Alias zugeordnet ist. (Die Schlüsselrichtlinien der betroffenen KMS-Schlüssel müssen es auch dem Konto des Prinzipals erlauben, sie für diese Produktion zu verwenden.) Um anzuzeigen, dass die Bedingung erfüllt ist, wenn einer der vielen Aliase, die dem KMS-Schlüssel zugeordnet werden könnten, `alias/finance-key` ist, verwendet die Bedingung den `ForAnyValue`-Satz-Operator. 

Da die `kms:ResourceAliases`-Bedingung auf der Ressource und nicht auf der Anforderung basiert, ist ein Aufruf an `GenerateDataKey` für jeden KMS-Schlüssel erfolgreich, der dem `finance-key`-Alias zugeordnet ist, auch wenn die Anforderung eine [Schlüssel-ID](concepts.md#key-id-key-id) oder einen [Schüssel-ARN](concepts.md#key-id-key-ARN) verwendet, um den KMS-Schlüssel zu identifizieren. 

```
{
  "Sid": "AliasBasedIAMPolicy",
  "Effect": "Allow",
  "Action": "kms:GenerateDataKey",
  "Resource": [
    "arn:aws:kms:*:111122223333:key/*",
    "arn:aws:kms:*:444455556666:key/*"
  ],
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:ResourceAliases": "alias/finance-key"
    }
  }
}
```

Die folgende Beispiel-IAM-Richtlinienanweisung erlaubt es dem Prinzipal, KMS-Schlüssel zu aktivieren und zu deaktivieren, aber nur, wenn alle Aliase den KMS-Schlüssel "`Test`" enthalten. Diese Richtlinienanweisung verwendet zwei Bedingungen. Die Bedingung mit dem `ForAllValues`-Satz-Operator erfordert, dass alle Aliase, die dem KMS-Schlüssel zugeordnet sind, "Test" enthalten. Die Bedingung mit dem `ForAnyValue`-Satz-Operator erfordert, dass der KMS-Schlüssel mindestens einen Alias mit "Test" enthält. Ohne die `ForAnyValue`-Bedingung, hätte diese Richtlinienanweisung es dem Prinzipal erlaubt, KMS-Schlüssel zu verwenden, die keine Aliase hatten.

```
{
  "Sid": "AliasBasedIAMPolicy",
  "Effect": "Allow",
  "Action": [
    "kms:EnableKey",
    "kms:DisableKey"
  ],
  "Resource": "arn:aws:kms:*:111122223333:key/*",
  "Condition": {
    "ForAllValues:StringLike": {
      "kms:ResourceAliases": [
        "alias/*Test*"
      ]
    },
    "ForAnyValue:StringLike": {
      "kms:ResourceAliases": [
        "alias/*Test*"
      ]
    }
  }
}
```

## km: ReplicaRegion
<a name="conditions-kms-replica-region"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:ReplicaRegion`  |  Zeichenfolge (Liste)  | Einzelwertig |  `ReplicateKey`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Mit diesem Bedingungsschlüssel können Sie einschränken, AWS-Regionen in welchem Umfang ein Prinzipal einen Schlüssel für [mehrere Regionen](multi-region-keys-overview.md) replizieren kann. Der `kms:ReplicaRegion` Bedingungsschlüssel steuert den Zugriff auf den [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Vorgang auf der Grundlage des Werts des [ReplicaRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-RetiringPrincipal)Parameters in der Anforderung. Dieser Parameter gibt die AWS-Region für den neuen [Replikatschlüssel](multi-region-keys-overview.md#mrk-replica-key) an. 

Der Wert der Bedingung besteht aus einem oder mehreren AWS-Region Namen, z. B. `us-east-1` oder`ap-southeast-2`, oder aus Namensmustern wie`eu-*`. Eine Liste der AWS KMS unterstützten Namen finden Sie unter [AWS Key Management Service Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/kms.html) in der Allgemeine AWS-Referenz. AWS-Regionen 

In der folgenden wichtigen Richtlinienanweisung wird beispielsweise der `kms:ReplicaRegion` Bedingungsschlüssel verwendet, damit Prinzipale den [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)Vorgang nur aufrufen können, wenn der Wert des `ReplicaRegion` Parameters einer der angegebenen Regionen entspricht.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/Administrator"
  },
  "Action": "kms:ReplicateKey"
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ReplicaRegion": [ 
         "us-east-1",
         "eu-west-3",
         "ap-southeast-2"
      ]
    }
  }
}
```

Dieser Bedingungsschlüssel steuert nur den Zugriff auf den [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)Vorgang. Um den Zugriff auf den [UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)Vorgang zu steuern, verwenden Sie den PrimaryRegion Bedingungsschlüssel [kms:](#conditions-kms-primary-region).

## km: RetiringPrincipal
<a name="conditions-kms-retiring-principal"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:RetiringPrincipal`  |  Zeichenfolge (Liste)  | Einzelwertig |  `CreateGrant`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um den Zugriff auf die [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Operation anhand des [RetiringPrincipal](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-RetiringPrincipal)Parameterwerts in der Anforderung zu steuern. Sie können beispielsweise das Erstellen von Erteilungen zur Verwendung eines KMS-Schlüssels nur erlauben, wenn der `RetiringPrincipal` in der `CreateGrant`-Anforderung dem in der Bedingungsanweisung angegebenen `RetiringPrincipal` entspricht.

Um den ausscheidenden Prinzipal anzugeben, verwenden Sie den Amazon-Ressourcennamen (ARN) eines AWS Prinzipals. Zu den gültigen Prinzipalen gehören AWS-Konten IAM-Benutzer, IAM-Rollen, Verbundbenutzer und Benutzer mit angenommenen Rollen. Hilfe zur ARN-Syntax für einen Prinzipal finden Sie unter [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) im *IAM-Benutzerhandbuch*.

Das folgende Beispiel für eine Schlüsselrichtlinienanweisung ermöglicht es einem Benutzer, Berechtigungen für den KMS-Schlüssel zu erstellen. Der `kms:RetiringPrincipal` Bedingungsschlüssel schränkt die Berechtigung auf `CreateGrant` Anfragen ein, bei denen es sich bei dem ausscheidenden Schulleiter im Zuschuss um `LimitedAdminRole`

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:RetiringPrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)

## km: RotationPeriodInDays
<a name="conditions-kms-rotation-period-in-days"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:RotationPeriodInDays`  |  Numerischer Wert  | Einzelwertig |  `EnableKeyRotation`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um die Werte einzuschränken, die Prinzipale im `RotationPeriodInDays` Parameter einer [EnableKeyRotation](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKeyRotation.html)Anfrage angeben können.

Der `RotationPeriodInDays` gibt die Anzahl der Tage zwischen den einzelnen automatischen Schlüsselrotationsdaten an. AWS KMS ermöglicht es Ihnen, einen Rotationszeitraum zwischen 90 und 2560 Tagen anzugeben, aber Sie können die `kms:RotationPeriodInDays` Bedingungstaste verwenden, um den Rotationszeitraum weiter einzuschränken, indem Sie beispielsweise eine Mindestrotationsperiode innerhalb des gültigen Bereichs erzwingen.

In der folgenden wichtigen Richtlinienanweisung wird beispielsweise der `kms:RotationPeriodInDays` Bedingungsschlüssel verwendet, um zu verhindern, dass Prinzipale die Schlüsselrotation aktivieren, wenn der Rotationszeitraum 180 Tage oder weniger beträgt.

```
{
  "Effect": "Deny",
  "Action": "kms:EnableKeyRotation",
  "Principal": "*",
  "Resource": "*",
  "Condition" : {
      "NumericLessThanEquals" : {
        "kms:RotationPeriodInDays" : "180"
      }
  }
}
```

## km: ScheduleKeyDeletionPendingWindowInDays
<a name="conditions-kms-schedule-key-deletion-pending-window-in-days"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:ScheduleKeyDeletionPendingWindowInDays`  |  Numerischer Wert  | Einzelwertig |  `ScheduleKeyDeletion`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können diesen Bedingungsschlüssel verwenden, um die Werte einzuschränken, die Prinzipale im `PendingWindowInDays` Parameter einer [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html)Anfrage angeben können.

Der `PendingWindowInDays` gibt die Anzahl der Tage an, nach denen ein Schlüssel gelöscht AWS KMS wird. AWS KMS ermöglicht es Ihnen, eine Wartezeit zwischen 7 und 30 Tagen anzugeben, aber Sie können den `kms:ScheduleKeyDeletionPendingWindowInDays` Bedingungsschlüssel verwenden, um die Wartezeit weiter einzuschränken, indem Sie beispielsweise eine Mindestwartezeit innerhalb des gültigen Bereichs erzwingen.

Die folgende Schlüsselrichtlinienanweisung verwendet beispielsweise den `kms:ScheduleKeyDeletionPendingWindowInDays`-Bedingungsschlüssel, um zu verhindern, dass Prinzipale das Löschen von Schlüsseln planen, wenn die Wartezeit weniger als oder gleich 21 Tage beträgt.

```
{
  "Effect": "Deny",
  "Action": "kms:ScheduleKeyDeletion",
  "Principal": "*",
  "Resource": "*",
  "Condition" : {
      "NumericLessThanEquals" : {
        "kms:ScheduleKeyDeletionPendingWindowInDays" : "21"
      }
  }
}
```

## km: SigningAlgorithm
<a name="conditions-kms-signing-algorithm"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:SigningAlgorithm`  |  Zeichenfolge  | Einzelwertig |  `Sign`  `Verify`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Sie können den `kms:SigningAlgorithm` Bedingungsschlüssel verwenden, um den Zugriff auf die Vorgänge [Signieren](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) und [Verifizieren](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) auf der Grundlage des [SigningAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-SigningAlgorithm)Parameterwerts in der Anforderung zu steuern. Dieser Bedingungsschlüssel hat keine Auswirkung auf Operationen, die außerhalb von ausgeführt werden AWS KMS, wie z. B. die Überprüfung von Signaturen mit dem öffentlichen Schlüssel in einem asymmetrischen KMS-Schlüsselpaar außerhalb von. AWS KMS

Die folgende Beispiel-Schlüsselrichtlinie erlaubt es Benutzern, die die `testers`-Rolle annehmen können, den KMS-Schlüssel zum Signieren von Nachrichten nur dann zu verwenden, wenn der für die Anforderung verwendete Signaturalgorithmus ein RSASSA\$1PSS-Algorithmus ist, z. B `RSASSA_PSS_SHA512`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/testers"
  },
  "Action": "kms:Sign",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:SigningAlgorithm": "RSASSA_PSS*"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [km: MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km: MessageType](#conditions-kms-message-type)

## km: ValidTo
<a name="conditions-kms-valid-to"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:ValidTo`  |  Zeitstempel  | Einzelwertig |  `ImportKeyMaterial`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Der `kms:ValidTo` Bedingungsschlüssel steuert den Zugriff auf die [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)Operation auf der Grundlage des Werts des [ValidTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ValidTo)Parameters in der Anforderung, der bestimmt, wann das importierte Schlüsselmaterial abläuft. Der Wert wird im [Unix-Zeitformat](https://en.wikipedia.org/wiki/Unix_time) angegeben.

Standardmäßig ist der `ValidTo`-Parameter in einer `ImportKeyMaterial`-Anforderung erforderlich. Wenn der Wert des [ExpirationModel](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ExpirationModel)Parameters jedoch ist`KEY_MATERIAL_DOES_NOT_EXPIRE`, ist der `ValidTo` Parameter ungültig. Sie können auch den ExpirationModel Bedingungsschlüssel [kms:](#conditions-kms-expiration-model) verwenden, um den `ExpirationModel` Parameter oder einen bestimmten Parameterwert anzufordern.

Die folgende Beispiel-Richtlinienanweisung erlaubt es einem Benutzer, Schlüsselmaterial in einen KMS-Schlüssel zu importieren. Der `kms:ValidTo`-Bedingungsschlüssel beschränkt die Berechtigung für `ImportKeyMaterial`-Anforderungen, bei denen der `ValidTo`-Wert kleiner oder gleich `1546257599.0` ist (31. Dezember 2018 23:59:59). 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "NumericLessThanEquals": {
      "kms:ValidTo": "1546257599.0"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: ExpirationModel](#conditions-kms-expiration-model) 
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km: ViaService
<a name="conditions-kms-via-service"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:ViaService`  |  Zeichenfolge  | Einzelwertig |  KMS-Schlüsselressourcen-Operationen  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Der `kms:ViaService` Bedingungsschlüssel beschränkt die Verwendung eines KMS-Schlüssels auf Anfragen von bestimmten Personen AWS-Services. Dieser Bedingungsschlüssel gilt nur für [Forward-Access-Sitzungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). In jedem `kms:ViaService`-Bedingungsschlüssel können Sie einen oder mehrere Services angeben. Bei der Operation muss es sich um eine *KMS-Schlüsselressourcen-Operation* handeln, das heißt, eine Operation, die für einen bestimmten KMS-Schlüssel autorisiert ist. Um die KMS-Schlüsselressourcen-Operationen zu identifizieren, suchen Sie in der Tabelle [Actions and Resources (Aktionen und Ressourcen)](kms-api-permissions-reference.md#kms-api-permissions-reference-table) Sie nach dem Wert von `KMS key` in der `Resources`-Spalte für die Operation.

Die folgende Schlüsselrichtlinienanweisung verwendet beispielsweise den Bedingungsschlüssel `kms:ViaService`, um die Verwendung eines [kundenverwalteten KMS-Schlüssels](concepts.md#customer-mgn-key) nur für die angegebenen Aktionen zu erlauben, wenn die Anforderung im Auftrag von Amazon EC2 oder Amazon RDS in der Region USA West (Oregon) im Namen von `ExampleRole` ausgegeben wurde.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:ListGrants",
    "kms:DescribeKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": [
        "ec2.us-west-2.amazonaws.com",
        "rds.us-west-2.amazonaws.com"
      ]
    }
  }
}
```

Außerdem können Sie mit dem Bedingungsschlüssel `kms:ViaService` die Berechtigung zur Verwendung eines KMS-Schlüssels verweigern, wenn die Anforderung von bestimmten Services stammt. Die folgende Richtlinienanweisung einer Schlüsselrichtlinie verwendet beispielsweise einen `kms:ViaService`-Bedingungsschlüssel, um zu verhindern, dass ein kundenverwalteter KMS-Schlüssel für `Encrypt`-Operationen verwendet wird, wenn die Anforderung im Namen von `ExampleRole` von AWS Lambda ausgegeben wird.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt"    
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": [
          "lambda.us-west-2.amazonaws.com"
      ]
    }
  }
}
```

**Wichtig**  
Wenn Sie den Bedingungsschlüssel `kms:ViaService` verwenden, gibt der Service die Anforderung im Namen eines Prinzipals im AWS-Konto aus. Diese Prinzipale müssen über die folgenden Berechtigungen verfügen:  
Berechtigung zur Verwendung des KMS-Schlüssels Der Prinzipal muss dem integrierten Service diese Berechtigungen erteilen, sodass der Service den kundenverwalteten Schlüssel im Auftrag des Prinzipals verwenden kann. Weitere Informationen finden Sie unter [AWS KMS Verschlüsselung mit AWS Diensten verwenden](service-integration.md).
Berechtigung zur Verwendung des integrierten Service. Einzelheiten dazu, wie Sie Benutzern Zugriff auf einen AWS Dienst gewähren, der integriert werden kann AWS KMS, finden Sie in der Dokumentation für den integrierten Dienst.

Alle [Von AWS verwaltete Schlüssel](concepts.md#aws-managed-key) verwenden einen `kms:ViaService`-Bedingungsschlüssel in ihrem Schlüsselrichtliniendokument. Diese Bedingung erlaubt es dem KMS-Schlüssel, nur für Anforderungen verwendet zu werden, die von dem Service stammen, der den KMS-Schlüssel erstellt hat. Um die wichtigsten Richtlinien für einen zu sehen Von AWS verwalteter Schlüssel, verwenden Sie den [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)Vorgang. 

Der Bedingungsschlüssel `kms:ViaService` ist in IAM- und Schlüsselrichtlinienanweisungen gültig. Die von Ihnen angegebenen Services müssen in[in AWS KMS integriert sein](https://aws.amazon.com/kms/features/#AWS_Service_Integration) und den Bedingungsschlüssel `kms:ViaService` unterstützen.

### Services, die den Bedingungsschlüssel `kms:ViaService` unterstützen
<a name="viaService_table"></a>

In der folgenden Tabelle sind AWS Dienste aufgeführt, die in den `kms:ViaService` Bedingungsschlüssel integriert sind AWS KMS und dessen Verwendung in vom Kunden verwalteten Schlüsseln unterstützen. Die Dienste in dieser Tabelle sind möglicherweise nicht in allen Regionen verfügbar. Verwenden Sie das `.amazonaws.com` Suffix des AWS KMS ViaService Namens in allen AWS Partitionen.

**Anmerkung**  
Möglicherweise müssen Sie horizontal oder vertikal scrollen, um alle Daten in dieser Tabelle anzuzeigen.


| Service-Name | AWS KMS ViaService Name | 
| --- | --- | 
| Amazon-KI-Operationen | aiops.AWS\$1region.amazonaws.com | 
| AWS App Runner | apprunner.AWS\$1region.amazonaws.com | 
| AWS AppFabric | appfabric.AWS\$1region.amazonaws.com | 
| Amazon AppFlow | appflow.AWS\$1region.amazonaws.com | 
| AWS Application Migration Service | mgn.AWS\$1region.amazonaws.com | 
| Amazon Athena | athena.AWS\$1region.amazonaws.com | 
| AWS Audit Manager | auditmanager.AWS\$1region.amazonaws.com | 
| Amazon Aurora | rds.AWS\$1region.amazonaws.com | 
| AWS Backup | backup.AWS\$1region.amazonaws.com | 
| AWS Backup Gateway | backup-gateway.AWS\$1region.amazonaws.com | 
| Amazon Bedrock Modellkopie | bedrock.AWS\$1region.amazonaws.com | 
| Amazon Chime SDK | chimevoiceconnector.AWS\$1region.amazonaws.com | 
| AWS Clean Rooms ML | cleanrooms-ml.AWS\$1region.amazonaws.com | 
| AWS CodeArtifact | codeartifact.AWS\$1region.amazonaws.com | 
|  CodeGuru Amazon-Rezensent | codeguru-reviewer.AWS\$1region.amazonaws.com | 
| Amazon Comprehend | comprehend.AWS\$1region.amazonaws.com | 
| Amazon Connect | connect.AWS\$1region.amazonaws.com | 
| Amazon Connect Customer Profiles | profile.AWS\$1region.amazonaws.com | 
| Amazon Q in Connect | wisdom.AWS\$1region.amazonaws.com | 
| AWS Database Migration Service (AWS DMS) | dms.AWS\$1region.amazonaws.com | 
| AWS DeepRacer | deepracer.AWS\$1region.amazonaws.com | 
| AWS Directory Service | directoryservice.AWS\$1region.amazonaws.com | 
| Amazon DocumentDB | docdb-elastic.AWS\$1region.amazonaws.com | 
| Amazon DynamoDB | dynamodb.AWS\$1region.amazonaws.com | 
| Amazon EC2 Systems Manager (SSM) | ssm.AWS\$1region.amazonaws.com | 
| Amazon Elastic Block Store (Amazon EBS) | ec2.AWS\$1region.amazonaws.com (Nur EBS) | 
| Amazon Elastic Container Registry (Amazon ECR) | ecr.AWS\$1region.amazonaws.com | 
| Amazon Elastic File System (Amazon EFS) | elasticfilesystem.AWS\$1region.amazonaws.com | 
| Amazon ElastiCache |  Nehmen Sie beide ViaService Namen in den Wert des Bedingungsschlüssels auf: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/kms/latest/developerguide/conditions-kms.html)  | 
| AWS Elemental MediaTailor | mediatailor.AWS\$1region.amazonaws.com | 
| AWS Auflösung der Entität | entityresolution.AWS\$1region.amazonaws.com | 
| Amazon EventBridge | events.AWS\$1region.amazonaws.com | 
| Amazon FinSpace | finspace.AWS\$1region.amazonaws.com | 
| Amazon Forecast | forecast.AWS\$1region.amazonaws.com | 
| Amazon FSx | fsx.AWS\$1region.amazonaws.com | 
| AWS Glue | glue.AWS\$1region.amazonaws.com | 
| AWS Ground Station | groundstation.AWS\$1region.amazonaws.com | 
| Amazon GuardDuty | malware-protection.AWS\$1region.amazonaws.com | 
| AWS HealthLake | healthlake.AWS\$1region.amazonaws.com | 
| AWS IoT SiteWise | iotsitewise.AWS\$1region.amazonaws.com | 
| Amazon Kendra | kendra.AWS\$1region.amazonaws.com | 
| Amazon Keyspaces (für Apache Cassandra) | cassandra.AWS\$1region.amazonaws.com | 
| Amazon Kinesis | kinesis.AWS\$1region.amazonaws.com | 
| Amazon Data Firehose | firehose.AWS\$1region.amazonaws.com | 
| Amazon Kinesis Video Streams | kinesisvideo.AWS\$1region.amazonaws.com | 
| AWS Lambda | lambda.AWS\$1region.amazonaws.com | 
| Amazon Lex | lex.AWS\$1region.amazonaws.com | 
| AWS License Manager | license-manager.AWS\$1region.amazonaws.com | 
| Amazon Location Service | geo.AWS\$1region.amazonaws.com | 
| Amazon Lookout für Equipment | lookoutequipment.AWS\$1region.amazonaws.com | 
| Amazon Lookout für Metrics | lookoutmetrics.AWS\$1region.amazonaws.com | 
| Amazon Lookout für Vision | lookoutvision.AWS\$1region.amazonaws.com | 
| Amazon Macie | macie.AWS\$1region.amazonaws.com | 
| AWS Mainframe Modernization | m2.AWS\$1region.amazonaws.com | 
| AWS Mainframe Modernization Testen von Anwendungen | apptest.AWS\$1region.amazonaws.com | 
| Amazon Managed Blockchain | managedblockchain.AWS\$1region.amazonaws.com | 
| Amazon Managed Streaming for Apache Kafka (Amazon MSK) | kafka.AWS\$1region.amazonaws.com | 
| Amazon Managed Workflows for Apache Airflow (MWAA) | airflow.AWS\$1region.amazonaws.com | 
| Amazon MemoryDB | memorydb.AWS\$1region.amazonaws.com | 
| Amazon Monitron | monitron.AWS\$1region.amazonaws.com | 
| Amazon MQ | mq.AWS\$1region.amazonaws.com | 
| Amazon Neptune | rds.AWS\$1region.amazonaws.com | 
| Amazon Nimble Studio | nimble.AWS\$1region.amazonaws.com | 
| AWS HealthOmics | omics.AWS\$1region.amazonaws.com | 
|  OpenSearch Amazon-Dienst | es.AWS\$1region.amazonaws.com, aoss.AWS\$1region.amazonaws.com | 
|  OpenSearch Maßgeschneiderte Amazon-Pakete | custom-packages.AWS\$1region.amazonaws.com | 
| AWS Proton | proton.AWS\$1region.amazonaws.com | 
| Amazon Quantum Ledger Database (Amazon QLDB) | qldb.AWS\$1region.amazonaws.com | 
| Erkenntnisse zur Amazon-RDS-Leistung | rds.AWS\$1region.amazonaws.com | 
| Amazon Redshift | redshift.AWS\$1region.amazonaws.com | 
| Amazon Redshift Query Editor V2 | sqlworkbench.AWS\$1region.amazonaws.com | 
| Amazon Redshift Serverless | redshift-serverless.AWS\$1region.amazonaws.com | 
| Amazon Rekognition | rekognition.AWS\$1region.amazonaws.com | 
| Amazon Relational Database Service (Amazon RDS) | rds.AWS\$1region.amazonaws.com | 
| Amazon Replicated Data Store | ards.AWS\$1region.amazonaws.com | 
| Amazon SageMaker KI | sagemaker.AWS\$1region.amazonaws.com | 
| AWS Secrets Manager | secretsmanager.AWS\$1region.amazonaws.com | 
| Amazon Security Lake | securitylake.AWS\$1region.amazonaws.com | 
| Amazon Simple Email Service (Amazon SES) | ses.AWS\$1region.amazonaws.com | 
| Amazon Simple Notification Service (Amazon SNS) | sns.AWS\$1region.amazonaws.com | 
| Amazon Simple Queue Service (Amazon SQS) | sqs.AWS\$1region.amazonaws.com | 
| Amazon Simple Storage Service (Amazon S3) | s3.AWS\$1region.amazonaws.com | 
| Amazon S3 Tables | s3tables.AWS\$1region.amazonaws.com | 
| AWS Snowball Edge | importexport.AWS\$1region.amazonaws.com | 
| AWS Step Functions | states.AWS\$1region.amazonaws.com | 
| AWS Storage Gateway | storagegateway.AWS\$1region.amazonaws.com | 
| AWS Systems Manager Incident Manager | ssm-incidents.AWS\$1region.amazonaws.com | 
| AWS Systems Manager Incident Manager Kontakte | ssm-contacts.AWS\$1region.amazonaws.com | 
| Amazon Timestream | timestream.AWS\$1region.amazonaws.com | 
| Amazon Translate | translate.AWS\$1region.amazonaws.com | 
| AWS Verified Access | verified-access.AWS\$1region.amazonaws.com | 
| Amazon WorkMail | workmail.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces | workspaces.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces Thin Client | thinclient.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces Web | workspaces-web.AWS\$1region.amazonaws.com | 
| AWS X-Ray | xray.AWS\$1region.amazonaws.com | 

## km: WrappingAlgorithm
<a name="conditions-kms-wrapping-algorithm"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:WrappingAlgorithm`  |  Zeichenfolge  | Einzelwertig |  `GetParametersForImport`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Dieser Bedingungsschlüssel steuert den Zugriff auf die [GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html)Operation auf der Grundlage des Werts des [WrappingAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html#KMS-GetParametersForImport-request-WrappingAlgorithm)Parameters in der Anforderung. Sie können diese Bedingung verwenden, damit die Prinzipale während des Importvorgangs einen bestimmten Algorithmus zur Verschlüsselung von Schlüsselmaterial verwenden müssen. Anforderungen für den erforderlichen öffentlichen Schlüssel und Import-Token schlagen fehl, wenn sie einen anderen Wrapping-Algorithmus angeben.

Die folgende Beispiel-Richtlinienanweisung verwendet den Bedingungsschlüssel `kms:WrappingAlgorithm`, um dem Beispielbenutzer die Berechtigung zum Aufrufen der Produktion `GetParametersForImport` zu geben, wobei jedoch die Verwendung des Verpackungsalgorithmus `RSAES_OAEP_SHA_1` verhindert wird. Wenn der `WrappingAlgorithm` in der `GetParametersForImport`-Anforderung `RSAES_OAEP_SHA_1` lautet, schlägt die Produktion fehl.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:GetParametersForImport",
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:WrappingAlgorithm": "RSAES_OAEP_SHA_1"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: ExpirationModel](#conditions-kms-expiration-model)
+ [km: ValidTo](#conditions-kms-valid-to)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km: WrappingKeySpec
<a name="conditions-kms-wrapping-key-spec"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:WrappingKeySpec`  |  Zeichenfolge  | Einzelwertig |  `GetParametersForImport`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Dieser Bedingungsschlüssel steuert den Zugriff auf die [GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html)Operation auf der Grundlage des Werts des [WrappingKeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html#KMS-GetParametersForImport-request-WrappingKeySpec)Parameters in der Anforderung. Sie können diese Bedingung verwenden, um von den Prinzipalen zu verlangen, dass sie während des Importvorgangs einen bestimmten Typ eines öffentlichen Schlüssels verwenden. Wenn die Anforderung einen anderen Schlüsseltyp angibt, schlägt sie fehl.

Da der einzige gültige Wert für den `WrappingKeySpec`-Parameter `RSA_2048` lautet, werden die Benutzer durch Verweigern dieses Werts effektiv an der Nutzung der `GetParametersForImport`-Produktion gehindert. 

Das folgende Richtlinienanweisungsbeispiel verwendet den `kms:WrappingAlgorithm`-Bedingungsschlüssel, um zu erfordern, dass der Wert für `WrappingKeySpec` in der Anforderung `RSA_4096` lautet.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:GetParametersForImport",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:WrappingKeySpec": "RSA_4096"
    }
  }
}
```

**Informationen finden Sie auch unter:**
+ [km: ExpirationModel](#conditions-kms-expiration-model)
+ [km: ValidTo](#conditions-kms-valid-to)
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)