

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.

# KMS-Schlüsselzugriff und -berechtigungen
<a name="control-access"></a>

Für die Verwendung AWS KMS benötigen Sie Anmeldeinformationen, mit denen Sie Ihre Anfragen authentifizieren AWS können. Die Anmeldeinformationen müssen Berechtigungen für den Zugriff auf AWS Ressourcen AWS KMS keys und [Aliase](kms-alias.md) enthalten. Kein AWS Prinzipal hat Berechtigungen für einen KMS-Schlüssel, es sei denn, diese Berechtigung wird ausdrücklich erteilt und niemals verweigert. Es gibt keine implizite oder automatische Berechtigung zur Verwendung oder Verwaltung eines KMS-Schlüssels. 

Um den Zugriff auf Ihre KMS-Schlüssel zu steuern, können Sie die folgenden Richtlinienmechanismen verwenden.
+ [Schlüsselrichtlinie](key-policies.md) – Jeder KMS-Schlüssel besitzt eine Schlüsselrichtlinie. Schlüsselrichtlinien sind der primäre Mechanismus zur Steuerung des Zugriffs auf KMS-Schlüssel. Sie können einzig die Schlüsselrichtlinie zum Steuern des Zugriffs verwenden, was bedeutet, dass der vollständige Umfang des Zugriffs auf den KMS-Schlüssel in einem einzigen Dokument definiert wird (der Schlüsselrichtlinie). Weitere Informationen zur Verwendung von Schlüsselrichtlinien finden Sie unter [Schlüsselrichtlinien](key-policies.md).
+ [Verwendung von IAM-Richtlinien in Kombination mit der Schlüsselrichtlinie](iam-policies.md) – Sie können IAM-Richtlinien in Kombination mit der Schlüsselrichtlinie verwenden, um den Zugriff auf einen KMS-Schlüssel zu steuern. Diese Art der Zugriffssteuerung ermöglicht Ihnen die Verwaltung aller Berechtigungen für Ihre IAM-Identitäten in IAM. Um mit einer IAM-Richtlinie den Zugriff auf einen KMS-Schlüssel zu ermöglichen, muss die Schlüsselrichtlinie dies explizit erlauben. Weitere Informationen zur Verwendung von IAM-Richtlinien finden Sie unter [IAM-Richtlinien](iam-policies.md). 
+ [Erteilungen](grants.md) – Sie können Erteilungen in Kombination mit der Schlüsselrichtlinie und IAM-Richtlinien verwenden, um den Zugriff auf einen KMS-Schlüssel zu ermöglichen. Diese Art der Zugriffssteuerung ermöglicht es Ihnen, Zugriff auf den KMS-Schlüssel in der Schlüsselrichtlinie zu gewähren und Identitäten die Berechtigung zur Delegierung ihres Zugriffs zu erteilen. Weitere Informationen zur Verwendung von Zugriffserteilungen finden Sie unter [Zuschüsse in AWS KMS](grants.md).

## KMS-Schlüsselrichtlinien
<a name="intro-key-policy"></a>

Der Zugriff auf Ihre AWS KMS Ressourcen lässt sich in erster Linie mithilfe von *Richtlinien* verwalten. Richtlinien sind Dokumente, in denen beschrieben wird, welche Prinzipale auf welche Ressourcen zugreifen können. *Richtlinien, die mit einer IAM-Identität verknüpft sind, werden als *identitätsbasierte Richtlinien* (oder *IAM-Richtlinien) bezeichnet, und Richtlinien*, die mit anderen Arten von Ressourcen verknüpft sind, werden als Ressourcenrichtlinien bezeichnet.* AWS KMS *Ressourcenrichtlinien für KMS-Schlüssel werden als Schlüsselrichtlinien bezeichnet.*

Alle KMS-Schlüssel verfügen über eine Schlüsselrichtlinie. Wenn Sie keine angeben, AWS KMS wird eine für Sie erstellt. Die [verwendete Standardschlüsselrichtlinie](key-policy-default.md) unterscheidet sich je nachdem, ob Sie den Schlüssel in der AWS KMS Konsole erstellen oder die AWS KMS API verwenden. AWS KMS Wir empfehlen Ihnen, die Standard-Schlüsselrichtlinie so zu bearbeiten, dass sie den Anforderungen Ihrer Organisation für Berechtigungen mit den [geringsten Rechten entspricht.](least-privilege.md) 

Sie können nur die Schlüsselrichtlinie verwenden, um den Zugriff zu steuern, wenn sich der Schlüssel und der IAM-Prinzipal in demselben AWS Konto befinden. Das bedeutet, dass der gesamte Zugriffsumfang auf den KMS-Schlüssel in einem einzigen Dokument (der Schlüsselrichtlinie) definiert ist. Wenn jedoch ein Anrufer in einem Konto auf einen Schlüssel in einem anderen Konto zugreifen muss, können Sie die Schlüsselrichtlinie nicht allein verwenden, um den Zugriff zu gewähren. Im kontoübergreifenden Szenario muss dem Benutzer oder der Rolle des Anrufers eine IAM-Richtlinie zugewiesen werden, die es dem Anrufer ausdrücklich ermöglicht, den API-Aufruf durchzuführen.

Sie können IAM-Richtlinien auch in Kombination mit wichtigen Richtlinien und Zuschüssen verwenden, um den Zugriff auf einen KMS-Schlüssel zu kontrollieren. Um eine IAM-Richtlinie zur Steuerung des Zugriffs auf einen KMS-Schlüssel zu verwenden, muss die Schlüsselrichtlinie dem Konto die Erlaubnis zur Verwendung von IAM-Richtlinien erteilen. Sie können entweder eine [wichtige Richtlinienerklärung angeben, die IAM-Richtlinien aktiviert](key-policy-default.md#key-policy-default-allow-root-enable-iam), oder Sie können in der Schlüsselrichtlinie explizit [zulässige Prinzipale angeben](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying).

Achten Sie beim Schreiben von Richtlinien darauf, dass Sie über strenge Kontrollen verfügen, die einschränken, wer die folgenden Aktionen ausführen kann:
+ Aktualisieren, erstellen und löschen Sie IAM- und KMS-Schlüsselrichtlinien
+ Hängen Sie IAM-Richtlinien an Benutzer, Rollen und Gruppen an und trennen Sie sie
+ Hängen Sie KMS-Schlüsselrichtlinien an Ihre KMS-Schlüssel an und trennen Sie sie

## KMS-Schlüsselzuschüsse
<a name="intro-kms-grants"></a>

 AWS KMS Unterstützt neben IAM und wichtigen Richtlinien auch [Zuschüsse](grants.md). Zuschüsse bieten eine flexible und leistungsstarke Möglichkeit, Berechtigungen zu delegieren. Mithilfe von Zuschüssen können Sie zeitgebundenen KMS-Schlüsselzugriff auf IAM-Prinzipale in Ihrem AWS Konto oder in anderen Konten gewähren. AWS Wir empfehlen, zeitgebundenen Zugriff zu gewähren, wenn Sie die Namen der Principals zum Zeitpunkt der Erstellung der Richtlinien nicht kennen oder wenn sich die Principals, für die Zugriff erforderlich ist, häufig ändern. Der [Prinzipal des Empfängers](grants.md#terms-grantee-principal) kann sich in demselben Konto wie der KMS-Schlüssel oder in einem anderen Konto befinden. Wenn sich der Prinzipal und der KMS-Schlüssel in unterschiedlichen Konten befinden, müssen Sie zusätzlich zum Zuschuss eine IAM-Richtlinie angeben. Zuschüsse erfordern zusätzliche Verwaltung, da Sie eine API aufrufen müssen, um den Zuschuss zu erstellen und den Zuschuss zurückzuziehen oder zu widerrufen, wenn er nicht mehr benötigt wird. 

# Wichtige Richtlinien in AWS KMS
<a name="key-policies"></a>

Eine Schlüsselrichtlinie ist eine Ressourcenrichtlinie für eine. AWS KMS key Schlüsselrichtlinien sind die primäre Methode zur Zugriffssteuerung für KMS-Schlüssel. Jeder KMS-Schlüssel muss genau eine Schlüsselrichtlinie haben. Die Anweisungen im Schlüsselrichtliniendokument legen fest, wer über eine Berechtigung zur Verwendung des KMS-Schlüssels verfügt, und wie diese Verwendung erfolgen kann. Sie können den Zugriff auf den KMS-Schlüssel auch mithilfe von [IAM-Richtlinien](iam-policies.md) und [Erteilungen](grants.md) steuern, jeder KMS-Schlüssel muss aber über ein Schlüsselrichtliniendokument verfügen. 

Kein AWS Hauptbenutzer, auch nicht der Root-Benutzer oder der Schlüsselersteller, hat Rechte für einen KMS-Schlüssel, es sei denn, sie sind in einer Schlüsselrichtlinie, IAM-Richtlinie oder Grant ausdrücklich erlaubt und niemals verweigert. 

Wenn die Schlüsselrichtlinie es nicht ausdrücklich erlaubt, können Sie keine IAM-Richtlinien verwenden, um den Zugriff auf einen KMS-Schlüssel zu *erlauben*. Ohne Berechtigung der Schlüsselrichtlinie haben IAM-Richtlinien, die Berechtigungen erlauben, keine Auswirkungen. (Sie können eine IAM-Richtlinie verwenden, um eine Berechtigung für einen KMS-Schlüssel ohne Berechtigung einer Schlüsselrichtlinie zu *verweigern*.) Die Standardschlüsselrichtlinie aktiviert IAM-Richtlinien. Um IAM-Richtlinien in Ihrer Schlüsselrichtlinie zu aktivieren, fügen Sie die unter [Ermöglicht den Zugriff auf die AWS-Konto und aktiviert die IAM-Richtlinien](key-policy-default.md#key-policy-default-allow-root-enable-iam) beschriebene Richtlinienanweisung hinzu .

Im Gegensatz zu IAM-Richtlinien, die global sind, sind Schlüsselrichtlinien regional. Eine wichtige Richtlinie steuert den Zugriff nur auf einen KMS-Schlüssel in derselben Region. Es hat keine Auswirkungen auf KMS-Schlüssel in anderen Regionen.

**Topics**
+ [

# Erstellen einer Schlüsselrichtlinie
](key-policy-overview.md)
+ [

# Standardschlüsselrichtlinie
](key-policy-default.md)
+ [

# Wichtige Richtlinien anzeigen
](key-policy-viewing.md)
+ [

# Schlüsselrichtlinie ändern
](key-policy-modifying.md)
+ [Berechtigungen für AWS Dienste](key-policy-services.md)

# Erstellen einer Schlüsselrichtlinie
<a name="key-policy-overview"></a>

Sie können wichtige Richtlinien in der AWS KMS Konsole oder mithilfe von AWS KMS API-Operationen wie [CreateKey[ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html), und und erstellen und [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)verwalten. 

Wenn Sie einen KMS-Schlüssel in der AWS KMS Konsole erstellen, führt Sie die Konsole Schritt für Schritt durch die Erstellung einer Schlüsselrichtlinie, die auf der [Standardschlüsselrichtlinie für die Konsole](key-policy-default.md) basiert. Wenn Sie `CreateKey` oder verwenden `ReplicateKey` APIs, wenn Sie keine Schlüsselrichtlinie angeben, APIs wenden diese die [Standardschlüsselrichtlinie für programmgesteuert erstellte Schlüssel](key-policy-default.md) an. Wenn Sie die `PutKeyPolicy`-API verwenden müssen Sie eine Schlüsselrichtlinie angeben.

Jedes Richtliniendokument kann eine oder mehrere Richtlinienanweisungen enthalten. Das folgende Beispiel zeigt ein gültiges Schlüsselrichtliniendokument mit einer Richtlinienanweisung.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DescribePolicyStatement",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:user/Alice"
      },
      "Action": "kms:DescribeKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:KeySpec": "SYMMETRIC_DEFAULT"
        }
      }
    }
  ]
}
```

------

**Topics**
+ [

## Schlüsselrichtlinienformat
](#key-policy-format)
+ [

## Elemente in einer Schlüsselrichtlinie
](#key-policy-elements)
+ [

## Beispiel für eine Schlüsselrichtlinie
](#key-policy-example)

## Schlüsselrichtlinienformat
<a name="key-policy-format"></a>

Ein Schlüsselrichtliniendokument muss den folgenden Regeln entsprechen:
+ Bis zu 32 Kilobytes (32 768 Bytes)
+ Das `Sid`-Element in einer Schlüsselrichtlinienanweisung kann Leerzeichen enthalten. (Leerzeichen sind im `Sid`-Element eines IAM-Richtliniendokuments untersagt.)

Ein Schlüsselrichtliniendokument darf nur die folgenden Zeichen enthalten:
+ Druckbare ASCII-Zeichen
+ Die druckbaren Zeichen im zusätzlichen Zeichensatz Basic Latin und Latin-1 Supplement
+ Die Sonderzeichen Tabulator (`\u0009`), Zeilenvorschub (`\u000A`) und Wagenrücklauf (`\u000D`)

## Elemente in einer Schlüsselrichtlinie
<a name="key-policy-elements"></a>

Ein Schlüsselrichtliniendokument muss die folgenden Elemente besitzen:

**Version**  
Gibt die Schlüsselrichtliniendokumentversion an. Wir empfehlen, die Version auf `2012-10-17` (neueste Version) einzustellen.

**Statement**  
Fügt die Richtlinienanweisungen bei. Ein Schlüsselrichtliniendokument muss mindestens eine Anweisung enthalten.  
Jede Schlüsselrichtlinienanweisung kann aus bis zu sechs Elementen bestehen. Die Elemente `Effect`, `Principal`, `Action`, und `Resource` sind erforderlich.    
**Sid **  
(Optional) Der Anweisungsbezeichner (`Sid`) ist eine beliebigen Zeichenfolge, die Sie zur Beschreibung der Anweisung verwenden können. Der `Sid` in einer Schlüsselrichtlinie kann Leerzeichen enthalten. (Sie können keine Leerzeichen in ein `Sid`-Element einer IAM-Richtlinie aufnehmen.)  
**Auswirkung**  
(Erforderlich) Gibt an, ob die Berechtigungen in der Richtlinienanweisung zugelassen oder verweigert werden. Gültige Werte sind `Allow` oder `Deny`. Wenn Sie den Zugriff auf einen KMS-Schlüssel nicht explizit erlauben, wird er implizit verweigert. Sie können den Zugriff auf einen KMS-Schlüssel auch explizit verweigern. So können Sie zum Beispiel sicherstellen, dass Benutzer nicht darauf zugreifen können, auch wenn der Zugriff durch eine andere Richtlinie gestattet wird.  
**Auftraggeber**  
(Erforderlich) Der [Prinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying) ist die Identität, die die in der Richtlinienanweisung angegebenen Berechtigungen erhält. Sie können IAM-Benutzer AWS-Konten, IAM-Rollen und einige AWS Dienste als Prinzipale in einer Schlüsselrichtlinie angeben. IAM-[Benutzergruppen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) sind kein gültiger Prinzipal in irgendeinem Richtlinientyp.  
Ein Sternchenwert, z. B. `"AWS": "*"`, steht für alle AWS -Identitäten in allen Konten.  
Setzen Sie den Prinzipal nicht auf ein Sternchen (\$1) in einer Schlüsselrichtlinienanweisung, die Berechtigungen erlaubt, es sei denn, Sie verwenden [Bedingungen](policy-conditions.md), um die Schlüsselrichtlinie einzuschränken. Ein Sternchen gibt jede Identität in jeder AWS-Konto Berechtigung zur Verwendung des KMS-Schlüssels an, sofern dies nicht in einer anderen Richtlinienanweisung ausdrücklich verweigert wird. Benutzer in anderen Ländern AWS-Konten können Ihren KMS-Schlüssel immer dann verwenden, wenn sie über entsprechende Berechtigungen in ihrem eigenen Konto verfügen.
Bewährte IAM-Methoden raten von der Verwendung von IAM-Benutzern mit langfristigen Anmeldeinformationen ab. Verwenden Sie nach Möglichkeit IAM-Rollen, die temporäre Anmeldeinformationen bereitstellen. Weitere Informationen finden Sie unter [Bewährte Methoden für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.
Wenn der Prinzipal in einer wichtigen Richtlinienanweisung ein [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) ist, das als `arn:aws:iam::111122223333:root"` ausgedrückt wird, erteilt die Richtlinienanweisung keinem IAM-Prinzipal die Berechtigung. Stattdessen erteilt es die AWS-Konto Erlaubnis, IAM-Richtlinien zu verwenden, um die in der Schlüsselrichtlinie angegebenen Berechtigungen zu delegieren. (Ein Prinzipal im `arn:aws:iam::111122223333:root"`-Format repräsentiert *nicht* die [AWS -Stammbenutzer des Kontos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html), trotz der Verwendung von „root“ in der Kontokennung. Der Kontoprinzipal repräsentiert jedoch das Konto und seine Administratoren, einschließlich des Account-Root-Benutzers.)  
Handelt es sich bei dem Prinzipal um einen anderen Prinzipal AWS-Konto oder dessen Prinzipale, sind die Berechtigungen nur wirksam, wenn das Konto in der Region mit dem KMS-Schlüssel und der Schlüsselrichtlinie aktiviert ist. Informationen zu Regionen, die standardmäßig nicht aktiviert sind („Opt-In-Regionen“), finden Sie unter [Verwalten von AWS-Regionen](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) in *Allgemeine AWS-Referenz*.  
Um einem anderen AWS-Konto oder seinen Prinzipalen die Verwendung eines KMS-Schlüssels zu ermöglichen, müssen Sie in einer Schlüsselrichtlinie und in einer IAM-Richtlinie im anderen Konto die entsprechenden Berechtigungen erteilen. Details hierzu finden Sie unter [Benutzern in anderen Konten die Verwendung des KMS-Schlüssels erlauben](key-policy-modifying-external-accounts.md).  
**Action**  
(Erforderlich) Geben Sie die zugelassenen oder verweigerten API-Operationen an. Die `kms:Encrypt` Aktion entspricht beispielsweise dem Vorgang AWS KMS [Verschlüsseln](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html). Sie können mehr als eine Aktion in einer Richtlinienanweisung auflisten. Weitere Informationen finden Sie unter [Berechtigungsreferenz](kms-api-permissions-reference.md).  
Wenn das erforderliche `Action`-Element in einer Schlüsselrichtlinienanweisung fehlt, hat die Richtlinienanweisung keine Wirkung. Eine wichtige Richtlinienanweisung ohne ein `Action` Element gilt für keinen KMS-Schlüssel.   
Wenn das `Action` Element einer wichtigen Richtlinienanweisung fehlt, meldet die AWS KMS Konsole korrekt einen Fehler, aber die [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)und [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) APIs sind erfolgreich, obwohl die Richtlinienanweisung unwirksam ist.  
**Ressource**  
(Erforderlich) In einer Schlüsselrichtlinie ist der Wert des Ressourcen-Elements `"*"`, was "dieser KMS-Schlüssel" bedeutet. Das Sternchen (`"*"`) identifiziert den KMS-Schlüssel, an den die Schlüsselrichtlinie angefügt ist.  
Wenn das erforderliche `Resource`-Element in einer Schlüsselrichtlinienanweisung fehlt, hat die Richtlinienanweisung keine Wirkung. Eine Schlüsselrichtlinie ohne `Resource`-Element gilt für keinen KMS-Schlüssel.   
Wenn das `Resource` Element einer wichtigen Grundsatzerklärung fehlt, meldet die AWS KMS Konsole zwar korrekt einen Fehler, aber der [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)Fehler ist [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) APIs erfolgreich, obwohl die Grundsatzerklärung unwirksam ist.  
**Bedingung**  
(Optional) Bedingungen geben an, welche Anforderungen erfüllt werden müssen, damit eine Schlüsselrichtlinie wirksam wird. AWS Kann anhand von Bedingungen den Kontext einer API-Anfrage auswerten, um festzustellen, ob die Richtlinienerklärung zutrifft oder nicht.   
Um Bedingungen anzugeben, verwenden Sie vordefinierte *Bedingungsschlüssel*. AWS KMS unterstützt [AWS globale Bedingungsschlüssel](conditions-aws.md) und [AWS KMS Bedingungsschlüssel](conditions-kms.md). Zur Unterstützung der attributebasierten Zugriffskontrolle (ABAC) AWS KMS stellt es Bedingungsschlüssel bereit, die den Zugriff auf einen KMS-Schlüssel auf der Grundlage von Tags und Aliasen steuern. Details hierzu finden Sie unter [ABAC für AWS KMS](abac.md).  
Das Format für eine Bedingung lautet:  

```
"Condition": {"condition operator": {"condition key": "condition value"}}
```
wie beispielsweise:  

```
"Condition": {"StringEquals": {"kms:CallerAccount": "111122223333"}}
```

*Weitere Informationen zur AWS Richtliniensyntax finden Sie unter [AWS IAM-Richtlinienreferenz im IAM-Benutzerhandbuch.](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)*

## Beispiel für eine Schlüsselrichtlinie
<a name="key-policy-example"></a>

Das folgende Beispiel zeigt eine vollständige Schlüsselrichtlinie für einen KMS-Schlüssel mit symmetrischer Verschlüsselung. Sie können es als Nachschlagewerk verwenden, wenn Sie sich mit den wichtigsten Konzepten in diesem Kapitel befassen. Diese Schlüsselrichtlinie vereint die Beispiel-Richtlinienanweisungen des vorherigen Abschnitts [Standardschlüsselrichtlinie](key-policy-default.md) in einer einzigen Schlüsselrichtlinie, wodurch Folgendes erreicht wird:
+ Ermöglicht im Beispiel AWS-Konto 111122223333 vollen Zugriff auf den KMS-Schlüssel. Damit können das Konto und seine Administratoren, einschließlich des Root-Benutzers des Kontos (in Notfällen), IAM-Richtlinien verwenden, um den Zugriff auf den KMS-Schlüssel zu gestatten.
+ Erlaubt der `ExampleAdminRole`-IAM-Rolle den KMS-Schlüssel zu verwalten.
+ Erlaubt der `ExampleUserRole`-IAM-Rolle, den KMS-Schlüssel zu verwenden.

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

****  

```
{
    "Id": "key-consolepolicy",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableIAMUserPermissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "AllowKeyAdministratorsAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ExampleAdminRole"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion",
                "kms:RotateKeyOnDemand"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowKeyUse",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowAttachmentPersistentResources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole"
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        }
    ]
}
```

------

# Standardschlüsselrichtlinie
<a name="key-policy-default"></a>

Beim Erstellen eines KMS-Schlüssels können Sie die Schlüsselrichtlinie für den neuen KMS-Schlüssel angeben. Wenn Sie keinen angeben, AWS KMS erstellt er einen für Sie. Die verwendete Standardschlüsselrichtlinie unterscheidet sich je nachdem, ob Sie den Schlüssel in der AWS KMS Konsole erstellen oder die AWS KMS API verwenden. AWS KMS 

**Die Standard-Schlüsselrichtlinie beim programmgesteuerten Erstellen eines KMS-Schlüssels**  
Wenn Sie einen KMS-Schlüssel programmgesteuert mit der [AWS KMS API](https://docs.aws.amazon.com/kms/latest/APIReference/) erstellen (auch mithilfe von [AWS SDKs](https://aws.amazon.com/tools/#sdk), [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/)oder [AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/)) und Sie keine Schlüsselrichtlinie angeben, wird eine sehr einfache Standardschlüsselrichtlinie AWS KMS angewendet. Diese Standardschlüsselrichtlinie enthält eine Richtlinienanweisung, die demjenigen, der den KMS-Schlüssel besitzt AWS-Konto , die Erlaubnis erteilt, IAM-Richtlinien zu verwenden, um Zugriff auf alle AWS KMS Operationen mit dem KMS-Schlüssel zu gewähren. Weitere Informationen zu dieser Richtlinienanweisung finden Sie unter [Ermöglicht den Zugriff auf die AWS-Konto und aktiviert die IAM-Richtlinien](#key-policy-default-allow-root-enable-iam).

**Standardschlüsselrichtlinie beim Erstellen eines KMS-Schlüssels mit dem AWS-Managementkonsole**  
Wenn Sie [einen KMS-Schlüssel mit dem erstellen AWS-Managementkonsole](create-keys.md), beginnt die Schlüsselrichtlinie mit der Richtlinienanweisung, die den [Zugriff auf die IAM-Richtlinien ermöglicht AWS-Konto und](#key-policy-default-allow-root-enable-iam) diese aktiviert. Die Konsole fügt dann eine [wichtige Administratoranweisung](#key-policy-default-allow-administrators), eine [Schlüsselbenutzeranweisung](#key-policy-default-allow-users) und (bei den meisten Schlüsseltypen) eine Anweisung hinzu, die es Prinzipalen ermöglicht, den KMS-Schlüssel mit [anderen AWS](#key-policy-service-integration) Diensten zu verwenden. Sie können die Funktionen der AWS KMS Konsole verwenden, um die IAM-Benutzer und die IAM-Rollen anzugeben und anzugeben, AWS-Konten wer Schlüsseladministratoren und welche Hauptbenutzer sind (oder beides).

**Berechtigungen**
+ [Ermöglicht den Zugriff auf die AWS-Konto und aktiviert die IAM-Richtlinien](#key-policy-default-allow-root-enable-iam)
+ [Erlaubt Schlüsseladministratoren die Verwaltung des KMS-Schlüssels](#key-policy-default-allow-administrators)
+ [Erlaubt Schlüsselbenutzern die Verwendung des KMS-Schlüssels](#key-policy-default-allow-users)
  + [Erlaubt Schlüsselbenutzern die Verwendung eines KMS-Schlüssels für kryptografische Operationen](#key-policy-users-crypto)
  + [Ermöglicht Schlüsselbenutzern, den KMS-Schlüssel mit AWS Diensten zu verwenden](#key-policy-service-integration)

## Ermöglicht den Zugriff auf die AWS-Konto und aktiviert die IAM-Richtlinien
<a name="key-policy-default-allow-root-enable-iam"></a>

Die folgende standardmäßige Schlüsselrichtlinienanweisung ist kritisch. 
+ Dadurch erhält derjenige AWS-Konto , der den KMS-Schlüssel besitzt, vollen Zugriff auf den KMS-Schlüssel. 

  Im Gegensatz zu anderen AWS Ressourcenrichtlinien erteilt eine AWS KMS Schlüsselrichtlinie nicht automatisch Berechtigungen für das Konto oder eine seiner Identitäten. Um Kontoadministratoren die Berechtigung zu erteilen, muss die Schlüsselrichtlinie eine explizite Erklärung enthalten, die diese Berechtigung wie diese bereitstellt.
+ Zusätzlich zur Schlüsselrichtlinie kann das Konto IAM-Richtlinien verwenden, um den Zugriff auf den KMS-Schlüssel zu gestatten.

  Ohne diese Berechtigung sind IAM-Richtlinien, die den Zugriff auf den Schlüssel ermöglichen, wirkungslos, obwohl IAM-Richtlinien, die den Zugriff auf den Schlüssel verweigern, weiterhin wirksam sind. 
+ Es reduziert das Risiko, dass der Schlüssel unüberschaubar wird, indem es den Kontoadministratoren, einschließlich dem Account-Root-Benutzer, die nicht gelöscht werden kann, die Zugriffsberechtigung erteilt. 

Die folgende wichtige Richtlinienanweisung ist die gesamte Standardschlüsselrichtlinie für KMS-Schlüssel, die programmgesteuert erstellt wurden. Dies ist die erste Richtlinienanweisung in der Standard-Schlüsselrichtlinie für KMS-Schlüssel, die in der AWS KMS Konsole erstellt wurde.

```
{
  "Sid": "Enable IAM User Permissions",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:root"
   },
  "Action": "kms:*",
  "Resource": "*"
}
```

**Erlaubt es IAM-Richtlinien, den Zugriff auf den KMS-Schlüssel zu steuern.**  <a name="allow-iam-policies"></a>
Die oben abgebildete Grundsatzerklärung gibt AWS-Konto demjenigen, der den Schlüssel besitzt, die Erlaubnis, IAM-Richtlinien sowie wichtige Richtlinien zu verwenden, um alle Aktionen (`kms:*`) für den KMS-Schlüssel zuzulassen.   
Der Grundsatz in dieser wichtigen Richtlinienanweisung ist der [Kontoprinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts), der durch einen ARN in diesem Format repräsentiert wird: `arn:aws:iam::account-id:root`. Der Hauptbenutzer repräsentiert das AWS Konto und seine Administratoren.   
Wenn der Prinzipal in einer Schlüsselrichtlinienausweisung der Kontoprinzipal ist, erteilt die Richtlinienerklärung keinen IAM-Identitäten die Berechtigung, den KMS-Schlüssel zu verwenden. Stattdessen erlaubt es dem Konto, IAM-Richtlinien zu verwenden, um die in der Richtlinienanweisung angegebenen Berechtigungen zu *delegieren*. Diese standardmäßige Schlüsselrichtlinienausweisung ermöglicht es dem Konto, IAM-Richtlinien zu verwenden, um Berechtigungen für alle Aktionen zu delegieren (`kms:*`) auf dem KMS-Schlüssel.

** verringert das Risiko, dass der KMS-Schlüssel nicht mehr verwaltet werden kann.**  
Im Gegensatz zu anderen AWS Ressourcenrichtlinien erteilt eine AWS KMS Schlüsselrichtlinie dem Konto oder einem seiner Hauptbenutzer nicht automatisch Berechtigungen. Um jedem Auftraggeber die Berechtigung zu erteilen, einschließlich der[-Kontoauftraggeber](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) verwenden, müssen Sie eine Schlüsselrichtlinienanweisung verwenden, die die Berechtigung explizit bereitstellt. Sie müssen dem Kontoprinzipal oder einem Prinzipal keinen Zugriff auf den KMS-Schlüssel gewähren. Wenn Sie jedoch Zugriff auf den Kontoprinzipal gewähren, können Sie verhindern, dass der Schlüssel nicht überschaubar wird.  
Angenommen, Sie erstellen eine Schlüsselrichtlinie, die nur einem Benutzer Zugriff auf den KMS-Schlüssel gewährt. Wenn Sie diesen Benutzer dann löschen, wird der Schlüssel unüberschaubar und Sie müssen den [AWS -Support kontaktieren](https://console.aws.amazon.com/support/home#/case/create), um wieder Zugriff auf den KMS-Schlüssel zu erhalten.   
Die oben abgebildete Grundsatzerklärung erteilt dem [Kontoinhaber die](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) Erlaubnis, den Schlüssel zu kontrollieren. Der Kontoprinzipal repräsentiert den AWS-Konto und seine Administratoren, einschließlich des [Kontostammbenutzers](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html). Der Account-Root-Benutzer ist der einzige Prinzipal, der nur gelöscht werden kann, wenn Sie den AWS-Konto löschen. Die Best Practices von IAM raten davon ab, im Namen des Account-Root-Benutzers zu handeln, außer im Notfall. Möglicherweise müssen Sie jedoch als Account-Root-Benutzer fungieren, wenn Sie alle anderen Benutzer und Rollen mit Zugriff auf den KMS-Schlüssel löschen. 

## Erlaubt Schlüsseladministratoren die Verwaltung des KMS-Schlüssels
<a name="key-policy-default-allow-administrators"></a>

Die von der Konsole erstellte Standard-Schlüsselrichtlinie erlaubt es Ihnen, IAM-Benutzer und -Rollen im Konto auszuwählen und diese zu *Schlüsseladministratoren* zu machen. Diese Anweisung wird *Schlüsseladministratoren-Anweisung* genannt. Schlüsseladministratoren sind dazu berechtigt, den KMS-Schlüssel zu verwalten, sie verfügen jedoch nicht über die Berechtigungen, den KMS-Schlüssel in [kryptografischen Operationen](kms-cryptography.md#cryptographic-operations) zu verwenden. Sie können IAM-Benutzer und -Rollen zu der Liste der Schlüsseladministratoren hinzufügen, wenn Sie den KMS-Schlüssel in der Standard- oder Richtlinienansicht erstellen. 

**Warnung**  
Da Schlüsseladministratoren berechtigt sind, die Schlüsselrichtlinie zu ändern und Zuschüsse zu erstellen, können sie sich selbst und anderen AWS KMS Berechtigungen gewähren, die in dieser Richtlinie nicht angegeben sind.  
Prinzipale, die über die Berechtigung zum Verwalten von Tags und Aliasen verfügen, können auch den Zugriff auf einen KMS-Schlüssel steuern. Details hierzu finden Sie unter [ABAC für AWS KMS](abac.md).

**Anmerkung**  
Bewährte IAM-Methoden raten von der Verwendung von IAM-Benutzern mit langfristigen Anmeldeinformationen ab. Verwenden Sie nach Möglichkeit IAM-Rollen, die temporäre Anmeldeinformationen bereitstellen. Weitere Informationen finden Sie unter [Bewährte Methoden für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.

Das folgende Beispiel zeigt die Schlüsseladministratoren-Anweisung in der Standardansicht der AWS KMS -Konsole.

![\[Schlüsseladministratoren in der Standardschlüsselrichtlinien-Standardansicht der Konsole\]](http://docs.aws.amazon.com/de_de/kms/latest/developerguide/images/console-key-policy-administrators-60.png)


Nachfolgend sehen Sie ein Beispiel für eine Schlüsseladministratoren-Anweisung in der Richtlinienansicht der AWS KMS -Konsole. Diese Aussage von Schlüsseladministratoren bezieht sich auf einen KMS-Schlüssel mit symmetrischer Verschlüsselung für eine einzelne Region.

**Anmerkung**  
Die AWS KMS Konsole fügt der Schlüsselrichtlinie unter der Anweisungs-ID Schlüsseladministratoren hinzu. `"Allow access for Key Administrators"` Eine Änderung dieser Anweisungs-ID kann sich darauf auswirken, wie die Konsole Aktualisierungen anzeigt, die Sie an der Anweisung vornehmen.

```
{
  "Sid": "Allow access for Key Administrators",
  "Effect": "Allow",
  "Principal": {"AWS":"arn:aws:iam::111122223333:role/ExampleAdminRole"},
  "Action": [
    "kms:Create*",
    "kms:Describe*",
    "kms:Enable*",
    "kms:List*",
    "kms:Put*",
    "kms:Update*",
    "kms:Revoke*",
    "kms:Disable*",
    "kms:Get*",
    "kms:Delete*",
    "kms:TagResource",
    "kms:UntagResource",
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion",
    "kms:RotateKeyOnDemand"
  ],
  "Resource": "*"
}
```

Die standardmäßige Schlüsseladministratoren-Anweisung für den geläufigsten KMS-Schlüssel, ein KMS-Schlüssel mit symmetrischer Verschlüsselung für eine Region, erteilt die folgenden Berechtigungen. Ausführliche Informationen zu den einzelnen Berechtigungen finden Sie unter [AWS KMS Berechtigungen](kms-api-permissions-reference.md).

Wenn Sie die AWS KMS Konsole verwenden, um einen KMS-Schlüssel zu erstellen, fügt die Konsole die von Ihnen angegebenen Benutzer und Rollen dem `Principal` Element in der Anweisung für wichtige Administratoren hinzu.

Viele dieser Berechtigungen enthalten das Platzhalterzeichen (`*`), sodass alle Berechtigungen zugelassen werden, die mit dem angegebenen Verb beginnen. Wenn neue API-Operationen AWS KMS hinzugefügt werden, dürfen Schlüsseladministratoren diese daher automatisch verwenden. Sie müssen Ihre Schlüsselrichtlinien nicht aktualisieren, um die neuen Operationen einzubeziehen. Wenn Sie Ihre Schlüsseladministratoren lieber auf bestimmte API-Operationen beschränken möchten, können Sie [Ihre Schlüsselrichtlinie ändern](key-policy-modifying.md).

**`kms:Create*`**  
Erlaubt [`kms:CreateAlias`](kms-alias.md) und [`kms:CreateGrant`](grants.md). (Die `kms:CreateKey`-Berechtigung ist nur in einer IAM-Richtlinie gültig.)

**`kms:Describe*`**  
Erlaubt [`kms:DescribeKey`](viewing-keys.md). Die Berechtigung `kms:DescribeKey` ist erforderlich, um die Seite mit den Schlüsseldetails für einen KMS-Schlüssel in der AWS-Managementkonsole anzuzeigen.

**`kms:Enable*`**  
Erlaubt [`kms:EnableKey`](enabling-keys.md). Für KMS-Schlüssel mit symmetrischer Verschlüsselung erlaubt sie auch [`kms:EnableKeyRotation`](rotate-keys.md).

**`kms:List*`**  
Erlaubt [`kms:ListGrants`](grants.md), [https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeyPolicies.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeyPolicies.html) und [`kms:ListResourceTags`](tagging-keys.md). (Die Berechtigungen `kms:ListAliases` und `kms:ListKeys`, die zum Anzeigen von KMS-Schlüsseln in der AWS-Managementkonsole erforderlich sind, sind nur in IAM-Richtlinien gültig.)

**`kms:Put*`**  
Erlaubt [https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html). Diese Berechtigung erlaubt Schlüsseladministratoren, die Schlüsselrichtlinie für diesen KMS-Schlüssel zu ändern.

**`kms:Update*`**  
Erlaubt [`kms:UpdateAlias`](alias-update.md) und [https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html). Bei multiregionalen Schlüsseln erlaubt sie [`kms:UpdatePrimaryRegion`](multi-region-update.md#update-primary-console) für diesen KMS-Schlüssel.

**`kms:Revoke*`**  
Erlaubt [`kms:RevokeGrant`](grant-delete.md), wodurch Schlüsseladministratoren eine [Erteilung löschen](grant-delete.md) können, auch wenn sie kein [ausscheidender Prinzipal](grants.md#terms-retiring-principal) in der Erteilung sind. 

**`kms:Disable*`**  
Erlaubt [`kms:DisableKey`](enabling-keys.md). Für KMS-Schlüssel mit symmetrischer Verschlüsselung erlaubt sie auch [`kms:DisableKeyRotation`](rotate-keys.md).

**`kms:Get*`**  
Erlaubt [`kms:GetKeyPolicy`](key-policy-viewing.md) und [`kms:GetKeyRotationStatus`](rotate-keys.md). Für KMS-Schlüssel mit importiertem Schlüsselmaterial erlaubt sie [https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html). Für asymmetrische KMS-Schlüssel erlaubt sie [https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html). Die Berechtigung `kms:GetKeyPolicy` ist erforderlich, um die Schlüsselrichtlinie eines KMS-Schlüssels in der AWS-Managementkonsole anzuzeigen.

**`kms:Delete*`**  
Erlaubt [`kms:DeleteAlias`](kms-alias.md). Für Schlüssel mit importiertem Schlüsselmaterial erlaubt sie [`kms:DeleteImportedKeyMaterial`](importing-keys.md). Die Berechtigung `kms:Delete*` erlaubt Schlüsseladministratoren nicht das Löschen des KMS-Schlüssels (`ScheduleKeyDeletion`).

**`kms:TagResource`**  
Erlaubt [`kms:TagResource`](tagging-keys.md), sodass Schlüsseladministratoren Tags zum KMS-Schlüssel hinzufügen können. Da Tags auch verwendet werden können, um den Zugriff auf den KMS-Schlüssel zu steuern, können Administratoren mit dieser Berechtigung den Zugriff auf den KMS-Schlüssel gewähren oder verweigern. Details hierzu finden Sie unter [ABAC für AWS KMS](abac.md).

**`kms:UntagResource`**  
Erlaubt [`kms:UntagResource`](tagging-keys.md), sodass Schlüsseladministratoren Tags aus dem KMS-Schlüssel löschen können. Da Tags verwendet werden können, um den Zugriff auf den Schlüssel zu steuern, können Administratoren mit dieser Berechtigung den Zugriff auf den KMS-Schlüssel gewähren oder verweigern. Details hierzu finden Sie unter [ABAC für AWS KMS](abac.md).

**`kms:ScheduleKeyDeletion`**  
Erlaubt [https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html), sodass Schlüsseladministratoren [diesen KMS-Schlüssel löschen](deleting-keys.md) können. Um diese Berechtigung zu löschen, deaktivieren Sie die Option **Allow key administrators to delete this key** (Schlüsseladministratoren das Löschen dieses Schlüssels erlauben).

**`kms:CancelKeyDeletion`**  
Erlaubt [https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html), sodass Schlüsseladministratoren [das Löschen dieses KMS-Schlüssels abbrechen](deleting-keys.md) können. Um diese Berechtigung zu löschen, deaktivieren Sie die Option **Allow key administrators to delete this key** (Schlüsseladministratoren das Löschen dieses Schlüssels erlauben).

**`kms:RotateKeyOnDemand`**  
Ermöglicht es Schlüsseladministratoren [https://docs.aws.amazon.com/kms/latest/APIReference/API_RotateKeyOnDemand.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_RotateKeyOnDemand.html), bei [Bedarf eine Rotation des Schlüsselmaterials in diesem KMS-Schlüssel durchzuführen](rotating-keys-on-demand.md).

 

AWS KMS fügt der Standardanweisung für Schlüsseladministratoren die folgenden Berechtigungen hinzu, wenn Sie Schlüssel für spezielle Zwecke erstellen.

**`kms:ImportKeyMaterial`**  
Die Berechtigung [https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) erlaubt es Schlüsseladministratoren, Schlüsselmaterial in den KMS-Schlüssel zu importieren. Diese Berechtigung ist nur in der Schlüsselrichtlinie enthalten, wenn Sie [einen KMS-Schlüssel ohne Schlüsselmaterial erstellen](importing-keys-create-cmk.md).

**`kms:ReplicateKey`**  
Diese [https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)Berechtigung ermöglicht es Schlüsseladministratoren, [ein Replikat eines Primärschlüssels für mehrere Regionen in einer anderen Region zu erstellen](multi-region-keys-replicate.md). AWS Diese Berechtigung ist nur dann in der Schlüsselrichtlinie enthalten, wenn Sie einen multiregionalen Primär- oder Replikatschlüssel erstellen.

**`kms:UpdatePrimaryRegion`**  
Die Berechtigung [https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html) erlaubt es Schlüsseladministratoren, [einen multiregionalen Replikatschlüssel zu einem multiregionalen Primärschlüssel zu ändern](multi-region-update.md). Diese Berechtigung ist nur dann in der Schlüsselrichtlinie enthalten, wenn Sie einen multiregionalen Primär- oder Replikatschlüssel erstellen.

## Erlaubt Schlüsselbenutzern die Verwendung des KMS-Schlüssels
<a name="key-policy-default-allow-users"></a>

*Die Standardschlüsselrichtlinie, die die Konsole für KMS-Schlüssel erstellt, ermöglicht es Ihnen, IAM-Benutzer und IAM-Rollen innerhalb des Kontos sowie externe AWS-Konten Benutzer auszuwählen und sie zu Schlüsselbenutzern zu machen.* 

Die Konsole fügt der Schlüsselrichtlinie für Schlüsselbenutzer zwei Richtlinienanweisungen hinzu.
+ [Direkte Verwendung des KMS-Schlüssels](#key-policy-users-crypto) – Die erste Schlüsselrichtlinienanweisung gibt Schlüsselbenutzern die Berechtigung, den KMS-Schlüssel direkt für alle unterstützten [kryptografischen Operationen](kms-cryptography.md#cryptographic-operations) für diesen KMS-Schlüsseltyp zu verwenden.
+ [Verwenden Sie den KMS-Schlüssel mit AWS Diensten](#key-policy-service-integration) — Die zweite Richtlinienanweisung gibt Schlüsselbenutzern die Erlaubnis, AWS Diensten, die in integriert sind, die Verwendung des KMS-Schlüssels in ihrem Namen zu gestatten, um Ressourcen wie Amazon S3 S3-Buckets und Amazon DynamoDB-Tabellen zu schützen. AWS KMS 

Sie können IAM-Benutzer, IAM-Rollen und andere AWS-Konten zur Liste der Hauptbenutzer hinzufügen, wenn Sie den KMS-Schlüssel erstellen. Sie können auch die Liste der Schlüsselrichtlinien in der Standardansicht der Konsole wie in der folgenden Abbildung dargestellt bearbeiten. Die Standardansicht für Schlüsselrichtlinien finden Sie auf der Seite mit den Schlüsseldetails. Weitere Informationen darüber, wie Benutzern in anderen AWS-Konten Ländern die Verwendung des KMS-Schlüssels gestattet wird, finden Sie unter. [Benutzern in anderen Konten die Verwendung des KMS-Schlüssels erlauben](key-policy-modifying-external-accounts.md)

**Anmerkung**  
Bewährte IAM-Methoden raten von der Verwendung von IAM-Benutzern mit langfristigen Anmeldeinformationen ab. Verwenden Sie nach Möglichkeit IAM-Rollen, die temporäre Anmeldeinformationen bereitstellen. Weitere Informationen finden Sie unter [Bewährte Methoden für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.

![\[Schlüsselbenutzer in der Standardschlüsselrichtlinien-Standardansicht der Konsole\]](http://docs.aws.amazon.com/de_de/kms/latest/developerguide/images/console-key-policy-users-sm.png)


Die Standard-*Schlüsselbenutzer-Anweisung* für einen symmetrischen Schlüssel für eine Region gewährt die folgenden Berechtigungen. Ausführliche Informationen zu den einzelnen Berechtigungen finden Sie unter [AWS KMS Berechtigungen](kms-api-permissions-reference.md).

Wenn Sie die AWS KMS Konsole verwenden, um einen KMS-Schlüssel zu erstellen, fügt die Konsole die Benutzer und Rollen, die Sie angeben, dem `Principal` Element in den einzelnen Schlüsselbenutzeranweisungen hinzu.

**Anmerkung**  
Die AWS KMS Konsole fügt der Schlüsselrichtlinie unter den Anweisungskennungen `"Allow use of the key"` und `"Allow attachment of persistent resources"` Schlüsselbenutzer hinzu. Das Ändern dieser Anweisungskennungen kann sich darauf auswirken, wie die Konsole Aktualisierungen anzeigt, die Sie an der Aussage vornehmen.

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": [
    "arn:aws:iam::111122223333:role/ExampleRole",
    "arn:aws:iam::444455556666:root"
  ]},
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "*"
},
{
  "Sid": "Allow attachment of persistent resources",
  "Effect": "Allow",
  "Principal": {"AWS": [
    "arn:aws:iam::111122223333:role/ExampleRole",
    "arn:aws:iam::444455556666:root"
  ]},
  "Action": [
    "kms:CreateGrant",
    "kms:ListGrants",
    "kms:RevokeGrant"
  ],
  "Resource": "*",
  "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
}
```

## Erlaubt Schlüsselbenutzern die Verwendung eines KMS-Schlüssels für kryptografische Operationen
<a name="key-policy-users-crypto"></a>

Schlüsselbenutzer haben die Berechtigung, den KMS-Schlüssel direkt in allen [kryptografischen Operationen](kms-cryptography.md#cryptographic-operations) zu verwenden, die vom KMS-Schlüssel unterstützt werden. Sie können den [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)Vorgang auch verwenden, um detaillierte Informationen über den KMS-Schlüssel in der AWS KMS Konsole oder mithilfe der AWS KMS API-Operationen abzurufen.

Standardmäßig fügt die AWS KMS Konsole der Standard-Schlüsselrichtlinie wichtige Benutzeranweisungen wie die in den folgenden Beispielen hinzu. Da sie unterschiedliche API-Operationen unterstützen, weichen die jeweiligen Aktionen in den Richtlinienanweisungen für KMS-Schlüssel mit symmetrischer Verschlüsselung, HMAC-KMS-Schlüssel, asymmetrische KMS-Schlüssel für die Verschlüsselung öffentlicher Schlüssel und asymmetrische KMS-Schlüssel für Signatur und Verifizierung geringfügig voneinander ab.

**KMS-Schlüssel mit symmetrischer Verschlüsselung**  
Die Konsole fügt der Schlüsselrichtlinie für KMS-Schlüssel mit symmetrischer Verschlüsselung die folgende Anweisung hinzu.  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",  
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:Decrypt",
    "kms:DescribeKey",
    "kms:Encrypt",
    "kms:GenerateDataKey*",
    "kms:ReEncrypt*"
  ],
  "Resource": "*"
}
```

**HMAC-KMS-Schlüssel**  
Die Konsole fügt der Schlüsselrichtlinie für HMAC-KMS-Schlüssel die folgende Anweisung hinzu.  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",  
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:DescribeKey",
    "kms:GenerateMac",
    "kms:VerifyMac"
  ],
  "Resource": "*"
}
```

**Asymmetrische KMS-Schlüssel für die Verschlüsselung öffentlicher Schlüssel**  
Die Konsole fügt die folgende Anweisung zur Schlüsselrichtlinie für asymmetrische KMS-Schlüssels mit der Schlüsselnutzung **Encrypt and decrypt (Verschlüsseln und Entschlüsseln)** hinzu.  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:DescribeKey",
    "kms:GetPublicKey"
  ],
  "Resource": "*"
}
```

**Asymmetrische KMS-Schlüssel für Signatur und Verifizierung**  
Die Konsole fügt die folgende Anweisung zur Schlüsselrichtlinie für asymmetrische KMS-Schlüssels mit der Schlüsselnutzung **Sign and verify (Signieren und Überprüfen)** hinzu.  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:DescribeKey",
    "kms:GetPublicKey",
    "kms:Sign",
    "kms:Verify"
  ],
  "Resource": "*"
}
```

**Asymmetrische KMS-Schlüssel zum Ableiten von gemeinsamen Geheimnissen**  
**Die Konsole fügt der Schlüsselrichtlinie für asymmetrische KMS-Schlüssel die folgende Anweisung hinzu, wobei die Schlüsselvereinbarung als Schlüssel verwendet wird.**  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:DescribeKey",
    "kms:GetPublicKey",
    "kms:DeriveSharedSecret"
  ],
  "Resource": "*"
}
```

Die Aktionen in diesen Anweisungen geben den Schlüsselbenutzern die folgenden Berechtigungen.

[https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)  
Erlaubt es Schlüsselbenutzern, Daten mit diesem KMS-Schlüssel zu verschlüsseln.

[https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)  
Erlaubt es Schlüsselbenutzern, Daten mit diesem KMS-Schlüssel zu entschlüsseln.

[https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)  
Ermöglicht es Schlüsselbenutzern, gemeinsame Geheimnisse mit diesem KMS-Schlüssel abzuleiten.

[https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)  
Erlaubt Schlüsselbenutzern das Abrufen detaillierter Information über diesen KMS-Schlüssel, einschließlich der dazugehörigen IDs, des Erstellungsdatums und des Schlüsselstatus. Außerdem können die Hauptbenutzer Details zum KMS-Schlüssel in der AWS KMS Konsole anzeigen.

`kms:GenerateDataKey*`  
Erlaubt Schlüsselbenutzern, einen symmetrischen Datenschlüssel oder ein asymmetrisches Datenschlüsselpaar für clientseitige kryptografische Operationen anzufordern. Die Konsole verwendet das Platzhalterzeichen \$1, um die Erlaubnis für die folgenden API-Operationen darzustellen: [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), [GenerateDataKeyWithoutPlaintext[GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html), und [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html). Diese Berechtigungen gelten nur für die symmetrischen KMS-Schlüssel, die die Datenschlüssel verschlüsseln.

[km: GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)  
Ermöglicht es Schlüsselbenutzern, einen HMAC-KMS-Schlüssel zu verwenden, um ein HMAC-Tag zu generieren.

[km: GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)  
Erlaubt Schlüsselbenutzern das Herunterladen des öffentlichen Schlüssels des asymmetrischen KMS-Schlüssels. Parteien, mit denen Sie diesen öffentlichen Schlüssel teilen, können Daten außerhalb von AWS KMS verschlüsseln. Diese Chiffretexte können jedoch nur durch Aufrufen der Produktion [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) in AWS KMS entschlüsselt werden.

[km: \$1 ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)   
Erlaubt es Schlüsselbenutzern, Daten erneut zu verschlüsseln, die ursprünglich mit diesem KMS-Schlüssel verschlüsselt wurden, oder diesen KMS-Schlüssel zu verwenden, um zuvor verschlüsselte Daten erneut zu verschlüsseln. Der [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)Vorgang erfordert Zugriff sowohl auf Quell- als auch auf Ziel-KMS-Schlüssel. Um dies zu erreichen, können Sie die `kms:ReEncryptFrom`-Berechtigung für den Quell-KMS-Schlüssel und die `kms:ReEncryptTo`-Berechtigung für den Ziel-KMS-Schlüssel erlauben. Der Einfachheit halber erlaubt die Konsole jedoch `kms:ReEncrypt*` (mit dem Platzhalterzeichen `*`) für beide KMS-Schlüssel.

[kms:Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html)  
Erlaubt es Schlüsselbenutzern, Nachrichten mit diesem KMS-Schlüssel zu signieren.

[kms:Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)  
Erlaubt es Schlüsselbenutzern, Signaturen mit diesem KMS-Schlüssel zu überprüfen.

[km: VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)  
Ermöglicht es Schlüsselbenutzern, einen HMAC-KMS-Schlüssel zu verwenden, um ein HMAC-Tag zu verifizieren.

## Ermöglicht Schlüsselbenutzern, den KMS-Schlüssel mit AWS Diensten zu verwenden
<a name="key-policy-service-integration"></a>

Die Standardschlüsselrichtlinie in der Konsole gewährt Schlüsselbenutzern außerdem die Berechtigungen, die sie benötigen, um ihre Daten in AWS Diensten zu schützen, die Grants verwenden. AWS Dienste verwenden häufig Zuschüsse, um spezifische und eingeschränkte Berechtigungen zur Verwendung eines KMS-Schlüssels zu erhalten.

Diese wichtige Richtlinienerklärung ermöglicht es dem Hauptbenutzer, Berechtigungen für den KMS-Schlüssel zu erstellen, einzusehen und zu widerrufen, aber nur, wenn die Anfrage für den Gewährungsvorgang von einem [AWS Dienst stammt, in den der Dienst integriert](https://aws.amazon.com/kms/features/#AWS_Service_Integration) ist AWS KMS. Die GrantIsFor AWSResource Richtlinienbedingung [kms:](conditions-kms.md#conditions-kms-grant-is-for-aws-resource) erlaubt es dem Benutzer nicht, diese Grant-Operationen direkt aufzurufen. Wenn der Schlüsselbenutzer dies zulässt, kann ein AWS Dienst im Namen des Benutzers eine Gewährung einrichten, die es dem Dienst ermöglicht, den KMS-Schlüssel zum Schutz der Benutzerdaten zu verwenden. 

Schlüsselbenutzer benötigen diese Erteilungs-Berechtigungen, um ihren KMS-Schlüssel mit integrierten Services zu verwenden, aber diese Berechtigungen sind nicht ausreichend. Schlüsselbenutzer benötigen außerdem die Berechtigung, die integrierten Services zu nutzen. Einzelheiten darüber, wie Sie Benutzern Zugriff auf einen AWS Dienst gewähren, der integriert werden kann AWS KMS, finden Sie in der Dokumentation zum integrierten Dienst.

```
{
  "Sid": "Allow attachment of persistent resources",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:CreateGrant",
    "kms:ListGrants",
    "kms:RevokeGrant"
  ],
  "Resource": "*",
  "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
}
```

Schlüsselbenutzer können diese Berechtigungen beispielsweise auf folgende Weise für den KMS-Schlüssel verwenden.
+ Verwenden Sie diesen KMS-Schlüssel mit Amazon Elastic Block Store (Amazon EBS) und Amazon Elastic Compute Cloud (Amazon EC2), um ein verschlüsseltes EBS-Volume an eine EC2-Instance anzufügen. Der Schlüsselbenutzer erteilt Amazon EC2 implizit die Berechtigung, den KMS-Schlüssel zu verwenden, um das verschlüsselte Volume an die Instance anzufügen. Weitere Informationen finden Sie unter [So verwendet Amazon Elastic Block Store (Amazon EBS) AWS KMS](services-ebs.md).
+ Verwenden Sie diesen KMS-Schlüssel zusammen mit Amazon Redshift, um einen verschlüsselten Cluster zu starten. Der Schlüsselbenutzer erteilt Amazon Redshift implizit die Berechtigung, den KMS-Schlüssel zu verwenden, um den verschlüsselten Cluster zu starten und verschlüsselte Snapshots zu erstellen. Weitere Informationen finden Sie unter [So verwendet Amazon Redshift AWS KMS](services-redshift.md).
+ Verwenden Sie diesen KMS-Schlüssel mit anderen [AWS -Diensten, die in AWS KMS integriert sind](service-integration.md) und Berechtigungen zum Erstellen, Verwalten oder Verwenden verschlüsselter Ressourcen mit diesen Diensten verwenden.

Die Standard-Berechtigung ermöglicht es Schlüsselbenutzern, *alle* integrierten Services zu verwenden, die Zugriffserteilungen nutzen. Sie können jedoch eine benutzerdefinierte Schlüsselrichtlinie erstellen, die die Berechtigungen auf bestimmte AWS Dienste beschränkt. Weitere Informationen erhalten Sie unter [km: ViaService](conditions-kms.md#conditions-kms-via-service) Bedingungsschlüssel.

# Wichtige Richtlinien anzeigen
<a name="key-policy-viewing"></a>

Sie können die wichtigsten Richtlinien für einen vom AWS KMS [Kunden verwalteten Schlüssel](concepts.md#customer-mgn-key) oder einen [Von AWS verwalteter Schlüssel](concepts.md#aws-managed-key)in Ihrem Konto mithilfe der AWS KMS Konsole oder über den [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)Vorgang in der AWS KMS API einsehen. Sie können diese Methoden nicht verwenden, um die Schlüsselrichtlinie eines KMS-Schlüssels in einem anderen AWS-Konto anzuzeigen. 

Weitere Informationen zu den AWS KMS wichtigsten Richtlinien finden Sie unter[Wichtige Richtlinien in AWS KMS](key-policies.md). Informationen zum Bestimmen, welche Benutzer und Rollen Zugriff auf ein KMS-Schlüssel haben, finden Sie unter [Bestimmung des Zugriffs auf AWS KMS keys](determining-access.md).

## Die AWS KMS Konsole verwenden
<a name="key-policy-viewing-console"></a>

Autorisierte Benutzer können die Schlüsselrichtlinie für einen [Von AWS verwalteter Schlüssel](concepts.md#aws-managed-key) oder einen [vom Kunden verwalteten Schlüssel](concepts.md#customer-mgn-key) auf der Registerkarte **Key policy** (Schlüsselrichtlinie) der AWS-Managementkonsole anzeigen. 

[Um die Schlüsselrichtlinie für einen KMS-Schlüssel in der anzeigen zu können AWS-Managementkonsole, benötigen Sie die GetKeyPolicy Berechtigungen [kms: DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html), kms: und [kms:](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html). ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)

1. Melden Sie sich bei der AWS Key Management Service (AWS KMS) -Konsole an AWS-Managementkonsole und öffnen Sie sie unter [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Um das zu ändern AWS-Region, verwenden Sie die Regionsauswahl in der oberen rechten Ecke der Seite.

1. 

   **Um die Schlüssel in Ihrem Konto anzuzeigen, das für Sie AWS erstellt und verwaltet wird, wählen AWS Sie im Navigationsbereich die Option Verwaltete Schlüssel aus.** Zum Anzeigen der Schlüssel in Ihrem Konto, die Sie erstellen und verwalten, wählen Sie im Navigationsbereich **Customer managed keys (Vom Kunden verwaltete Schlüssel)** aus.

1. Wählen Sie in der Liste der KMS-Schlüssel den Alias oder die Schlüssel-ID des KMS-Schlüssels aus, den Sie untersuchen möchten.

1. Wählen Sie die Registerkarte **Key policy (Schlüsselrichtlinie)**.

   Auf der Registerkarte **Key policy (Schlüsselrichtlinie)** wird möglicherweise das Schlüsselrichtliniendokument angezeigt. Dies ist eine *Richtlinienansicht*. In den Schlüsselrichtlinienanweisungen sehen Sie die Prinzipale, denen die Schlüsselrichtlinie Zugriff auf den KMS-Schlüssel gewährt hat, und Sie können die Aktionen anzeigen, die sie ausführen können.

   Das folgende Beispiel zeigt die Richtlinienansicht für die [Standardschlüsselrichtlinie](key-policy-default.md).   
![\[Ansicht der standardmäßigen Schlüsselrichtlinie in der Richtlinienansicht der AWS KMS Konsole\]](http://docs.aws.amazon.com/de_de/kms/latest/developerguide/images/console-key-policy-view.png)

   Oder, wenn Sie den KMS-Schlüssel in der erstellt haben AWS-Managementkonsole, wird Ihnen die *Standardansicht* mit Abschnitten für **Schlüsseladministratoren**, **Löschen von Schlüsseln** und **Schlüsselbenutzer** angezeigt. Wählen Sie zum Anzeigen der Schlüsselrichtliniendokuments **Switch to policy view (Zur Richtlinienansicht wechseln)**.

   Das folgende Beispiel zeigt die Standardansicht für die [Standardschlüsselrichtlinie](key-policy-default.md).   
![\[Ansicht der Standard-Schlüsselrichtlinie in der Standardansicht in der AWS KMS Konsole\]](http://docs.aws.amazon.com/de_de/kms/latest/developerguide/images/console-key-policy-full-vsm.png)

## Verwenden der AWS KMS API
<a name="key-policy-viewing-api"></a>

Um die Schlüsselrichtlinie für einen KMS-Schlüssel in Ihrem abzurufen AWS-Konto, verwenden Sie den [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)Vorgang in der AWS KMS API. Sie können diesen Vorgang nicht verwenden, um eine Schlüsselrichtlinie in einem anderen Konto anzuzeigen.

Im folgenden Beispiel wird der [get-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html)Befehl in AWS Command Line Interface (AWS CLI) verwendet, Sie können jedoch jedes AWS SDK verwenden, um diese Anfrage zu stellen. 

Beachten Sie, dass der Parameter `PolicyName` erforderlich ist, obwohl `default` der einzige gültige Wert ist. Außerdem fordert dieser Befehl die Ausgabe als Text anstelle im JSON-Format an, damit sie leichter zu lesen ist.

Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem Konto.

```
$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default --output text
```

Die Antwort sollte der folgenden ähneln, die die [Standardschlüsselrichtlinie](key-policy-default.md) zurückgibt.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id" : "key-consolepolicy-3",
  "Statement" : [ {
  "Sid" : "EnableIAMUserPermissions",
    "Effect" : "Allow",
    "Principal" : {
      "AWS" : "arn:aws:iam::111122223333:root"
    },
    "Action" : "kms:*",
    "Resource" : "*"
  } ]
}
```

------

# Schlüsselrichtlinie ändern
<a name="key-policy-modifying"></a>

Sie können die Schlüsselrichtlinie für einen KMS-Schlüssel in Ihrem ändern, AWS-Konto indem Sie die [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)Operation AWS-Managementkonsole oder verwenden. Sie können diese Methoden nicht verwenden, um die Schlüsselrichtlinie eines KMS-Schlüssels in einem anderen AWS-Konto zu ändern.

Beachten Sie beim Ändern einer Schlüsselrichtlinie die folgenden Regeln:
+ Sie können die Schlüsselrichtlinie für einen [Von AWS verwalteter Schlüssel](concepts.md#aws-managed-key) oder einen [vom Kunden verwalteten Schlüssel](concepts.md#customer-mgn-key) anzeigen, aber ändern können Sie nur die Schlüsselrichtlinie für einen vom Kunden verwalteten Schlüssel. Die Richtlinien von Von AWS verwaltete Schlüssel werden von dem AWS Dienst erstellt und verwaltet, der den KMS-Schlüssel in Ihrem Konto erstellt hat. Sie können die Schlüsselrichtlinie für einen [AWS-eigener Schlüssel](concepts.md#aws-owned-key) nicht anzeigen oder ändern.
+ Sie können IAM-Benutzer, IAM-Rollen und AWS-Konten in der Schlüsselrichtlinie hinzufügen oder entfernen und die Aktionen ändern, die für diese Prinzipale zulässig oder verweigert sind. Weitere Informationen zu den Möglichkeiten, um Prinzipale und Berechtigungen in einer Schlüsselrichtlinie festzulegen, finden Sie unter [Schlüsselrichtlinien](key-policies.md).
+ Sie können keine IAM-Gruppen zu einer Schlüsselrichtlinie hinzufügen, aber Sie können mehrere IAM-Benutzer und IAM-Rollen hinzufügen. Weitere Informationen finden Sie unter [Mehreren IAM-Prinzipalen Zugriff auf einen KMS-Schlüssel gewähren](iam-policies.md#key-policy-modifying-multiple-iam-users).
+ Wenn Sie externe Richtlinien AWS-Konten zu einer Schlüsselrichtlinie hinzufügen, müssen Sie auch IAM-Richtlinien in den externen Konten verwenden, um IAM-Benutzern, -Gruppen oder -Rollen in diesen Konten Berechtigungen zu erteilen. Weitere Informationen finden Sie unter [Benutzern in anderen Konten die Verwendung des KMS-Schlüssels erlauben](key-policy-modifying-external-accounts.md).
+ Das sich ergebende Schlüssel-Richtliniendokument darf 32 KB (32.768 Bytes) nicht überschreiten.

## So Ändern Sie eine Schlüsselrichtlinie:
<a name="key-policy-modifying-how-to"></a>

Es gibt drei Möglichkeiten zum Ändern einer Schlüsselrichtlinie, die in den folgenden Abschnitten erläutert werden.

**Topics**
+ [

### Verwenden Sie die Standardansicht AWS-Managementkonsole
](#key-policy-modifying-how-to-console-default-view)
+ [

### Verwenden Sie die AWS-Managementkonsole Richtlinienansicht
](#key-policy-modifying-how-to-console-policy-view)
+ [

### Verwenden der AWS KMS API
](#key-policy-modifying-how-to-api)

### Verwenden Sie die Standardansicht AWS-Managementkonsole
<a name="key-policy-modifying-how-to-console-default-view"></a>

Sie können die Konsole verwenden, um eine Schlüsselrichtlinie mit einer grafischen Benutzeroberfläche mit dem Namen *Standardansicht* zu ändern.

Wenn die folgenden Schritte nicht dem entsprechen, was Sie in der Konsole sehen, kann dies bedeuten, dass diese Schlüsselrichtlinie nicht durch die Konsole erstellt wurde. Es kann auch bedeuten, dass die Schlüsselrichtlinie auf eine Weise geändert wurde, die von der Standardansicht der Konsole nicht unterstützt wird. Befolgen Sie in diesem Fall die Schritte unter [Verwenden Sie die AWS-Managementkonsole Richtlinienansicht](#key-policy-modifying-how-to-console-policy-view) oder [Verwenden der AWS KMS API](#key-policy-modifying-how-to-api).

1. Zeigen Sie die Schlüsselrichtlinie für einen kundenverwalteten KMS-Schlüssel wie unter [Die AWS KMS Konsole verwenden](key-policy-viewing.md#key-policy-viewing-console) beschrieben an. (Sie können die wichtigsten Richtlinien von nicht ändern Von AWS verwaltete Schlüssel.)

1. Entscheiden Sie, was geändert werden soll.
   + Um [Schlüsseladministratoren](key-policy-default.md#key-policy-default-allow-administrators) hinzuzufügen oder zu entfernen und festzulegen, ob sie den [KMS-Schlüssel löschen](deleting-keys.md) dürfen oder nicht, verwenden Sie die Steuerelemente im Bereich **Key Administrators (Schlüsseladministratoren)** der Seite. Schlüsseladministratoren verwalten den KMS-Schlüssel. Dies umfasst die Aktivierung und Deaktivierung, das Festlegen der Schlüsselrichtlinie und das [Aktivieren der Schlüsseldrehung](rotate-keys.md).
   + Verwenden Sie die Steuerelemente im Abschnitt [Hauptbenutzer der Seite, um Schlüsselbenutzer](key-policy-default.md#key-policy-default-allow-users) hinzuzufügen oder AWS-Konten zu entfernen und externen **Benutzern die Verwendung des KMS-Schlüssels** zu gestatten oder zu verbieten. Schlüsselbenutzer können den KMS-Schlüssel in [kryptografischen Produktionen](kms-cryptography.md#cryptographic-operations) verwenden, wie beispielsweise der Verschlüsselung, Entschlüsselung, erneuten Verschlüsselung und Generierung von Datenschlüsseln.

### Verwenden Sie die AWS-Managementkonsole Richtlinienansicht
<a name="key-policy-modifying-how-to-console-policy-view"></a>

Sie können die Konsole verwenden, um ein Schlüsselrichtliniendokument über die *Richtlinienansicht* der Konsole zu ändern.

1. Zeigen Sie die Schlüsselrichtlinie für einen kundenverwalteten KMS-Schlüssel wie unter [Die AWS KMS Konsole verwenden](key-policy-viewing.md#key-policy-viewing-console) beschrieben an. (Sie können die wichtigsten Richtlinien von nicht ändern Von AWS verwaltete Schlüssel.)

1. Wählen Sie im Abschnitt **Key Policy (Schlüsselrichtlinie)** die Option **Switch to policy view (Zur Richtlinienansicht wechseln)** aus.

1. Wählen Sie **Bearbeiten** aus.

1. Entscheiden Sie, was geändert werden soll.
   + Um einen neuen Kontoauszug hinzuzufügen, wählen Sie **Neuen Kontoauszug hinzufügen**. Anschließend können Sie die Aktionen, Grundsätze und Bedingungen für Ihre neue wichtige Grundsatzerklärung aus den im Statement Builder-Menü aufgelisteten Optionen auswählen oder die Elemente der Grundsatzerklärung manuell eingeben.
   + Um eine Aussage aus Ihrer wichtigsten Richtlinie zu entfernen, wählen Sie die Erklärung aus und klicken Sie dann auf **Entfernen**. Überprüfen Sie die ausgewählte Richtlinienerklärung und bestätigen Sie, dass Sie sie entfernen möchten. Wenn Sie entscheiden, dass Sie mit dem Entfernen der Erklärung nicht fortfahren möchten, wählen Sie **Abbrechen**.
   + Um eine bestehende wichtige Richtlinienerklärung zu bearbeiten, wählen Sie die Erklärung aus. Anschließend können Sie das Statement Builder-Bedienfeld verwenden, um bestimmte Elemente auszuwählen, die Sie ändern möchten, oder die Aussage manuell bearbeiten.

1. Wählen Sie **Änderungen speichern ** aus.

### Verwenden der AWS KMS API
<a name="key-policy-modifying-how-to-api"></a>

Sie können den [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)Vorgang verwenden, um die Schlüsselrichtlinie eines KMS-Schlüssels in Ihrem zu ändern AWS-Konto. Sie können diese API nicht für einen KMS-Schlüssel in einem anderen AWS-Konto verwenden.

1. Verwenden Sie den [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)Vorgang, um das vorhandene wichtige Richtliniendokument abzurufen, und speichern Sie das wichtige Richtliniendokument anschließend in einer Datei. Beispielcode in mehreren Programmiersprachen finden Sie unter [Verwendung `GetKeyPolicy` mit einem AWS SDK oder CLI](example_kms_GetKeyPolicy_section.md).

1. Öffnen Sie das Schlüsselrichtliniendokument in Ihrem bevorzugten Texteditor, bearbeiten Sie das Schlüsselrichtliniendokument und speichern Sie dann die Datei.

1. Verwenden Sie den [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)Vorgang, um das aktualisierte Dokument mit den wichtigsten Richtlinien auf den KMS-Schlüssel anzuwenden. Beispielcode in mehreren Programmiersprachen finden Sie unter [Verwendung `PutKeyPolicy` mit einem AWS SDK oder CLI](example_kms_PutKeyPolicy_section.md).

[Ein Beispiel für das Kopieren einer Schlüsselrichtlinie von einem KMS-Schlüssel in einen anderen finden Sie in der AWS CLI Befehlsreferenz. GetKeyPolicy ](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html#examples)

# Berechtigungen für AWS Dienste in wichtigen Richtlinien
<a name="key-policy-services"></a>

Viele AWS Dienste verwenden sie AWS KMS keys , um die von ihnen verwalteten Ressourcen zu schützen. Wenn ein Service [AWS-eigene Schlüssel](concepts.md#aws-owned-key) oder [Von AWS verwaltete Schlüssel](concepts.md#aws-managed-key) verwendet, legt der Service die Schlüsselrichtlinien für diese KMS-Schlüssel fest und verwaltet sie. 

Wenn Sie jedoch einen [vom Kunden verwalteten Schlüssel](concepts.md#customer-mgn-key) mit einem AWS -Service verwenden, legen Sie die Schlüsselrichtlinie fest und verwalten sie. Diese Schlüsselrichtlinie muss dem Service die Mindestberechtigungen gewähren, die er benötigt, um die Ressource in Ihrem Namen zu schützen. Wir empfehlen, dem Prinzip der geringsten Berechtigung zu folgen: Gewähren Sie dem Service nur die Berechtigungen, die er benötigt. Dazu sollten Sie ermitteln, welche Berechtigungen der Service benötigt, und die [globalen Bedingungsschlüssel von AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) sowie die [Bedingungsschlüssel von AWS KMS](policy-conditions.md) verwenden, um die Berechtigungen detaillierter festzulegen. 

Um die Berechtigungen zu ermitteln, die der Service für einen vom Kunden verwalteten Schlüssel benötigt, lesen Sie in der Verschlüsselungsdokumentation für den Service nach. Die folgende Liste enthält Links zu einigen Dienstdokumentationen:
+ **AWS CloudTrail**Berechtigungen — [Konfigurieren Sie AWS KMS wichtige Richtlinien für CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-kms-key-policy-for-cloudtrail.html#create-kms-key-policy-for-cloudtrail-decrypt)
+ **Amazon Elastic Block Store-Berechtigungen** — [Amazon EC2 EC2-Benutzerhandbuch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#ebs-encryption-permissions) und [Amazon EC2 EC2-Benutzerhandbuch](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EBSEncryption.html#ebs-encryption-permissions)
+ **AWS Lambda**permissions — [Datenverschlüsselung im Ruhezustand für Lambda](https://docs.aws.amazon.com/lambda/latest/dg/security-encryption-at-rest.html)
+ **Amazon Q-Berechtigungen** — [Datenverschlüsselung für Amazon Q](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/data-encryption.html)
+ Berechtigungen für **Amazon Relational Database Service** — [AWS KMS Schlüsselverwaltung](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.Keys.html)
+ **AWS Secrets Manager**Berechtigungen — [Autorisieren der Verwendung des KMS-Schlüssels](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html#security-encryption-authz)
+ **Amazon Simple Queue Service-Berechtigungen** — [Amazon SQS SQS-Schlüsselverwaltung](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html)

# Verwenden von IAM-Richtlinien mit AWS KMS
<a name="iam-policies"></a>

Sie können IAM-Richtlinien zusammen mit [wichtigen Richtlinien](key-policies.md), [Zuschüssen](grants.md) und [VPC-Endpunktrichtlinien](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy) verwenden, um den Zugriff auf Ihr AWS KMS keys IN zu kontrollieren. AWS KMS

**Anmerkung**  
Um mit einer IAM-Richtlinie den Zugriff auf einen KMS-Schlüssel zu steuern, muss die Schlüsselrichtlinie für den KMS-Schlüssel dem Konto die Berechtigung erteilen, IAM-Richtlinien zu nutzen. Insbesondere muss die Schlüsselrichtlinie die [Richtlinienanweisung enthalten, die IAM-Richtlinien](key-policy-default.md#key-policy-default-allow-root-enable-iam) aktiviert.  
In diesem Abschnitt wird erklärt, wie Sie mithilfe von IAM-Richtlinien den Zugriff auf Vorgänge steuern können. AWS KMS Weitere Informationen zu IAM finden Sie im [IAM-Benutzerhandbuch](https://docs.aws.amazon.com/IAM/latest/UserGuide/).

Alle KMS-Schlüssel müssen eine Schlüsselrichtlinie haben. IAM-Richtlinien sind optional. Um mit einer IAM-Richtlinie den Zugriff auf einen KMS-Schlüssel zu steuern, muss die Schlüsselrichtlinie für den KMS-Schlüssel dem Konto die Berechtigung erteilen, IAM-Richtlinien zu nutzen. Insbesondere muss die Schlüsselrichtlinie die [Richtlinienanweisung enthalten, die IAM-Richtlinien](key-policy-default.md#key-policy-default-allow-root-enable-iam) aktiviert.

Mit IAM-Richtlinien kann der Zugriff auf jeden AWS KMS Vorgang gesteuert werden. Im Gegensatz zu wichtigen Richtlinien können IAM-Richtlinien den Zugriff auf mehrere KMS-Schlüssel steuern und Berechtigungen für den Betrieb mehrerer verwandter AWS Dienste bereitstellen. IAM-Richtlinien sind jedoch besonders nützlich, um den Zugriff auf Vorgänge zu kontrollieren, z. B. solche [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html), die nicht durch eine Schlüsselrichtlinie gesteuert werden können, da sie keinen bestimmten KMS-Schlüssel beinhalten.

Wenn Sie AWS KMS über einen Amazon Virtual Private Cloud (Amazon VPC) -Endpunkt zugreifen, können Sie auch eine VPC-Endpunktrichtlinie verwenden, um den Zugriff auf Ihre AWS KMS Ressourcen zu beschränken, wenn Sie den Endpunkt verwenden. Wenn Sie beispielsweise den VPC-Endpunkt verwenden, gestatten Sie möglicherweise nur den Prinzipalen in Ihrem AWS-Konto Zugriff auf Ihre vom Kunden verwalteten Schlüssel. Einzelheiten finden Sie unter [VPC-Endpunktrichtlinien](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy).

Hilfe beim Schreiben und Formatieren eines JSON-Richtliniendokuments finden Sie in der [IAM-JSON-Richtlinienreferenz](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) im *IAM-Benutzerhandbuch*.

Sie können IAM-Richtlinien auf folgende Weisen verwenden:
+ **Anfügen einer Berechtigungsrichtlinie an eine Rolle für Verbund oder kontoübergreifende Berechtigungen** – Sie können einer IAM-Rolle eine IAM-Richtlinie anfügen, um einen Identitätsverbund zu aktivieren, kontoübergreifende Berechtigungen zu erlauben oder Anwendungen, die auf EC2-Instances ausgeführt werden, Berechtigungen zu gewähren. Weitere Informationen zu den verschiedenen Anwendungsfällen für IAM-Rollen finden Sie unter [IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) im *IAM-Benutzerhandbuch*.
+ **Anfügen einer Berechtigungsrichtlinie an einen Benutzer oder ein Gruppe** – Sie können eine Richtlinie anfügen, die es einem Benutzer oder einer Gruppe von Benutzern erlaubt, AWS KMS -Operationen aufzurufen. In den bewährten Methoden von IAM wird jedoch empfohlen, nach Möglichkeit Identitäten mit temporären Anmeldeinformationen, z. B. IAM-Rollen, zu verwenden.

Das folgende Beispiel zeigt eine IAM-Richtlinie mit AWS KMS Berechtigungen. Diese Richtlinie erlaubt es den IAM-Identitäten, denen sie angefügt ist, eine Liste aller KMS-Schlüssel und -Aliasen abzurufen.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:ListKeys",
      "kms:ListAliases"
    ],
    "Resource": "*"
  }
}
```

------

Wie alle IAM-Richtlinien enthält diese Richtlinie kein `Principal`-Element. Wenn Sie einer IAM-Identität eine IAM-Richtlinie anfügen, erhält diese Identität die in der Richtlinie angegebenen Berechtigungen.

Eine Tabelle mit allen AWS KMS API-Aktionen und den Ressourcen, für die sie gelten, finden Sie unter[Berechtigungsreferenz](kms-api-permissions-reference.md).

## Mehreren IAM-Prinzipalen Zugriff auf einen KMS-Schlüssel gewähren
<a name="key-policy-modifying-multiple-iam-users"></a>

IAM-Gruppen sind keine gültigen Prinzipale in einer Schlüsselrichtlinie. Um mehreren Benutzern und Rollen den Zugriff auf einen KMS-Schlüssel zu erlauben, führen Sie einen der folgenden Schritte aus:
+ Verwenden Sie eine IAM-Rolle als Prinzipal in der Schlüsselrichtlinie. Je nach Bedarf können mehrere autorisierte Benutzer die Rolle übernehmen. Weitere Informationen finden Sie unter [IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) im *IAM-Benutzerhandbuch*.

  Sie können zwar mehrere IAM-Benutzer in einer Schlüsselrichtlinie auflisten, diese Vorgehensweise wird jedoch nicht empfohlen, da Sie die Schlüsselrichtlinie jedes Mal aktualisieren müssen, wenn sich die Liste der autorisierten Benutzer ändert. Bewährte IAM-Methoden raten außerdem von der Verwendung von IAM-Benutzern mit langfristigen Anmeldeinformationen ab. Weitere Informationen finden Sie unter [Bewährte Methoden für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.
+ Verwenden Sie eine IAM-Richtlinie, um einer IAM-Gruppe eine Berechtigung zu erteilen. Stellen Sie dazu sicher, dass die Schlüsselrichtlinie die Anweisung enthält, die es [IAM-Richtlinien ermöglicht, den Zugriff auf den KMS-Schlüssel zu erlauben](key-policy-default.md#key-policy-default-allow-root-enable-iam), [eine IAM-Richtlinie zu erstellen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#create-managed-policy-console), die den Zugriff auf den KMS-Schlüssel erlaubt, [diese Richtlinie dann einer IAM-Gruppe anzuhängen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console), die die autorisierten IAM-Benutzer enthält. Bei diesem Ansatz müssen Sie keine Richtlinien ändern, wenn sich die Liste der autorisierten Benutzer ändert. Stattdessen müssen Sie einfach nur die Benutzer zu der entsprechenden IAM-Gruppe hinzufügen oder daraus entfernen. Weitere Informationen finden Sie unter [IAM-Benutzergruppen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) im *IAM-Benutzerhandbuch*.

Weitere Informationen darüber, wie AWS KMS wichtige Richtlinien und IAM-Richtlinien zusammenarbeiten, finden Sie unter[Problembehandlung bei AWS KMS Berechtigungen](policy-evaluation.md).

# Bewährte Methoden für IAM-Richtlinien
<a name="iam-policies-best-practices"></a>

Die Sicherung des Zugriffs auf AWS KMS keys ist entscheidend für die Sicherheit all Ihrer AWS Ressourcen. KMS-Schlüssel werden verwendet, um viele der sensibelsten Ressourcen in Ihrem AWS-Konto zu schützen. Nehmen Sie sich Zeit, um die [wichtigsten Richtlinien, IAM-Richtlinien](key-policies.md), [Zuschüsse](grants.md) und VPC-Endpunktrichtlinien zu entwerfen, die den Zugriff auf Ihre KMS-Schlüssel steuern.

Wenden Sie in IAM-Richtlinienanweisungen, die den Zugriff auf KMS-Schlüssel steuern, das [Prinzip der geringsten Berechtigung](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) an. Geben Sie IAM-Prinzipalen nur die Berechtigungen ein, die sie nur für die KMS-Schlüssel benötigen, die sie verwenden oder verwalten müssen. 

Die folgenden bewährten Methoden gelten für IAM-Richtlinien, die den Zugriff auf AWS KMS Schlüssel und Aliase steuern. Eine allgemeine Anleitung zu bewährten IAM-Richtlinien finden Sie unter [Bewährte Methoden zur Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.

**Verwenden von Schlüsselrichtlinien**  
Stellen Sie nach Möglichkeit Berechtigungen, die sich auf einen KMS-Schlüssel auswirken, in einer Schlüsselrichtlinie bereit anstatt in einer IAM-Richtlinie, die auf viele KMS-Schlüssel angewendet werden kann, einschließlich derjenigen in anderen AWS-Konten. Dies ist besonders wichtig für vertrauliche Berechtigungen wie [kms: PutKeyPolicy und [kms:](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html), ScheduleKeyDeletion aber auch für kryptografische Operationen, die bestimmen, wie Ihre Daten geschützt werden.

**Beschränken Sie die Erlaubnis CreateKey **  
Erteilen Sie nur den Prinzipalen die Erlaubnis, Schlüssel ([kms: CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)) zu erstellen, die sie benötigen. Prinzipale, die einen KMS-Schlüssel erstellen, legen auch seine Schlüsselrichtlinie fest, damit sie sich selbst und anderen die Berechtigung zur Verwendung und Verwaltung der von ihnen erstellten KMS-Schlüssel erteilen können. Wenn Sie diese Berechtigung erlauben, sollten Sie sie vielleicht mithilfe von [-Richtlinienbedingungen](policy-conditions.md) beschränken. Sie können beispielsweise die KeySpec Bedingung [kms:](conditions-kms.md#conditions-kms-key-spec) verwenden, um die Erlaubnis auf KMS-Schlüssel mit symmetrischer Verschlüsselung zu beschränken.

**Angeben von KMS-Schlüsseln in einer IAM-Richtlinie**  
Geben Sie als bewährte Methode den [Schüssel-ARN](concepts.md#key-id-key-ARN) jedes KMS-Schlüssels an, für den die Berechtigung im `Resource`-Element der Richtlinienanweisung gilt. Diese Methode beschränkt die Berechtigung auf die KMS-Schlüssel, die vom Prinzipal benötigt werden. Dieses `Resource`-Element listet beispielsweise nur den KMS-Schlüssel auf, den der Prinzipal verwenden muss.  

```
"Resource": [
    "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321"
]
```
Wenn die Angabe von KMS-Schlüsseln nicht praktikabel ist, verwenden Sie einen `Resource` Wert, der den Zugriff auf KMS-Schlüssel in einer vertrauenswürdigen AWS-Konto Region einschränkt, z. B. `arn:aws:kms:region:account:key/*` Oder beschränken Sie den Zugriff auf KMS-Schlüssel in allen Regionen (\$1) einer vertrauenswürdigen Person AWS-Konto, z. B. `arn:aws:kms:*:account:key/*`  
Sie können keine [Schlüssel-ID](concepts.md#key-id-key-id), [Aliasnamen](concepts.md#key-id-alias-name) oder [Alias-ARN](concepts.md#key-id-alias-ARN) verwenden, um einen KMS-Schlüssel in dem `Resource`-Feld einer IAM-Richtlinie darzustellen. Wenn Sie einen Alias-ARN angeben, gilt die Richtlinie für den Alias und nicht für den KMS-Schlüssel. Weitere allgemeine Informationen zu IAM-Richtlinien für Aliase finden Sie unter [Steuern des Zugriffs auf Aliasse](alias-access.md)

**Vermeiden Sie "Resource": "\$1" in einer IAM-Richtlinie**  <a name="avoid-resource-star"></a>
Verwenden Sie Platzhalterzeichen (\$1) umsichtig. In einer Schlüsselrichtlinie stellt das Platzhalterzeichen in dem `Resource`-Element den KMS-Schlüssel dar, an den die Schlüsselrichtlinie angefügt ist. In einer IAM-Richtlinie wendet jedoch nur ein Platzhalterzeichen im `Resource` Element (`"Resource": "*"`) die Berechtigungen auf alle KMS-Schlüssel an, zu deren Verwendung AWS-Konten das Konto des Prinzipalbenutzers berechtigt ist. Dies kann [KMS-Schlüssel in anderen Bereichen AWS-Konten](key-policy-modifying-external-accounts.md) sowie KMS-Schlüssel im Konto des Prinzipals umfassen.  
Um beispielsweise einen KMS-Schlüssel in einem anderen zu verwenden AWS-Konto, benötigt ein Principal die Genehmigung durch die Schlüsselrichtlinie des KMS-Schlüssels im externen Konto und durch eine IAM-Richtlinie in seinem eigenen Konto. Angenommen, ein beliebiges Konto erteilte Ihrem AWS-Konto die [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)-Berechtigung für seine KMS-Schlüssel. In diesem Fall würde eine IAM-Richtlinie in Ihrem Konto, die einer Rolle die `kms:Decrypt`-Berechtigung für alle KMS-Schlüssel (`"Resource": "*"`) erteilt, den IAM-Teil der Anforderung erfüllen. Daher können Prinzipale, die diese Rolle übernehmen können, nun Chiffretexte mit dem KMS-Schlüssel im nicht-vertrauenswürdigen Konto entschlüsseln. Einträge für ihre Operationen werden in den CloudTrail Protokollen beider Konten angezeigt.  
Vermeiden Sie insbesondere die Verwendung von `"Resource": "*"` in einer Richtlinienanweisung, die die folgenden API-Operationen zulässt. Diese Operationen können für KMS-Schlüssel in anderen Ländern aufgerufen werden AWS-Konten.  
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
+ [GetKeyRotationStatus](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyRotationStatus.html)
+ [Kryptografische Operationen](kms-cryptography.md#cryptographic-operations) [([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),,, [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html),, [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html), [GenerateDataKeyWithoutPlaintext[GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html), [Signieren [GetPublicKey[ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html), Überprüfen)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)
+ [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html), [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html), [ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html), [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html), [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)

**Wann "Resource": "\$1" verwendet werden sollte**  <a name="require-resource-star"></a>
Verwenden Sie in einer IAM-Richtlinie ein Platzhalterzeichen im `Resource`-Element nur für Berechtigungen, die es erfordern. Nur die folgenden Berechtigungen erfordern das `"Resource": "*"`-Element.  
+ [km: CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
+ [km: GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)
+ [km: ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)
+ [km: ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)
+ Berechtigungen für benutzerdefinierte Schlüsselspeicher wie [kms: CreateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html) und [kms: ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html).
Berechtigungen für Aliasoperationen ([kms: CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html), [kms: UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html), [kms: DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html)) müssen an den Alias und den KMS-Schlüssel angehängt werden. Sie können die `"Resource": "*"` in einer IAM-Richtlinie verwenden, um die Aliase und die KMS-Schlüssel darzustellen, oder geben Sie die Aliase und KMS-Schlüssel im `Resource`-Element an. Beispiele finden Sie unter [Steuern des Zugriffs auf Aliasse](alias-access.md).

 

Die Beispiele in diesem Thema enthalten weitere Informationen und Anleitungen zum Entwerfen von IAM-Richtlinien für KMS-Schlüssel. Bewährte IAM-Methoden für alle AWS Ressourcen finden Sie unter [Bewährte Sicherheitsmethoden in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.

# Angeben von KMS-Schlüsseln in IAM-Richtlinienanweisungen
<a name="cmks-in-iam-policies"></a>

Sie können eine IAM-Richtlinie verwenden, um einem Prinzipal die Verwendung oder Verwaltung von KMS-Schlüsseln zu erlauben. KMS-Schlüssel werden in dem `Resource`-Element der Richtlinienanweisung angegeben. 
+ Um einen KMS-Schlüssel in einer IAM-Richtlinienanweisung anzugeben, müssen Sie dessen [Schüssel-ARN](concepts.md#key-id-key-ARN) verwenden. Sie können keine [Schlüssel-ID](concepts.md#key-id-key-id) und keinen [Aliasnamen](concepts.md#key-id-alias-name) oder [Alias-ARN](concepts.md#key-id-alias-ARN) verwenden, um einen KMS-Schlüssel in einer IAM-Richtlinienanweisung zu identifizieren. 

  Zum Beispiel: „`Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`“

  Um den Zugriff auf einen KMS-Schlüssel anhand seiner Aliase zu steuern, verwenden Sie die Bedingungsschlüssel [kms: RequestAlias](conditions-kms.md#conditions-kms-request-alias) oder [kms](conditions-kms.md#conditions-kms-resource-aliases):. ResourceAliases Details hierzu finden Sie unter [ABAC für AWS KMS](abac.md).

  Verwenden Sie einen Alias-ARN nur als Ressource in einer Richtlinienanweisung, die den Zugriff auf Aliasoperationen wie [CreateAlias[UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/UpdateAlias.html)](https://docs.aws.amazon.com/kms/latest/APIReference/CreateAlias.html), oder steuert [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/DeleteAlias.html). Details hierzu finden Sie unter [Steuern des Zugriffs auf Aliasse](alias-access.md).
+ Um mehrere KMS-Schlüssel im Konto und in der Region anzugeben, verwenden Sie Platzhalterzeichen (\$1) in den Regions- oder Ressourcen-ID-Positionen des Schlüssel-ARN. 

  Um beispielsweise alle KMS-Schlüssel in der Region USA West (Oregon) eines Kontos anzugeben, verwenden Sie "`Resource": "arn:aws:kms:us-west-2:111122223333:key/*`". Um alle KMS-Schlüssel in allen Regionen des Kontos anzugeben, verwenden Sie "`Resource": "arn:aws:kms:*:111122223333:key/*`".
+ Um alle KMS-Schlüssel darzustellen, verwenden Sie nur ein Platzhalterzeichen (`"*"`). Verwenden Sie dieses Format für Operationen, die keinen bestimmten KMS-Schlüssel verwenden, nämlich [CreateKey[GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html), [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html), und [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html).

Wenn Sie Ihre Richtlinienanweisungen schreiben, ist es eine [bewährte Methode](iam-policies-best-practices.md), nur die KMS-Schlüssel anzugeben, die der Prinzipal verwenden muss, anstatt ihm Zugriff auf alle KMS-Schlüssel zu gewähren. 

Die folgende IAM-Richtlinienanweisung ermöglicht es dem Principal beispielsweise [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html), die [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), [Decrypt-Operationen](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) nur für die KMS-Schlüssel aufzurufen, die im `Resource` Element der Richtlinienanweisung aufgeführt sind. Durch die bewährte Methode, KMS-Schlüssel nach dem Schlüssel-ARN anzugeben, wird sichergestellt, dass die Berechtigungen nur auf die angegebenen KMS-Schlüssel beschränkt sind.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:Decrypt"
    ],
    "Resource": [
     "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
     "arn:aws:kms:us-west-2:111122223333:key/01234abcd-12ab-34cd-56ef-1234567890ab"
    ]
  }
}
```

------

Um die Berechtigung auf alle KMS-Schlüssel in einem bestimmten vertrauenswürdigen Bereich anzuwenden AWS-Konto, können Sie Platzhalterzeichen (\$1) an den Positionen Region und Schlüssel-ID verwenden. Beispielsweise erlaubt die folgende Richtlinienanweisung es dem Prinzipal, die angegebenen Operationen für alle KMS-Schlüssel in zwei vertrauenswürdigen Beispielkonten aufzurufen.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:GenerateDataKeyPair"
    ],
    "Resource": [
      "arn:aws:kms:*:111122223333:key/*",
      "arn:aws:kms:*:444455556666:key/*"
    ]
  }
}
```

------

Sie können auch nur ein Platzhalterzeichen (`"*"`) in dem `Resource`-Element verwenden. Da es den Zugriff auf alle KMS-Schlüssel erlaubt, die das Konto nutzen darf, wird es in erster Linie für Operationen ohne einen bestimmten KMS-Schlüssel und für `Deny`-Anweisungen empfohlen. Sie können es auch in Richtlinienanweisungen verwenden, die nur weniger vertrauliche schreibgeschützte Operationen erlauben. Um festzustellen, ob ein AWS KMS Vorgang einen bestimmten KMS-Schlüssel beinhaltet, suchen Sie in der Spalte **Ressourcen** der Tabelle unter nach dem **KMS-Schlüsselwert**. [AWS KMS Berechtigungen](kms-api-permissions-reference.md)

Die folgende Richtlinienanweisung nutzt einen `Deny`-Effekt, um Prinzipalen die Nutzung der angegebenen Operationen auf irgendeinem KMS-Schlüssel zu verweigern. Sie verwendet ein Platzhalterzeichen in dem `Resource`-Element, um alle KMS-Schlüssel darzustellen.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": [
      "kms:CreateKey",
      "kms:PutKeyPolicy",
      "kms:CreateGrant",
      "kms:ScheduleKeyDeletion"
    ],
    "Resource": "*"
  }
}
```

------

Die folgende Richtlinienanweisung verwendet nur ein Platzhalterzeichen, um alle KMS-Schlüssel darzustellen. Sie erlaubt jedoch nur weniger sensible schreibgeschützte Operationen und Operationen, die nicht für einen bestimmten KMS-Schlüssel gelten.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:CreateKey",
      "kms:ListKeys",
      "kms:ListAliases",
      "kms:ListResourceTags"
    ],
    "Resource": "*"
  }
}
```

------

# Beispiele für IAM-Richtlinien
<a name="customer-managed-policies"></a>

In diesem Abschnitt finden Sie Beispiele für IAM-Richtlinien, die Berechtigungen für diverse AWS KMS -Aktionen gewähren.

**Wichtig**  
Einige der Berechtigungen in den folgenden Richtlinien sind nur erlaubt, wenn sie auch in der Schlüsselrichtlinie des KMS-Schlüssels erlaubt werden. Weitere Informationen finden Sie unter [Berechtigungsreferenz](kms-api-permissions-reference.md).

Hilfe beim Schreiben und Formatieren eines JSON-Richtliniendokuments finden Sie in der [IAM-JSON-Richtlinienreferenz](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) im *IAM-Benutzerhandbuch*.

**Topics**
+ [

## Erlauben Sie einem Benutzer, KMS-Schlüssel in der AWS KMS Konsole anzuzeigen
](#iam-policy-example-read-only-console)
+ [

## Einem Benutzer das Erstellen von KMS-Schlüsseln erlauben
](#iam-policy-example-create-key)
+ [

## Ermöglicht einem Benutzer das Verschlüsseln und Entschlüsseln mit einem beliebigen KMS-Schlüssel in einem bestimmten AWS-Konto
](#iam-policy-example-encrypt-decrypt-one-account)
+ [

## Erlaubt einem Benutzer das Verschlüsseln und Entschlüsseln mit einem beliebigen KMS-Schlüssel in einer bestimmten Region AWS-Konto
](#iam-policy-example-encrypt-decrypt-one-account-one-region)
+ [

## Einem Benutzer das Verschlüsseln und Entschlüsseln mit bestimmten KMS-Schlüssel erlauben
](#iam-policy-example-encrypt-decrypt-specific-cmks)
+ [

## Einen Benutzer am Deaktivieren oder Löschen von KMS-Schlüsseln hindern
](#iam-policy-example-deny-disable-delete)

## Erlauben Sie einem Benutzer, KMS-Schlüssel in der AWS KMS Konsole anzuzeigen
<a name="iam-policy-example-read-only-console"></a>

Die folgende IAM-Richtlinie ermöglicht Benutzern nur Lesezugriff auf die Konsole. AWS KMS Benutzer mit diesen Berechtigungen können alle KMS-Schlüssel in ihrer Datenbank einsehen AWS-Konto, sie können jedoch keine KMS-Schlüssel erstellen oder ändern. 

[Um KMS-Schlüssel auf den Seiten **Von AWS verwaltete Schlüssel**und **Vom Kunden verwaltete Schlüssel** anzeigen zu können, benötigen Prinzipale die GetResources Berechtigungen [kms: ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html), kms[: und tag:](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html), auch wenn die Schlüssel keine Tags oder Aliase haben. ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) Die verbleibenden Berechtigungen, insbesondere [kms: DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html), sind erforderlich, um optionale Spalten und Daten der KMS-Schlüsseltabelle auf den KMS-Schlüsseldetailseiten anzuzeigen. Die ListRoles Berechtigungen [iam: ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) und [iam:](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html) sind erforderlich, um die Schlüsselrichtlinie in der Standardansicht fehlerfrei anzuzeigen. Um Daten auf der Seite **Benutzerdefinierte Schlüsselspeicher** und Details zu KMS-Schlüsseln in benutzerdefinierten Schlüsselspeichern anzuzeigen, benötigen Prinzipale außerdem die [kms](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html): -Berechtigung. DescribeCustomKeyStores

Wenn Sie den Konsolenzugriff eines Benutzers auf bestimmte KMS-Schlüssel beschränken, zeigt die Konsole einen Fehler für jeden KMS-Schlüssel an, der nicht sichtbar ist. 

Diese Richtlinie umfasst zwei Richtlinienanweisungen. Das `Resource`-Element in der ersten Richtlinienanweisung gewährt die angegebenen Berechtigungen für alle KMS-Schlüssel in allen Regionen des Beispiel- AWS-Konto. Konsolenbetrachter benötigen keinen zusätzlichen Zugriff, da die AWS KMS -Konsole nur KMS-Schlüssel im Konto des Prinzipals anzeigt. Dies gilt auch dann, wenn sie berechtigt sind, KMS-Schlüssel in anderen AWS-Konten Datenbanken einzusehen. Für die verbleibenden Berechtigungen AWS KMS und die IAM-Berechtigungen ist ein `"Resource": "*"` Element erforderlich, da sie für keinen bestimmten KMS-Schlüssel gelten.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ReadOnlyAccessForAllKMSKeysInAccount",
      "Effect": "Allow",
      "Action": [
        "kms:GetPublicKey",        
        "kms:GetKeyRotationStatus",
        "kms:GetKeyPolicy",
        "kms:DescribeKey",
        "kms:ListKeyPolicies",
        "kms:ListResourceTags",
        "tag:GetResources"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*"
    },
    {
      "Sid": "ReadOnlyAccessForOperationsWithNoKMSKey",
      "Effect": "Allow",
      "Action": [
        "kms:ListKeys",
        "kms:ListAliases",
        "iam:ListRoles",
        "iam:ListUsers"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Einem Benutzer das Erstellen von KMS-Schlüsseln erlauben
<a name="iam-policy-example-create-key"></a>

Die folgende IAM-Richtlinie erlaubt Benutzern die Erstellung aller Arten von KMS-Schlüsseln. Der Wert des `Resource` Elements ist darauf `*` zurückzuführen, dass der `CreateKey` Vorgang keine bestimmten AWS KMS Ressourcen (KMS-Schlüssel oder Aliase) verwendet.

[Um den Benutzer auf bestimmte Typen von KMS-Schlüsseln zu beschränken, verwenden Sie die KeyOrigin Bedingungsschlüssel [kms: KeyUsage](conditions-kms.md#conditions-kms-key-usage), [kms: und kms:](conditions-kms.md#conditions-kms-key-origin). KeySpec](conditions-kms.md#conditions-kms-key-spec)

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "kms:CreateKey",
    "Resource": "*"
  }
}
```

------

Prinzipale, die Schlüssel erstellen, benötigen möglicherweise einige verwandte Berechtigungen.
+ **kms: PutKeyPolicy** — Prinzipale, die über die entsprechenden `kms:CreateKey` Rechte verfügen, können die Richtlinie für den ersten Schlüssel für den KMS-Schlüssel festlegen. Der `CreateKey` Aufrufer muss jedoch über die [PutKeyPolicykms-Berechtigung](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) verfügen, mit der er die KMS-Schlüsselrichtlinie ändern kann, oder er muss den `BypassPolicyLockoutSafetyCheck` Parameter von angeben`CreateKey`, was nicht empfohlen wird. Der `CreateKey`-Anrufer kann die `kms:PutKeyPolicy`-Berechtigung für den KMS-Schlüssel aus einer IAM-Richtlinie erhalten, oder er kann diese Berechtigung in die Schlüsselrichtlinie des KMS-Schlüssels aufnehmen, den er erstellt.
+ **kms: TagResource** — Um dem KMS-Schlüssel während des `CreateKey` Vorgangs Tags hinzuzufügen, muss der `CreateKey` Aufrufer in einer IAM-Richtlinie über die [kms: TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) -Berechtigung verfügen. Die Aufnahme dieser Berechtigung in die Schlüsselrichtlinie des neuen KMS-Schlüssels ist nicht ausreichend. Wenn der `CreateKey`-Anrufer jedoch `kms:TagResource` in die ursprünglichen Schlüsselrichtlinie aufnimmt, kann er Tags in einem separaten Aufruf hinzufügen, nachdem der KMS-Schlüssel erstellt wurde.
+ **kms: CreateAlias** — Principals, die einen KMS-Schlüssel in der AWS KMS Konsole erstellen, müssen über die CreateAlias kms-Berechtigung für den [KMS-Schlüssel](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) und den Alias verfügen. (Die Konsole führt zwei Aufrufe aus; einen an `CreateKey` und einen an `CreateAlias`). Sie müssen die Aliasberechtigung in einer IAM-Richtlinie angeben. Sie können dem KMS-Schlüssel die Berechtigungen in einer Schlüsselrichtlinie oder einer IAM-Richtlinie bereitstellen. Details hierzu finden Sie unter [Steuern des Zugriffs auf Aliasse](alias-access.md).

Darüber hinaus gewährt die folgende IAM-Richtlinie `kms:TagResource` Berechtigungen für alle KMS-Schlüssel im Konto AWS-Konto und `kms:CreateAlias` Berechtigungen für alle Aliase des Kontos. `kms:CreateKey` Sie enthält auch einige nützliche schreibgeschützte Berechtigungen, die nur in einer IAM-Richtlinie bereitgestellt werden können. 

Diese IAM-Richtlinie enthält nicht `kms:PutKeyPolicy` oder andere Berechtigungen, die in einer Schlüsselrichtlinie festgelegt werden können. Dabei handelt es sich um eine [bewährte Methode](iam-policies-best-practices.md), diese Berechtigungen in der Schlüsselrichtlinie festzulegen, in der sie ausschließlich für einen KMS-Schlüssel gelten.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPermissionsForParticularKMSKeys",
      "Effect": "Allow",
      "Action": "kms:TagResource",
      "Resource": "arn:aws:kms:*:111122223333:key/*"
    },
    {
      "Sid": "IAMPermissionsForParticularAliases",
      "Effect": "Allow",
      "Action": "kms:CreateAlias",
      "Resource": "arn:aws:kms:*:111122223333:alias/*"
    },
    {
      "Sid": "IAMPermissionsForAllKMSKeys",
      "Effect": "Allow",
      "Action": [
        "kms:CreateKey",
        "kms:ListKeys",
        "kms:ListAliases"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Ermöglicht einem Benutzer das Verschlüsseln und Entschlüsseln mit einem beliebigen KMS-Schlüssel in einem bestimmten AWS-Konto
<a name="iam-policy-example-encrypt-decrypt-one-account"></a>

Die folgende IAM-Richtlinie ermöglicht es einem Benutzer, Daten mit einem beliebigen KMS-Schlüssel in 111122223333 zu verschlüsseln und zu entschlüsseln. AWS-Konto 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt"
    ],
    "Resource": "arn:aws:kms:*:111122223333:key/*"
  }
}
```

------

## Erlaubt einem Benutzer das Verschlüsseln und Entschlüsseln mit einem beliebigen KMS-Schlüssel in einer bestimmten Region AWS-Konto
<a name="iam-policy-example-encrypt-decrypt-one-account-one-region"></a>

Die folgende IAM-Richtlinie ermöglicht es einem Benutzer, Daten mit einem beliebigen KMS-Schlüssel AWS-Konto `111122223333` in der Region USA West (Oregon) zu verschlüsseln und zu entschlüsseln.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt"
    ],
    "Resource": [
      "arn:aws:kms:us-west-2:111122223333:key/*"
    ]
  }
}
```

------

## Einem Benutzer das Verschlüsseln und Entschlüsseln mit bestimmten KMS-Schlüssel erlauben
<a name="iam-policy-example-encrypt-decrypt-specific-cmks"></a>

Die folgende IAM-Richtlinie erlaubt es einem Benutzer, mit den beiden im `Resource`-Element angegebenen KMS-Schlüssel Daten zu verschlüsseln und zu entschlüsseln. Um einen KMS-Schlüssel in einer IAM-Richtlinienanweisung anzugeben, müssen Sie dessen [Schüssel-ARN](concepts.md#key-id-key-ARN) verwenden.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt"
    ],
    "Resource": [
      "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
      "arn:aws:kms:us-west-2:111122223333:key/01234abc-d12a-b34c-d56e-f1234567890a'"
    ]
  }
}
```

------

## Einen Benutzer am Deaktivieren oder Löschen von KMS-Schlüsseln hindern
<a name="iam-policy-example-deny-disable-delete"></a>

Die folgende IAM-Richtlinie verhindert die Deaktivierung oder Löschung von KMS-Schlüsseln durch Benutzer, auch wenn eine andere IAM-Richtlinie oder eine Schlüsselrichtlinie diese Berechtigungen gewährt. Eine Richtlinie, die Berechtigungen explizit verweigert, hat Vorrang vor allen anderen Richtlinien, auch wenn diese dieselben Berechtigungen explizit erteilen. Weitere Informationen finden Sie unter [Problembehandlung bei AWS KMS Berechtigungen](policy-evaluation.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": [
      "kms:DisableKey",
      "kms:ScheduleKeyDeletion"
    ],
    "Resource": "*"
  }
}
```

------

# Richtlinien zur Ressourcenkontrolle in AWS KMS
<a name="resource-control-policies"></a>

Ressourcenkontrollrichtlinien (RCPs) sind eine Art von Unternehmensrichtlinie, mit der Sie präventive Kontrollen für AWS Ressourcen in Ihrer Organisation durchsetzen können. RCPs helfen Ihnen dabei, den externen Zugriff auf Ihre AWS Ressourcen zentral und in großem Umfang einzuschränken. RCPs ergänzen die Richtlinien zur Servicekontrolle (SCPs). SCPs Kann zwar verwendet werden, um die maximalen Berechtigungen für die IAM-Rollen und -Benutzer in Ihrer Organisation zentral festzulegen, RCPs kann aber auch verwendet werden, um die maximalen Berechtigungen für AWS Ressourcen in Ihrer Organisation zentral festzulegen.

Sie können es verwenden RCPs , um Berechtigungen für die vom Kunden verwalteten KMS-Schlüssel in Ihrer Organisation zu verwalten. RCPs allein reichen nicht aus, um Ihren vom Kunden verwalteten Schlüsseln Berechtigungen zu erteilen. Ein RCP gewährt keine Berechtigungen. Ein RCP definiert eine Berechtigungsschranke oder legt Grenzwerte für die Aktionen fest, die Identitäten mit Ressourcen in den betroffenen Konten ausführen können. Der Administrator muss IAM-Rollen oder -Benutzern weiterhin identitätsbasierte Richtlinien oder wichtige Richtlinien zuordnen, um tatsächlich Berechtigungen zu erteilen.

**Anmerkung**  
Die Richtlinien zur Ressourcenkontrolle in Ihrer Organisation gelten nicht für. [Von AWS verwaltete Schlüssel](concepts.md#aws-managed-key)  
Von AWS verwaltete Schlüssel werden in Ihrem Namen von einem AWS Dienst erstellt, verwaltet und verwendet, dessen Berechtigungen Sie nicht ändern oder verwalten können.

**Weitere Informationen**
+ Weitere allgemeine Informationen dazu RCPs finden Sie im *AWS Organizations Benutzerhandbuch* unter [Richtlinien zur Ressourcenkontrolle](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html).
+ Einzelheiten zur Definition RCPs, einschließlich Beispielen, finden Sie unter [RCP-Syntax](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps_syntax.html) im *AWS Organizations Benutzerhandbuch*.

Das folgende Beispiel zeigt, wie Sie mithilfe eines RCP verhindern können, dass externe Principals auf vom Kunden verwaltete Schlüssel in Ihrer Organisation zugreifen. Diese Richtlinie ist nur ein Beispiel, und Sie sollten sie an Ihre individuellen Geschäfts- und Sicherheitsanforderungen anpassen. Möglicherweise möchten Sie Ihre Richtlinie so anpassen, dass Ihre Geschäftspartner darauf zugreifen können. Weitere Informationen finden Sie im [Repository mit Beispielen für Datenperimeter-Richtlinien](https://github.com/aws-samples/data-perimeter-policy-examples/tree/main/resource_control_policies).

**Anmerkung**  
Die `kms:RetireGrant` Berechtigung ist in einem RCP nicht wirksam, auch wenn das `Action` Element ein Sternchen (\$1) als Platzhalter angibt.  
Weitere Hinweise dazu, wie die Berechtigung für bestimmt `kms:RetireGrant` wird, finden Sie unter. [Außerbetriebnahme und Widerruf von Erteilungen](grant-delete.md)

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RCPEnforceIdentityPerimeter",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "kms:*",
            "Resource": "*",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:PrincipalOrgID": "my-org-id"
                },
                "Bool": {
                    "aws:PrincipalIsAWSService": "false"
                }
            }
        }
    ]
}
```

------

Das folgende RCP-Beispiel erfordert, dass AWS Service Principals nur dann auf Ihre vom Kunden verwalteten KMS-Schlüssel zugreifen können, wenn die Anfrage von Ihrer Organisation stammt. Diese Richtlinie wendet die Kontrolle nur auf Anfragen an, die vorhanden sind. `aws:SourceAccount` Dadurch wird sichergestellt, dass Serviceintegrationen, für die keine Verwendung von erforderlich ist, `aws:SourceAccount` nicht beeinträchtigt werden. Wenn im Anforderungskontext vorhanden `aws:SourceAccount` ist, wird die `Null` Bedingung als 0 ausgewertet`true`, wodurch der `aws:SourceOrgID` Schlüssel erzwungen wird.

Weitere Informationen zum Problem mit dem verwirrten Stellvertreter finden Sie unter [Das Problem mit dem verwirrten Stellvertreter](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) im *IAM-Benutzerhandbuch*.

```
```

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RCPEnforceConfusedDeputyProtection",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "kms:*",
            "Resource": "*",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:SourceOrgID": "my-org-id"
                },
                "Bool": {
                    "aws:PrincipalIsAWSService": "true"
                },
                "Null": {
                    "aws:SourceAccount": "false"
                }
            }
        }
    ]
}
```

------

# Zuschüsse in AWS KMS
<a name="grants"></a>

Eine *Erteilung* ist ein Richtlinieninstrument, das es [AWS -Prinzipalen](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) erlaubt, KMS-Schlüssel in kryptografischen Operationen zu verwenden. Es kann ihnen auch erlauben, einen KMS-Schlüssel anzuzeigen (`DescribeKey`) und Erteilungen zu erstellen und zu verwalten. Bei der Autorisierung des Zugriffs auf einen KMS-Schlüssel werden Erteilungen zusammen mit [Schlüsselrichtlinien](key-policies.md) und [IAM-Richtlinien](iam-policies.md) berücksichtigt. Erteilungen werden häufig für temporäre Berechtigungen verwendet, da Sie eine erstellen, deren Berechtigungen verwenden und sie dann wieder löschen können, ohne Ihre Schlüsselrichtlinien oder IAM-Richtlinien zu ändern.

Grants werden häufig von AWS Diensten verwendet, die sich integrieren, AWS KMS um Ihre Daten im Ruhezustand zu verschlüsseln. Der Service erstellt eine Erteilung im Namen eines Benutzers im Konto, verwendet seine Berechtigungen und hebt die Erteilung auf, sobald die Aufgabe abgeschlossen ist. Einzelheiten darüber, wie AWS Dienste Zuschüsse verwenden, finden Sie unter dem Thema *Verschlüsselung im Ruhezustand* im Benutzer- oder Entwicklerhandbuch des jeweiligen Dienstes.

Erteilungen sind ein sehr flexibler und nützlicher Zugriffsteuerungs-Mechanismus. Wenn Sie eine Erteilung für einen KMS-Schlüssel erstellen, erlaubt die Erteilung es dem Empfänger-Prinzipal, die angegebenen Erteilungs-Operationen für den KMS-Schlüssel aufzurufen, vorausgesetzt, dass alle in der Erteilung angegebenen Bedingungen erfüllt sind. 
+ Jede Erteilung erlaubt den Zugriff auf genau einen KMS-Schlüssel. Sie können eine Erteilung für einen KMS-Schlüssel in einem anderen AWS-Konto erstellen.
+ Eine Erteilung kann den Zugriff auf einen KMS-Schlüssel erlauben, aber nicht den Zugriff verweigern.
+ Jede Erteilung hat einen [Empfänger-Prinzipal](#terms-grantee-principal). Der Principal des Empfängers kann eine oder mehrere Identitäten im selben AWS-Konto KMS-Schlüssel oder in einem anderen Konto repräsentieren.
+ Eine Erteilung kann nur [Erteilungs-Operationen](#terms-grant-operations) erlauben. Die Erteilungs-Operationen müssen durch den KMS-Schlüssel in der Erteilung unterstützt werden. Wenn Sie einen nicht unterstützten Vorgang angeben, schlägt die [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Anforderung mit einer Ausnahme fehl. `ValidationError`
+ Der Empfänger-Prinzipal können die Berechtigungen verwenden, die ihnen durch die Erteilung gewährt werden, ohne die Erteilung anzugeben, genauso wie wenn die Berechtigungen aus einer Schlüsselrichtlinie oder IAM-Richtlinie stammen. Da die AWS KMS API jedoch einem [Konsistenzmodell](#terms-eventual-consistency) folgt, kann es bei der Erstellung, Einstellung oder Widerruf eines Zuschusses zu einer kurzen Verzögerung kommen, bis die Änderung vollständig verfügbar ist. AWS KMS Um die Berechtigungen in einer Erteilung sofort zu verwenden, [verwenden Sie einen Erteilungs-Token](using-grant-token.md).
+ Ein autorisierter Prinzipal kann die Erteilung löschen, ([aufheben](#terms-retire-grant) oder [widerrufen](#terms-revoke-grant)). Durch das Löschen einer Erteilung entfallen alle Berechtigungen, die durch die Erteilung erlaubt wurden. Sie müssen nicht herausfinden, welche Richtlinien hinzugefügt oder entfernt werden sollen, um die Erteilung rückgängig zu machen. 
+ AWS KMS begrenzt die Anzahl der Grants für jeden KMS-Schlüssel. Details hierzu finden Sie unter [Erteilungen pro KMS-Schlüssel: 50 000](resource-limits.md#grants-per-key).

Seien Sie vorsichtig, wenn Sie Erteilungen erstellen und anderen die Berechtigung zum Erstellen von Erteilungen erteilen. Die Erlaubnis zur Erstellung von Zuschüssen hat Auswirkungen auf die Sicherheit, ähnlich wie die PutKeyPolicy Erlaubnis, Richtlinien festzulegen, mit dem [kms:](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html).
+ Benutzer mit der Berechtigung, Berechtigungen für einen KMS-Schlüssel (`kms:CreateGrant`) zu erstellen, können eine Erteilung verwenden, um Benutzern und Rollen, einschließlich AWS Diensten, die Verwendung des KMS-Schlüssels zu ermöglichen. Bei den Prinzipalen kann es sich um eigene Identitäten AWS-Konto oder um Identitäten in einem anderen Konto oder einer anderen Organisation handeln.
+ Zuschüsse können nur eine Teilmenge von Vorgängen ermöglichen. AWS KMS Sie können Erteilungen verwenden, um es Prinzipalen zu erlauben, den KMS-Schlüssel anzuzeigen, ihn in kryptografischen Operationen zu verwenden und Erteilungen zu erstellen und außer Betrieb zu nehmen. Details dazu finden Sie unter [Erteilungs-Operationen](#terms-grant-operations). Sie können auch [Erteilungs-Einschränkungen](create-grant-overview.md#grant-constraints) verwenden, um die Berechtigungen in einer Erteilung für eine Schlüssel mit symmetrischer Verschlüsselung einzuschränken.
+ Prinzipale können Berechtigung zum Erstellen von Erteilungen aus einer Schlüsselrichtlinie oder IAM-Richtlinie erhalten. Prinzipale, die `kms:CreateGrant`-Berechtigung aus einer Richtlinie bekommen, können Zuschüsse für alle [Erteilungs-Operationen](#terms-grant-operations) auf dem KMS-Schlüssel erstellen. Diese Prinzipale müssen nicht über die Berechtigung verfügen, die sie für den Schlüssel erteilen. Wenn Sie die `kms:CreateGrant`-Berechtigung in einer Richtlinie erlauben, können Sie [Richtlinienbedingungen](grant-authorization.md) verwenden, um diese Berechtigung einzuschränken.
+ Prinzipale können auch die Berechtigung erhalten, Erteilungen aus einer Erteilung zu erstellen. Diese Prinzipale können nur die Berechtigungen delegieren, die ihnen erteilt wurden, auch wenn sie über andere Berechtigungen aus einer Richtlinie verfügen. Details hierzu finden Sie unter [Genehmigung erteilen CreateGrant](create-grant-overview.md#grant-creategrant).

## Konzepte für Erteilungen
<a name="grant-concepts"></a>

Um Erteilungen effektiv nutzen zu können, müssen Sie die Begriffe und Konzepte verstehen, die AWS KMS verwendet. 

**Einschränkungen für Erteilungen**  <a name="terms-grant-constraint"></a>
Eine Bedingung, die die Berechtigungen in der Erteilung einschränkt. AWS KMS Unterstützt derzeit Gewährungsbeschränkungen, die auf dem [Verschlüsselungskontext](encrypt_context.md) in der Anforderung für einen kryptografischen Vorgang basieren. Details hierzu finden Sie unter [Verwenden von Erteilungs-Einschränkungen](create-grant-overview.md#grant-constraints).

**Erteilungs-ID**  <a name="terms-grant-id"></a>
Die eindeutige ID einer Erteilung für einen KMS-Schlüssel. Sie können eine Grant-ID zusammen mit einer [Schlüssel-ID](concepts.md#key-id) verwenden, um einen Zuschuss in einer [RetireGrant[RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)OR-Anfrage zu identifizieren.

**Erteilungs-Operationen**  <a name="terms-grant-operations"></a>
Die AWS KMS Vorgänge, die Sie in einem Zuschuss zulassen können. Wenn Sie andere Operationen angeben, schlägt die [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Anfrage mit einer `ValidationError` Ausnahme fehl. Dies sind auch die Operationen, die einen [Erteilungs-Token](#grant_token) akzeptieren. Ausführliche Informationen über diese Berechtigungen finden Sie unter [AWS KMS Berechtigungen](kms-api-permissions-reference.md).  
Diese Erteilungs-Operationen stellen tatsächlich die Berechtigung zur Verwendung der Produktion dar. Daher gilt, dass Sie für die `ReEncrypt`-Produktion `ReEncryptFrom`, `ReEncryptTo`, oder beide `ReEncrypt*` angeben können.  
Die Erteilungs-Operationen sind:  
+ Kryptografische Operationen
  + [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)
  + [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)
  + [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)
  + [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)
  + [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)
  + [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)
  + [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)
  + [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)
  + [ReEncryptFrom](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)
  + [ReEncryptTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)
  + [Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html)
  + [Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)
  + [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)
+ Andere Produktionen
  + [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)
  + [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
  + [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)
  + [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)
Die Erteilungs-Operationen, die Sie erlauben, müssen durch den KMS-Schlüssel in der Erteilung unterstützt werden. Wenn Sie einen nicht unterstützten Vorgang angeben, schlägt die [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Anforderung mit einer `ValidationError` Ausnahme fehl. Beispielsweise können Erteilungen für KMS-Schlüssel mit symmetrischer Verschlüsselung die Operationen [Signieren](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html), [Überprüfen](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html), [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html) oder [https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html) nicht zulassen. Erteilungen für asymmetrische KMS-Schlüssel dürfen keine Operationen zulassen, die Datenschlüssel oder Datenschlüsselpaare generieren.

**Erteilungs-Token**  <a name="grant_token"></a>
Die AWS KMS API folgt einem [eventuellen Konsistenzmodell](#terms-eventual-consistency). Wenn Sie eine Erteilung erstellen, kann es zu einer kurzen Verzögerung kommen, bis die Änderung in AWS KMS verfügbar ist. In der Regel dauert es weniger als ein paar Sekunden, bis sich die Änderung im gesamten System verbreitet, in einigen Fällen kann es jedoch mehrere Minuten dauern. Wenn Sie versuchen, eine Erteilung zu verwenden, bevor sie sich vollständig im System verbreitet hat, erhalten Sie möglicherweise eine Zugriffsverweigerungsmeldung. Mit einem Erteilungs-Token können Sie auf die Erteilung verweisen und die Erteilungs-Berechtigungen sofort verwenden.   
Ein *Berechtigungserteilungs-Token* ist eine eindeutige, nicht-geheime, base64-kodierte Zeichenfolge mit variabler Länge, die eine Erteilung darstellt. Sie können den Erteilungs-Token verwenden, um die Erteilung in jeder [Erteilungs-Produktion](#terms-grant-operations) zu identifizieren. Da der Token-Wert jedoch ein Hash-Digest ist, zeigt er keine Details über die Erteilung an.  
Ein Erteilungs-Token darf nur so lange verwendet werden, bis sich die Erteilung vollständig in AWS KMS ausgebreitet hat. Danach kann der [Empfänger-Prinzipal](#terms-grantee-principal) die Berechtigung in der Erteilung ohne Angabe eines Grant-Token oder eines anderen Beweises für die Erteilung verwenden. Sie können jederzeit ein Grant-Token verwenden, aber sobald der Grant letztendlich konsistent ist, AWS KMS verwendet es den Grant, um die Berechtigungen zu bestimmen, nicht das Grant-Token.  
Mit dem folgenden Befehl wird die [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)Operation beispielsweise aufgerufen. Er verwendet ein Erteilung-Token, um die Erteilung darzustellen, die dem Aufrufer (dem erteilenden Prinzipal) die Berechtigung zum Aufrufen von `GenerateDataKey` für den angegebenen KMS-Schlüssel erteilt.  

```
$ aws kms generate-data-key \
        --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
        --key-spec AES_256 \
        --grant-token $token
```
Sie können den Erteilungs-Token verwenden, um eine Erteilung in Operationen zu identifizieren, die Erteilungen verwalten. Beispielsweise kann der [ausscheidende Schulleiter](#terms-retiring-principal) bei einem Aufruf der [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)Operation ein Grant-Token verwenden.   

```
$ aws kms retire-grant \
        --grant-token $token
```
`CreateGrant` ist die einzige Produktion, die ein Erteilungs-Token zurückgibt. Sie können kein Grant-Token aus einem anderen AWS KMS Vorgang oder aus dem [CloudTrail Protokollereignis](ct-creategrant.md) für den CreateGrant Vorgang abrufen. Die [ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html)Operationen [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)und geben die [Grant-ID](#terms-grant-id) zurück, aber kein Grant-Token.  
Details hierzu finden Sie unter [Verwenden eines Erteilungs-Token](using-grant-token.md).

**Erteilender Prinzipal**  <a name="terms-grantee-principal"></a>
Die Identitäten, die die in der Erteilung angegebenen Berechtigungen erhalten. Jede Erteilung hat einen Empfänger-Prinzipal, aber der Empfänger-Prinzipal kann mehrere Identitäten repräsentieren.   
Der Prinzipal des Empfängers kann ein beliebiger AWS Prinzipal sein, einschließlich eines AWS-Konto (Root-), eines [IAM-Benutzers](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html), einer [IAM-Rolle, einer Verbundrolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) oder eines [Verbundbenutzers oder eines Benutzers mit angenommener Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html). Der Empfänger-Prinzipal kann sich im selben Konto wie der KMS-Schlüssel oder in einem anderen Konto befinden. Der Empfänger-Prinzipal kann jedoch kein [Service-Prinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) und keine [IAM-Gruppe](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) oder [AWS -Organisation](https://docs.aws.amazon.com/organizations/latest/userguide/) sein.  
Bewährte IAM-Methoden raten von der Verwendung von IAM-Benutzern mit langfristigen Anmeldeinformationen ab. Verwenden Sie nach Möglichkeit IAM-Rollen, die temporäre Anmeldeinformationen bereitstellen. Weitere Informationen finden Sie unter [Bewährte Methoden für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.

**Außerbetriebnahme (einer Erteilung)**  <a name="terms-retire-grant"></a>
Beendet eine Erteilung. Sie können eine Erteilung aufheben, wenn Sie die Berechtigungen nicht mehr brauchen.  
Wenn Sie eine Erteilung widerrufen oder außer Betrieb nehmen, wird die Erteilung gelöscht. Die Außerbetriebnahme erfolgt jedoch durch einen Prinzipal, der in der Erteilung angegeben ist. Das Widerrufen erfolgt in der Regel durch einen Schlüsseladministrator. Details hierzu finden Sie unter [Außerbetriebnahme und Widerruf von Erteilungen](grant-delete.md).

**Außerbetriebnahme eines Prinzipals**  <a name="terms-retiring-principal"></a>
Ein Prinzipal, der [eine Erteilung aufheben](#terms-retire-grant) kann. Sie können einen ausscheidenden Prinzipal in einer Erteilung angeben, jedoch ist es nicht erforderlich. Bei dem ausscheidenden Prinzipal kann es sich um einen beliebigen AWS Prinzipal handeln, einschließlich IAM-Benutzer AWS-Konten, IAM-Rollen, Verbundbenutzer und Benutzer mit angenommener Rolle. Der ausscheidende Prinzipal kann sich im selben Konto wie der KMS-Schlüssel oder in einem anderen Konto befinden.  
Bewährte IAM-Methoden raten von der Verwendung von IAM-Benutzern mit langfristigen Anmeldeinformationen ab. Verwenden Sie nach Möglichkeit IAM-Rollen, die temporäre Anmeldeinformationen bereitstellen. Weitere Informationen finden Sie unter [Bewährte Methoden für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.
Neben dem im Zuschuss angegebenen ausscheidenden Hauptbenutzer kann ein Grant auch von demjenigen zurückgezogen werden, AWS-Konto in dem der Grant eingerichtet wurde. Wenn die Erteilung die `RetireGrant`-Produktion erlaubt, kann der [Empfänger-Prinzipal](#terms-grantee-principal) die Erteilung aufheben. Außerdem kann der AWS-Konto oder ein Schulleiter AWS-Konto , der in den Ruhestand geht, die Genehmigung zur Einstellung eines Zuschusses an einen IAM-Schulleiter delegieren. AWS-Konto Details hierzu finden Sie unter [Außerbetriebnahme und Widerruf von Erteilungen](grant-delete.md).

**Widerrufen (einer Erteilung)**  <a name="terms-revoke-grant"></a>
Beendet eine Erteilung. Sie widerrufen eine Erteilung, um aktiv die Berechtigung abzulehnen, die die Erteilung erlaubt.   
Wenn Sie eine Erteilung widerrufen oder außer Betrieb nehmen, wird die Erteilung gelöscht. Die Außerbetriebnahme erfolgt jedoch durch einen Prinzipal, der in der Erteilung angegeben ist. Das Widerrufen erfolgt in der Regel durch einen Schlüsseladministrator. Details hierzu finden Sie unter [Außerbetriebnahme und Widerruf von Erteilungen](grant-delete.md).

**Letztendliche Konsistenz (für Erteilungen)**  <a name="terms-eventual-consistency"></a>
[Die AWS KMS API folgt einem späteren Konsistenzmodell.](https://en.wikipedia.org/wiki/Eventual_consistency) Wenn Sie eine Erteilung erstellen, aufheben oder widerrufen, kann es zu einer kurzen Verzögerung kommen, bevor die Änderung in allen Bereichen von AWS KMS verfügbar ist. In der Regel dauert es weniger als ein paar Sekunden, bis sich die Änderung im gesamten System verbreitet, in einigen Fällen kann es jedoch mehrere Minuten dauern.  
Diese kurze Verzögerung kann Ihnen auffallen, wenn Sie unerwartete Fehler erhalten. Wenn Sie beispielsweise versuchen, einen neuen Zuschuss zu verwalten oder die Berechtigungen in einem neuen Zuschuss zu verwenden, bevor der Zuschuss allgemein bekannt ist AWS KMS, erhalten Sie möglicherweise die Fehlermeldung Zugriff verweigert. Wenn Sie eine Erteilung aufheben oder widerrufen, kann der Empfänger-Prinzipal seine Berechtigungen möglicherweise für einen kurzen Zeitraum verwenden, bis die Erteilung vollständig gelöscht wurde. Die typische Strategie besteht darin, die Anfrage erneut zu versuchen, und einige AWS SDKs beinhalten automatische Backoff- und Wiederholungslogik.  
AWS KMS verfügt über Funktionen, um diese kurze Verzögerung zu minimieren.   
+ Um die Berechtigungen in einer neuen Erteilung sofort zu verwenden, verwenden Sie einen [Erteilungs-Token](using-grant-token.md). Sie können einen Erteilungs-Token verwenden, um die Erteilung in jeder [Erteilungs-Produktion](#terms-grant-operations) zu identifizieren. Detaillierte Anweisungen finden Sie unter [Verwenden eines Erteilungs-Token](using-grant-token.md). 
+ Der [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Vorgang verfügt über einen `Name` Parameter, der verhindert, dass bei Wiederholungsvorgängen doppelte Zuschüsse erstellt werden.
Erteilungs-Token ersetzen die Gültigkeit der Erteilung, bis alle Endpunkte im Service mit dem neuen Erteilungsstatus aktualisiert wurden. In den meisten Fällen wird die letztendliche Konsistenz innerhalb von fünf Minuten erreicht.
Weitere Informationen finden Sie unter [AWS KMS Letztendliche Konsistenz](accessing-kms.md#programming-eventual-consistency).

# Bewährte Verfahren für Zuschüsse AWS KMS
<a name="grant-best-practices"></a>

AWS KMS empfiehlt die folgenden bewährten Methoden für die Erstellung, Verwendung und Verwaltung von Zuschüssen.
+ Beschränken Sie die Berechtigungen in der Erteilung auf diejenigen, die der Empfänger-Prinzipal benötigt. Erteilen Sie Zugriff nach dem Prinzip [der geringsten Berechtigung](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).
+ Verwenden Sie einen bestimmten Empfänger-Prinzipal, z. B. eine IAM-Rolle, und erteilen Sie dem Empfänger-Prinzipal nur die Berechtigung, die API-Operationen zu verwenden, die er benötigt. 
+ Verwenden Sie den Verschlüsselungskontext [Erteilungs-Einschränkungen](grants.md#terms-grant-constraint), um sicherzustellen, dass Anrufer den KMS-Schlüssel für den beabsichtigten Zweck verwenden. Einzelheiten zur Verwendung des Verschlüsselungskontextes in einer Anfrage zur Sicherung Ihrer Daten finden Sie unter [So schützen Sie die Integrität Ihrer verschlüsselten Daten durch Verwendung AWS Key Management Service und EncryptionContext](https://aws.amazon.com/blogs/security/how-to-protect-the-integrity-of-your-encrypted-data-by-using-aws-key-management-service-and-encryptioncontext/) im *AWS Sicherheitsblog*.
**Tipp**  
Verwenden Sie wann immer möglich die [EncryptionContextEqual](create-grant-overview.md#grant-constraints)Zuschussbeschränkung. Die korrekte Verwendung der [EncryptionContextSubset](create-grant-overview.md#grant-constraints)Zuschussbeschränkung ist schwieriger. Wenn Sie sie verwenden müssen, lesen Sie die Dokumentation sorgfältig durch und testen Sie die Erteilungs-Einschränkung, um sicherzustellen, dass sie wie beabsichtigt funktioniert.
+ Löschen Sie doppelte Erteilungen. Doppelte Erteilungen haben dieselben API-Aktionen und denselben Schlüssel-ARN, Empfänger-Prinzipal, Verschlüsselungskontext und Namen. Wenn Sie die ursprüngliche Erteilung aufheben oder widerrufen, aber die doppelte Erteilungen belassen, stellen die verbleibenden doppelten Erteilungen unbeabsichtigte Eskalationen von Rechten dar. Um bei `CreateGrant`-Anforderungen zu vermeiden, dass doppelte Erteilungen erstellt werden, verwenden Sie den [`Name`-Parameter](create-grant-overview.md#grant-create). Verwenden Sie die [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)Operation, um doppelte Zuschüsse zu erkennen. Wenn Sie versehentlich eine doppelte Erteilung erstellen, widerrufen Sie bzw. nehmen Sie diese sie so schnell wie möglich außer Betrieb. 
**Anmerkung**  
Erteilungen für [AWS -verwaltete Schlüssel](concepts.md#aws-managed-key) könnten wie Duplikate aussehen, haben aber unterschiedliche Empfänger-Prinzipale.  
Das `GranteePrincipal`-Feld in der `ListGrants`-Antwort enthält normalerweise den Berechtigungsprinzipal der Genehmigung. Wenn es sich bei der Hauptperson des Zuschusses jedoch um eine AWS Dienstleistung handelt, enthält das `GranteePrincipal` Feld den [Dienstprinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), der für mehrere verschiedene Prinzipale des Zuschusses stehen kann.
+ Denken Sie daran, dass Erteilungen nicht automatisch ablaufen. [Außerbetriebnahme oder Widerruf der Erteilung](grant-delete.md) sobald die Berechtigung nicht mehr benötigt wird. Erteilungen, die nicht gelöscht werden, können ein Sicherheitsrisiko für verschlüsselte Ressourcen verursachen.

# Steuerung des Zugriffs auf Erteilungen
<a name="grant-authorization"></a>

Sie können den Zugriff auf Operationen steuern, die Erteilungen in Schlüsselrichtlinien, IAM-Richtlinien und anderen Erteilungen erstellen und verwalten. Prinzipale, die die `CreateGrant`-Berechtigung von einer Erteilung erhalten, haben [mehr eingeschränkte Erteilungs-Berechtigungen](create-grant-overview.md#grant-creategrant). 


| API-Produktion | Schlüsselrichtlinie oder IAM-Richtlinie | Gewährung | 
| --- | --- | --- | 
| CreateGrant | ✓ | ✓ | 
| ListGrants | ✓ | - | 
| ListRetirableGrants | ✓ | - | 
| Außerbetriebnahme einer Erteilung | (Begrenzt. Siehe [Außerbetriebnahme und Widerruf von Erteilungen](grant-delete.md)) | ✓ | 
| RevokeGrant | ✓ | - | 

Wenn Sie eine Schlüsselrichtlinie oder IAM-Richtlinie verwenden, um den Zugriff auf Vorgänge zu steuern, die Zuschüsse erstellen und verwalten, können Sie eine oder mehrere der folgenden Richtlinienbedingungen verwenden, um die Berechtigung einzuschränken. AWS KMS unterstützt alle der folgenden Bedingungsschlüssel im Zusammenhang mit Zuschüssen. Ausführliche Informationen und Beispiele finden Sie unter [AWS KMS Bedingungsschlüssel](conditions-kms.md).

[km: GrantConstraintType](conditions-kms.md#conditions-kms-grant-constraint-type)  
Erlaubt es Prinzipalen, eine Erteilung nur zu erstellen, wenn die Erteilung die angegebene [Erteilungs-Einschränkung](create-grant-overview.md#grant-constraints) enthält.

[km: GrantIsFor AWSResource](conditions-kms.md#conditions-kms-grant-is-for-aws-resource)  
Ermöglicht es Principals`CreateGrant`, anzurufen`ListGrants`, oder `RevokeGrant` nur, wenn [ein AWS Service, der in integriert ist,](https://aws.amazon.com/kms/features/#AWS_Service_Integration) die Anfrage im Namen des Prinzipals AWS KMS sendet.

[km: GrantOperations](conditions-kms.md#conditions-kms-grant-operations)  
Erlaubt es Prinzipalen, eine Erteilung zu erstellen, beschränkt jedoch die Erteilung auf die angegebenen Operationen.

[km: GranteePrincipal](conditions-kms.md#conditions-kms-grantee-principal)  
Erlaubt es Prinzipalen, eine Erteilung nur für den angegebenen [Empfänger-Prinzipal](grants.md#terms-grantee-principal) zu erstellen.

[km: RetiringPrincipal](conditions-kms.md#conditions-kms-retiring-principal)  
Erlaubt es Prinzipalen, eine Erteilung nur zu erstellen, wenn die Erteilung einen bestimmten [ausscheidenden Prinzipal](grants.md#terms-retiring-principal) angibt.

# Erstellen einer Erteilung
<a name="create-grant-overview"></a>

Informieren Sie sich vor dem Erstellen einer Erteilung über die Optionen für benutzerdefinierte Erteilungen. Sie können auch *Erteilungs-Einschränkungen* verwenden, um die Berechtigungen in einer Erteilung einzuschränken. Erfahren Sie auch mehr über die Erteilung der `CreateGrant`-Berechtigung. Prinzipale, die die Berechtigung zum Erstellen von Erteilungen aus einer Erteilung erhalten, sind in den Erteilungen beschränkt, die sie erstellen können.

**Topics**
+ [

## Erstellen einer Erteilung
](#grant-create)
+ [

## Genehmigung erteilen CreateGrant
](#grant-creategrant)

## Erstellen einer Erteilung
<a name="grant-create"></a>

Rufen Sie die [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Operation auf, um einen Grant zu erstellen. Geben Sie einen KMS-Schlüssel an, einen [Empfänger-Prinzipal](grants.md#terms-grantee-principal) und eine Liste der zulässigen [Erteilungs-Operationen](grants.md#terms-grant-operations). Sie können auch einen optionalen [ausscheidenden Prinzipal](grants.md#terms-retiring-principal) angeben. Um die Erteilung anzupassen, verwenden Sie optionale `Constraints`-Parameter, um [Erteilungseinschränkungen](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) zu definieren.

Wenn Sie eine Erteilung erstellen, aufheben oder widerrufen, kann es zu einer kurzen Verzögerung (in der Regel weniger als fünf Minuten) kommen, bevor die Änderung in allen Bereichen von AWS KMS verfügbar ist. Weitere Informationen finden Sie unter [Letztendliche Konsistenz (für Erteilungen)](grants.md#terms-eventual-consistency).

Der folgende `CreateGrant`-Befehl erstellt beispielsweise eine Erteilung, die Benutzer, die die `keyUserRole`-Rolle annehmen dürfen, den Aufruf der [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)-Operation für den angegebenen [symmetrischen KMS-Schlüssel](symm-asymm-choose-key-spec.md#symmetric-cmks) erlaubt. Die Erteilung legt mit dem Parameter `RetiringPrincipal` einen Prinzipal fest, der die erteilte Berechtigung aufheben kann. Es enthält auch eine Erteilungseinschränkung, die die Berechtigung nur zulässt, wenn der [Verschlüsselungskontext](encrypt_context.md) in der Anforderung `"Department": "IT"` einschließt.

```
$  aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --constraints EncryptionContextSubset={Department=IT}
```

Wenn Ihr Code die `CreateGrant`-Produktion erneut versucht, oder ein [AWS -SDK verwendet, das Anforderungen automatisch wiederholt](https://docs.aws.amazon.com/general/latest/gr/api-retries.html), verwenden Sie den optionalen [Name](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-Name)-Parameter, um das Erstellen von doppelten Erteilungen zu verhindern. Wenn AWS KMS eine `CreateGrant` Anfrage für einen Zuschuss mit den gleichen Eigenschaften wie ein vorhandener Zuschuss eingeht, einschließlich des Namens, wird die Anfrage als Wiederholungsversuch erkannt und kein neuer Zuschuss erstellt. Sie können nicht den `Name`-Wert verwenden, um die Erteilung in einer AWS KMS -Produktion zu identifizieren.

**Wichtig**  
Geben Sie keine vertraulichen oder sensiblen Informationen im Namen der Erteilung an. Es kann als Klartext in CloudTrail Protokollen und anderen Ausgaben erscheinen.

```
$ aws kms create-grant \
    --name IT-1234abcd-keyUserRole-decrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --constraints EncryptionContextSubset={Department=IT}
```

Codebeispiele, die zeigen, wie Zuschüsse in verschiedenen Programmiersprachen erstellt werden, finden Sie unter[Verwendung `CreateGrant` mit einem AWS SDK oder CLI](example_kms_CreateGrant_section.md).

### Verwenden von Erteilungs-Einschränkungen
<a name="grant-constraints"></a>

[Erteilungs-Einschränkungen](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) legen Bedingungen für die Berechtigungen fest, die der Empfänger-Prinzipal ausführen kann. Erteilungs-Einschränkungen treten an die Stelle von [Bedingungsschlüssel](policy-conditions.md) in einer [Schlüsselrichtlinie](key-policies.md) oder [IAM-Richtlinie](iam-policies.md). Jeder Erteilungs-Einschränkungs-Wert kann bis zu 8 Verschlüsselungskontext-Paare enthalten. Der Verschlüsselungskontext-Wert in jeder Erteilungs-Einschränkung darf 384 Zeichen nicht überschreiten.

**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.

AWS KMS unterstützt zwei Grant-Beschränkungen `EncryptionContextEquals` und`EncryptionContextSubset`, die beide Anforderungen an den [Verschlüsselungskontext](encrypt_context.md) bei einer Anforderung für einen kryptografischen Vorgang festlegen. 

Die Verschlüsselungskontext-Erteilungs-Einschränkungen sind für die Verwendung mit [Erteilungs-Operationen](grants.md#terms-grant-operations) entworfen, die einen Verschlüsselungskontext-Parameter haben. 
+ Beschränkungen für den Verschlüsselungskontext gelten nur in einer Erteilung für einen KMS-Schlüssel mit symmetrischer Verschlüsselung. Kryptografische Operationen mit asymmetrischen KMS-Schlüsseln unterstützen keinen Verschlüsselungskontext.
+ Die Verschlüsselungskontext-Einschränkung wird für `DescribeKey`- und `RetireGrant`-Operationen ignoriert. `DescribeKey` und `RetireGrant` haben keinen Verschlüsselungskontext-Parameter, aber Sie können diese Operationen in eine Erteilung einschließen, die über eine Verschlüsselungskontext-Einschränkung verfügt.
+ Sie können eine Verschlüsselungskontext-Einschränkung in einer Erteilung für die `CreateGrant`-Produktion verwenden. Die Verschlüsselungskontext-Einschränkung erfordert, dass alle Erteilungen, die mit der `CreateGrant`-Berechtigung erstellt wurden, eine ebenso strenge oder strengere Verschlüsselungskontext-Einschränkung haben.

AWS KMS unterstützt die folgenden Gewährungsbeschränkungen für den Verschlüsselungskontext.

**EncryptionContextEquals**  
Verwenden Sie `EncryptionContextEquals`, um den exakten Verschlüsselungskontext für zulässige Anforderungen anzugeben.   
`EncryptionContextEquals` erfordert, dass die Verschlüsselungskontext-Paare in der Anforderung genau mit den Verschlüsselungskontext-Paaren in der Erteilungs-Einschränkung übereinstimmen (inkl. Groß-/Kleinschreibung). Die Paare können in beliebiger Reihenfolge erscheinen. Die Schlüssel und Werte in den Paaren können nicht variieren.   
Zum Beispiel, wenn die `EncryptionContextEquals`-Erteilungs-Einschränkung das `"Department": "IT"`-Verschlüsselungskontext-Paar erfordert, erlaubt die Erteilung Anforderungen des angegebenen Typs nur dann, wenn der Verschlüsselungskontext in der Anforderung genau `"Department": "IT"` ist.

**EncryptionContextSubset**  
Verwenden Sie `EncryptionContextSubset`, um zu erfordern, dass Anforderungen bestimmte Verschlüsselungskontext-Paare enthalten.  
`EncryptionContextSubset` erfordert, dass die Anforderung alle Verschlüsselungskontext-Paare in der Erteilungs-Einschränkung enthält (genaue Übereinstimmung, inkl. Groß-/Kleinschreibung), aber die Anforderung kann auch zusätzliche Verschlüsselungskontext-Paare enthalten. Die Paare können in beliebiger Reihenfolge erscheinen. Die Schlüssel und Werte in den Paaren können nicht variieren.   
Zum Beispiel, wenn die `EncryptionContextSubset`-Erteilungs-Einschränkung das `Department=IT`-Verschlüsselungskontext-Paar erfordert, erlaubt die Erteilung Anforderungen des angegebenen Typs nur dann, wenn der Verschlüsselungskontext in der Anforderung `"Department": "IT"` ist oder `"Department": "IT"` enthält, zusammen mit anderen Verschlüsselungskontext-Paaren, z. B. `"Department": "IT","Purpose": "Test"`.

Verwenden Sie den `Constraints` Parameter im [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Vorgang, um eine Einschränkung für den Verschlüsselungskontext in einer Gewährung für einen symmetrischen Verschlüsselungs-KMS-Schlüssel anzugeben. Die Erteilung, die dieser Befehl erstellt, gewährt Benutzern, die die `keyUserRole`-Rolle annehmen dürfen, die Erlaubnis, die [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)-Operation aufzurufen. Diese Berechtigung ist jedoch nur wirksam, wenn der Verschlüsselungskontext in der `Decrypt`-Anforderung ein `"Department": "IT"`-Verschlüsselungskontext-Paar ist.

```
$ aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --constraints EncryptionContextEquals={Department=IT}
```

Die resultierende Erteilung sieht wie die folgende aus. Beachten Sie, dass die erteilte Berechtigung für die `keyUserRole`-Rolle nur wirksam ist, wenn die `Decrypt`-Anforderung das Verschlüsselungskontextpaar enthält, das in der Erteilungseinschränkung angegeben ist. Verwenden Sie den [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)Vorgang, um die Grants für einen KMS-Schlüssel zu finden.

```
$ aws kms list-grants --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
{
    "Grants": [
        {
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a",
            "Operations": [
                "Decrypt"
            ],
            "GranteePrincipal": "arn:aws:iam::111122223333:role/keyUserRole",
            "Constraints": {
                "EncryptionContextEquals": {
                    "Department": "IT"
                }
            },
            "CreationDate": 1568565290.0,
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole"
        }
    ]
}
```

Um die `EncryptionContextEquals`-Erteilungs-Einschränkung zu erfüllen, muss der Verschlüsselungskontext in der Anforderung für die `Decrypt`-Produktion ein `"Department": "IT"`-Paar sein. Eine Anforderung wie die folgende vom Empfänger-Prinzipal würde die `EncryptionContextEquals`-Erteilungs-Einschränkung erfüllen.

```
$ aws kms decrypt \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\
    --ciphertext-blob fileb://encrypted_msg \
    --encryption-context Department=IT
```

Wenn die Erteilungs-Einschränkung `EncryptionContextSubset` ist, müssen die Verschlüsselungskontext-Paare in der Anforderung die Verschlüsselungskontext-Paare in der Erteilungs-Einschränkung beinhalten, aber die Anforderung kann auch andere Verschlüsselungskontext-Paare enthalten. Die folgende Erteilungs-Einschränkung erfordert, dass eines der Verschlüsselungskontext-Paare in der Anforderung `"Deparment": "IT"` ist.

```
"Constraints": {
   "EncryptionContextSubset": {
       "Department": "IT"
   }
}
```

Eine Anforderung wie die folgende vom Empfänger-Prinzipal würde sowohl die `EncryptionContextEqual`- und `EncryptionContextSubset`-Erteilungs-Einschränkung in diesem Beispiel erfüllen.

```
$ aws kms decrypt \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --ciphertext-blob fileb://encrypted_msg \
    --encryption-context Department=IT
```

Eine Anforderung wie die folgende vom Empfänger-Prinzipal würde die `EncryptionContextSubset`-Erteilungs-Einschränkung erfüllen, aber nicht die `EncryptionContextEquals`-Erteilungs-Einschränkung.

```
$ aws kms decrypt \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --ciphertext-blob fileb://encrypted_msg \
    --encryption-context Department=IT,Purpose=Test
```

AWS Dienste verwenden häufig Einschränkungen des Verschlüsselungskontextes in den Zuweisungen, die ihnen die Erlaubnis geben, KMS-Schlüssel in Ihrem System zu verwenden AWS-Konto. Beispielsweise verwendet Amazon DynamoDB eine Erteilung wie die folgende, um die Berechtigung zu erhalten, den [Von AWS verwalteter Schlüssel](concepts.md#aws-managed-key) für DynamoDB in Ihrem Konto zu verwenden. Die `EncryptionContextSubset`-Erteilungseinschränkung in dieser Erteilung macht die Berechtigungen in der Erteilung nur wirksam, wenn der Verschlüsselungskontext in der Anforderung `"subscriberID": "111122223333"`- und `"tableName": "Services"`-Paare enthält. Diese Erteilungs-Einschränkung bedeutet, dass die Erteilung es DynamoDB erlaubt, den angegebenen KMS-Schlüssel nur für eine bestimmte Tabelle in Ihrem AWS-Konto zu verwenden.

Um diese Ausgabe zu erhalten, führen Sie den [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)Vorgang Von AWS verwalteter Schlüssel für DynamoDB in Ihrem Konto aus.

```
$ aws kms list-grants --key-id 0987dcba-09fe-87dc-65ba-ab0987654321

{
    "Grants": [
        {
            "Operations": [
                "Decrypt",
                "Encrypt",
                "GenerateDataKey",
                "ReEncryptFrom",
                "ReEncryptTo",
                "RetireGrant",
                "DescribeKey"
            ],
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "Constraints": {
                "EncryptionContextSubset": {
                    "aws:dynamodb:tableName": "Services",
                    "aws:dynamodb:subscriberId": "111122223333"
                }
            },
            "CreationDate": 1518567315.0,
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
            "GranteePrincipal": "dynamodb.us-west-2.amazonaws.com",
            "RetiringPrincipal": "dynamodb.us-west-2.amazonaws.com",
            "Name": "8276b9a6-6cf0-46f1-b2f0-7993a7f8c89a",
            "GrantId": "1667b97d27cf748cf05b487217dd4179526c949d14fb3903858e25193253fe59"
        }
    ]
}
```

## Genehmigung erteilen CreateGrant
<a name="grant-creategrant"></a>

Eine Erteilung kann die Berechtigung zum Aufrufen der `CreateGrant`-Produktion enthalten. Aber wenn ein [Empfänger-Prinzipal](grants.md#terms-grantee-principal) die Berechtigung zum Aufrufen von `CreateGrant` von einer Erteilung erhält, und nicht von einer Richtlinie, ist diese Berechtigung eingeschränkt. 
+ Der Empfänger-Prinzipal kann nur Erteilungen erlauben, die einige oder alle Operationen in der übergeordneten Erteilung zulassen.
+ Die [Erteilungs-Einschränkungen](#grant-constraints) in den Erteilungen, die sie erstellen, müssen mindestens so streng sein wie die in der übergeordneten Erteilung.

Diese Einschränkungen gelten nicht für Prinzipale, die die `CreateGrant`-Berechtigung aus einer Richtlinie erhalten, obwohl ihre Berechtigungen durch [Richtlinienbedingungen](grant-authorization.md) eingeschränkt werden können.

Nehmen wir beispielsweise eine Erteilung, die es dem empfangenden Prinzipal ermöglicht, die `GenerateDataKey`-, `Decrypt`- und `CreateGrant`-Operationen aufzurufen. Wir nennen eine Erteilung, die die `CreateGrant`-Berechtigung erlaubt, eine *übergeordnete Erteilung*.

```
# The original grant in a ListGrants response.
{
    "Grants": [
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1572216195.0,
            "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a",
            "Operations": [
                "GenerateDataKey",
                "Decrypt",
                "CreateGrant
            ]
            "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole",
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GranteePrincipal": "arn:aws:iam::111122223333:role/keyUserRole",
            "Constraints": {
                "EncryptionContextSubset": {
                    "Department": "IT"
                }
            },
        }
    ]
}
```

Der Empfänger-Prinzipal exampleUser kann diese Berechtigung verwenden, um eine Erteilung zu erstellen, die eine Teilmenge der in der ursprünglichen Erteilung angegebenen Operationen enthält – z. B. `CreateGrant` und `Decrypt`. Die *untergeordnete Erteilung* kann keine anderen Operationen enthalten (z. B. `ScheduleKeyDeletion` oder `ReEncrypt`).

Außerdem müssen die [Erteilungs-Beschränkungen](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) in untergeordneten Erteilungen mindestens ebenso restriktiv sein, wie die in der übergeordneten Erteilungen. So kann die untergeordnete Erteilung beispielsweise Paare zu einer `EncryptionContextSubset`-Beschränkung in der übergeordneten Erteilung hinzufügen. Sie kann sie jedoch nicht entfernen. Die untergeordnete Erteilung kann eine `EncryptionContextSubset`-Beschränkung in eine `EncryptionContextEquals`-Beschränkung ändern – nicht jedoch umgekehrt.

Bewährte IAM-Methoden raten von der Verwendung von IAM-Benutzern mit langfristigen Anmeldeinformationen ab. Verwenden Sie nach Möglichkeit IAM-Rollen, die temporäre Anmeldeinformationen bereitstellen. Weitere Informationen finden Sie unter [Bewährte Methoden für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.

Beispielsweise kann der Empfänger-Prinzipal die `CreateGrant`-Berechtigung verwenden, die er von der übergeordneten Erteilung erhalten hat, um die folgende untergeordnete Erteilung zu erstellen Die Operationen in der untergeordneten Erteilung sind eine Teilmenge der Operationen in der übergeordneten Erteilung, und die Erteilungs-Beschränkungen sind restriktiver.

```
# The child grant in a ListGrants response.
{
    "Grants": [
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1572249600.0,
            "GrantId": "fedcba9999c1e2e9876abcde6e9d6c9b6a1987650000abcee009abcdef40183f",
            "Operations": [
                "CreateGrant"
                "Decrypt"
            ]
            "RetiringPrincipal": "arn:aws:iam::111122223333:user/exampleUser",
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GranteePrincipal": "arn:aws:iam::111122223333:user/anotherUser",
            "Constraints": {
                "EncryptionContextEquals": {
                    "Department": "IT"
                }
            },
        }
    ]
}
```

Der Empfänger-Prinzipal in der untergeordneten Erteilung, `anotherUser`, kann seine `CreateGrant`-Berechtigung zum Erstellen von Erteilungen verwenden. Allerdings müssen die Erteilungen, die `anotherUser` erstellt, die Operationen in der übergeordneten Erteilung oder in einer Teilmenge enthalten, und die Erteilungs-Einschränkungen müssen gleichwertig oder strenger sein. 

# Anzeigen einer Erteilung
<a name="grant-view"></a>

Verwenden Sie den [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)Vorgang, um den Zuschuss einzusehen. Sie müssen den KMS-Schlüssel angeben, für den die Erteilungen gelten. Sie können die Liste der Erteilungen auch nach Erteilungs-ID oder Empfänger-Prinzipal filtern. Weitere Beispiele finden Sie unter [Verwendung `ListGrants` mit einem AWS SDK oder CLI](example_kms_ListGrants_section.md).

Um alle Zuschüsse in der Region AWS-Konto und mit einem bestimmten [ausscheidenden Schulleiter](grants.md#terms-retiring-principal) einzusehen, verwenden Sie [ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html). Die Antworten enthalten Details zu den einzelnen Erteilungen.

**Anmerkung**  
Das `GranteePrincipal`-Feld in der `ListGrants`-Antwort enthält normalerweise den Berechtigungsprinzipal der Genehmigung. Handelt es sich bei der Hauptperson des Zuschusses jedoch um eine AWS Dienstleistung, enthält das `GranteePrincipal` Feld den [Dienstprinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), der für mehrere verschiedene Schulleiter stehen kann.

Mit dem folgenden Befehl werden beispielsweise alle Erteilungen für einen KMS-Schlüssel aufgeführt.

```
$  aws kms list-grants --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
{
    "Grants": [
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1572216195.0,
            "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a",
            "Constraints": {
                "EncryptionContextSubset": {
                    "Department": "IT"
                }
            },
            "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole",
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GranteePrincipal": "arn:aws:iam::111122223333:user/exampleUser",
            "Operations": [
                "Decrypt"
            ]
        }
    ]
}
```

# Verwenden eines Erteilungs-Token
<a name="using-grant-token"></a>

Die AWS KMS API folgt einem [späteren](grants.md#terms-eventual-consistency) Konsistenzmodell. Beim Erstellen einer Erteilung ist die Erteilung möglicherweise nicht sofort gültig. Es kann zu einer kurzen Verzögerung kommen, bevor die Änderung in allen Bereichen von AWS KMS verfügbar ist. In der Regel dauert es weniger als ein paar Sekunden, bis sich die Änderung im gesamten System verbreitet, in einigen Fällen kann es jedoch mehrere Minuten dauern. Sobald sich die Änderung vollständig im System verbreitet hat, kann der Empfänger-Prinzipal die Berechtigungen in der Berechtigungserteilung verwenden, ohne das Berechtigungserteilungs-Token oder irgendwelche Beweise für die Berechtigungserteilung anzugeben. Wenn ein Zuschuss jedoch so neu ist, dass er noch nicht allen bekannt ist AWS KMS, schlägt die Anfrage möglicherweise mit einem `AccessDeniedException` Fehler fehl.

Um die Berechtigungen in einer neuen Erteilung sofort zu verwenden, verwenden Sie den [Erteilungs-Token](grants.md#grant_token) für die Erteilung. Speichern Sie das Grant-Token, das der [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Vorgang zurückgibt. Reichen Sie dann das Grant-Token in der Anfrage für den AWS KMS Vorgang ein. Sie können ein Grant-Token für jede AWS KMS [Grant-Operation](grants.md#terms-grant-operations) einreichen und Sie können mehrere Grant-Token in derselben Anfrage einreichen.



Im folgenden Beispiel wird der `CreateGrant` Vorgang verwendet, um einen Zuschuss zu erstellen, der die Operationen [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)und [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) ermöglicht. Sie speichert das Erteilungs-Token, das `CreateGrant` in der `token`-Variable zurückgibt. Dann verwendet sie in einem Aufruf an die `GenerateDataKey`-Produktion das Erteilungs-Token in der `token`-Variable.

```
# Create a grant; save the grant token 
$ token=$(aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:user/appUser \
    --retiring-principal arn:aws:iam::111122223333:user/acctAdmin \
    --operations GenerateDataKey Decrypt \
    --query GrantToken \
    --output text)

# Use the grant token in a request
$ aws kms generate-data-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    –-key-spec AES_256 \
    --grant-tokens $token
```

Schulleiter mit entsprechender Genehmigung können ein Grant-Token auch verwenden, um einen neuen Grant zurückzuziehen, noch bevor der Grant vollständig verfügbar ist. AWS KMS(Die `RevokeGrant`-Produktion akzeptiert kein Erteilungs-Token.) Details hierzu finden Sie unter [Außerbetriebnahme und Widerruf von Erteilungen](grant-delete.md).

```
# Retire the grant
$ aws kms retire-grant --grant-token $token
```

# Außerbetriebnahme und Widerruf von Erteilungen
<a name="grant-delete"></a>

Um eine Erteilung zu löschen, müssen Sie sie aufheben oder widerrufen.

Die [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)Operationen [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)und sind einander sehr ähnlich. Beide Operationen löschen eine Erteilung, wodurch die Berechtigungen, die die Erteilung erlaubt, eliminiert werden. Der Hauptunterschied zwischen diesen Operationen besteht darin, wie sie autorisiert werden.

**RevokeGrant**  
Wie bei den meisten AWS KMS Vorgängen wird der Zugriff auf den `RevokeGrant` Vorgang durch [wichtige Richtlinien](key-policies.md) und [IAM-Richtlinien](iam-policies.md) gesteuert. Die [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)API kann von jedem Principal mit entsprechender `kms:RevokeGrant` Genehmigung aufgerufen werden. Diese Berechtigung ist in den Standard-Berechtigungen enthalten, die Schlüsseladministratoren erteilt werden. In der Regel widerrufen Administratoren eine Erteilung, um Berechtigungen zu verweigern, die die Erteilung erlaubt.

**RetireGrant**  
Die Erteilung bestimmt, wer sie aufheben kann. Mit diesem Entwurf können Sie den Lebenszyklus einer Erteilung steuern, ohne Schlüsselrichtlinien oder IAM-Richtlinien zu ändern. In der Regel können Sie eine Erteilung aufheben, wenn Sie die Berechtigungen nicht mehr benötigen.  
Eine Erteilung kann durch einen optionalen [ausscheidenden Prinzipal](grants.md#terms-retiring-principal), der in der Erteilung angegeben ist, aufgehoben werden. Der [Empfänger-Prinzipal](grants.md#terms-grantee-principal) kann die Erteilung auch aufheben, aber nur, wenn er auch ein ausscheidender Prinzipal ist oder die Erteilung die `RetireGrant`-Produktion enthält. Als Backup kann der Grant, AWS-Konto in dem der Grant erstellt wurde, den Grant zurückziehen.  
Es gibt eine `kms:RetireGrant`-Berechtigung, die in IAM-Richtlinien verwendet werden kann, aber sie verfügt über eingeschränkte Funktionalität. Prinzipale, die in der Erteilung angegeben sind, können eine Erteilung ohne die `kms:RetireGrant`-Berechtigung aufheben. Die `kms:RetireGrant`-Berechtigung allein erlaubt es Prinzipalen nicht, eine Erteilung aufzuheben. Die `kms:RetireGrant` Berechtigung ist in einer [wichtigen Richtlinie oder [Ressourcenkontrollrichtlinie](resource-control-policies.md)](key-policies.md) nicht wirksam.  
+ Um die Genehmigung zur Einstellung eines Zuschusses zu verweigern, können Sie eine `Deny` Aktion mit der entsprechenden `kms:RetireGrant` Genehmigung in Ihren IAM-Richtlinien verwenden.
+ Derjenige AWS-Konto , dem der KMS-Schlüssel gehört, kann die `kms:RetireGrant` Berechtigung an einen IAM-Prinzipal im Konto delegieren. 
+ Wenn es sich bei dem ausscheidenden Prinzipal um einen anderen handelt AWS-Konto, können die Administratoren des anderen Kontos die Erlaubnis `kms:RetireGrant` zum Ausscheiden des Zugriffs an einen IAM-Prinzipal in diesem Konto delegieren.

[Die AWS KMS API folgt einem späteren Konsistenzmodell.](grants.md#terms-eventual-consistency) Wenn Sie eine Erteilung erstellen, aufheben oder widerrufen, kann es zu einer kurzen Verzögerung kommen, bevor die Änderung in allen Bereichen von AWS KMS verfügbar ist. In der Regel dauert es weniger als ein paar Sekunden, bis sich die Änderung im gesamten System verbreitet, in einigen Fällen kann es jedoch mehrere Minuten dauern. Wenn Sie einen neuen Zuschuss sofort löschen müssen, bevor er vollständig verfügbar ist, [verwenden Sie ein Grant-Token AWS KMS, um den Grant](using-grant-token.md) zurückzuziehen. Sie können kein Erteilungs-Token verwenden, um eine Erteilung zu widerrufen.

# Bedingungsschlüssel für AWS KMS
<a name="policy-conditions"></a>

Sie können Bedingungen in den [Schlüsselrichtlinien und [IAM-Richtlinien](iam-policies.md)](key-policies.md) angeben, die den Zugriff auf AWS KMS Ressourcen steuern. Die Richtlinienanweisung ist nur wirksam, wenn diese Bedingungen erfüllt sind. Beispielsweise kann festgelegt werden, dass eine Richtlinienanweisung erst ab einem bestimmten Datum gilt. Sie können auch festlegen, dass eine Richtlinienanweisung den Zugriff nur steuert, wenn in einer API-Anforderung ein bestimmter Wert vorhanden ist.

Verwenden Sie *Bedingungsschlüssel* im [`Condition`-Element](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) einer Richtlinienanweisung mit [IAM-Bedingungs-Operatoren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), um Bedingungen festzulegen. Einige Bedingungsschlüssel gelten allgemein für AWS, andere sind spezifisch für. AWS KMS

Bedingungsschlüsselwerte müssen den Zeichen- und Kodierungsregeln für AWS KMS wichtige Richtlinien und IAM-Richtlinien entsprechen. 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*.

**Topics**
+ [

# AWS globale Bedingungsschlüssel
](conditions-aws.md)
+ [

# AWS KMS Bedingungsschlüssel
](conditions-kms.md)
+ [

# AWS KMS Bedingungsschlüssel für zertifizierte Plattformen
](conditions-attestation.md)

# AWS globale Bedingungsschlüssel
<a name="conditions-aws"></a>

AWS definiert [globale Bedingungsschlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#AvailableKeys), eine Reihe von Schlüsseln für Richtlinienbedingungen für alle AWS Dienste, die IAM für die Zugriffskontrolle verwenden. AWS KMS unterstützt alle globalen Bedingungsschlüssel. Sie können sie in AWS KMS wichtigen Richtlinien und IAM-Richtlinien verwenden.

Sie können beispielsweise den PrincipalArn globalen Bedingungsschlüssel [aws:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn) verwenden, um den Zugriff auf einen AWS KMS key (KMS-Schlüssel) nur dann zuzulassen, wenn der Principal in der Anfrage durch den Amazon-Ressourcennamen (ARN) im Bedingungsschlüsselwert repräsentiert wird. Um die [attributebasierte Zugriffskontrolle](abac.md) (ABAC) in zu unterstützen AWS KMS, können Sie den globalen Bedingungsschlüssel [aws:ResourceTag/*tag-key*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag) in einer IAM-Richtlinie verwenden, um den Zugriff auf KMS-Schlüssel mit einem bestimmten Tag zu ermöglichen.

Um zu verhindern, dass ein AWS Dienst in einer Richtlinie, in der der Principal ein [AWS Dienstprinzipal ist, als verwirrter Stellvertreter verwendet wird, können Sie die globalen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) Bedingungsschlüssel oder verwenden. [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) Details hierzu finden Sie unter [Verwenden der Bedingungsschlüssel `aws:SourceArn` oder `aws:SourceAccount`](least-privilege.md#least-privilege-source-arn).

Informationen zu AWS globalen Bedingungsschlüsseln, einschließlich der Anforderungstypen, in denen sie verfügbar sind, finden Sie unter [AWS Globale Bedingungskontextschlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) im *IAM-Benutzerhandbuch*. Beispiele für die Verwendung globaler Bedingungsschlüssel in IAM-Richtlinien finden Sie unter [Steuern des Zugriffs auf Anforderungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-requests) und [Steuern von Tag-Schlüsseln](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys) im *IAM-Benutzerhandbuch*.

Die folgenden Themen bieten spezielle Anleitungen für die Verwendung von Bedingungsschlüsseln basierend auf IP-Adressen und VPC-Endpunkten.

**Topics**
+ [

## Verwendung der IP-Adressbedingung in Richtlinien mit Berechtigungen AWS KMS
](#conditions-aws-ip-address)
+ [

## Verwendung von VPC-Endpunktbedingungen in Richtlinien mit Berechtigungen AWS KMS
](#conditions-aws-vpce)
+ [

## Verwendung von IPv6 Adressen in IAM und in wichtigen Richtlinien AWS KMS
](#KMS-IPv6-policies)

## Verwendung der IP-Adressbedingung in Richtlinien mit Berechtigungen AWS KMS
<a name="conditions-aws-ip-address"></a>

Sie können AWS KMS es verwenden, um Ihre Daten in einem [integrierten AWS Dienst](service-integration.md) zu schützen. Seien Sie jedoch vorsichtig, wenn Sie die [Operatoren für die `aws:SourceIp` IP-Adressbedingung](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_IPAddress) oder den Bedingungsschlüssel in derselben Richtlinienerklärung angeben, die den Zugriff AWS KMS gewährt oder verweigert. Beispielsweise beschränkt die Richtlinie in [AWS: Verweigert den Zugriff auf AWS Basierend auf der Quell-IP](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html) AWS Aktionen auf Anfragen aus dem angegebenen IP-Bereich.

Betrachten Sie folgendes Szenario:

1. Sie fügen einer IAM-Identität eine Richtlinie wie die folgende hinzu [AWS: Verweigert den Zugriff auf AWS Basierend auf der Quell-IP](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html). Sie legen als Wert für den `aws:SourceIp`-Bedingungsschlüssel den IP-Adressbereich für das Unternehmen des Benutzers fest. Dieser IAM-Identität wurden andere Richtlinien angefügt, die es ihr erlauben, Amazon EBS, Amazon EC2 und AWS KMS zu verwenden.

1. Die Identität versucht, ein verschlüsseltes EBS-Volume an eine EC2-Instance anzufügen. Diese Aktion schlägt aufgrund eines Autorisierungsfehlers fehl, obwohl der Benutzer zur Verwendung aller relevanten Services berechtigt ist.

Schritt 2 schlägt fehl, weil die Anfrage AWS KMS zur Entschlüsselung des verschlüsselten Datenschlüssels des Volumes von einer IP-Adresse stammt, die mit der Amazon EC2 EC2-Infrastruktur verknüpft ist. Dieser Schritt wird nur erfolgreich durchgeführt, wenn die Anforderung von der IP-Adresse des ursprünglichen Benutzers stammt. Da die Richtlinie in Schritt 1 explizit alle Anforderungen von anderen als den angegebenen IP-Adressen ablehnt, wird die Berechtigung für Amazon EC2 zum Entschlüsseln des verschlüsselten Datenschlüssels des EBS-Datenträgers abgelehnt.

Weiterhin ist der Bedingungsschlüssel `aws:SourceIP` nicht wirksam, wenn die Anforderung von einem [Amazon-VPC-Endpunkt](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) kommt. Um Anforderungen an einen VPC-Endpunkt, einschließlich eines [AWS KMS -VPC-Endpunkts](kms-vpc-endpoint.md) zu beschränken, verwenden Sie die `aws:SourceVpce`- oder `aws:SourceVpc`-Bedingungsschlüssel. Weitere Informationen finden Sie unter [VPC-Endpunkte – Steuern der Nutzung von Endpunkten](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html#vpc-endpoints-iam-access) im *Amazon VPC-Benutzerhandbuch*. 

## Verwendung von VPC-Endpunktbedingungen in Richtlinien mit Berechtigungen AWS KMS
<a name="conditions-aws-vpce"></a>

[AWS KMS unterstützt Amazon Virtual Private Cloud (Amazon VPC) -Endpunkte](kms-vpc-endpoint.md), die von betrieben werden. [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html#what-is-privatelink) Sie können die folgenden [globalen Bedingungsschlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#AvailableKeys) in wichtigen Richtlinien und IAM-Richtlinien verwenden, um den Zugriff auf AWS KMS Ressourcen zu steuern, wenn die Anfrage von einer VPC kommt oder einen VPC-Endpunkt verwendet. Details hierzu finden Sie unter [Verwenden Sie VPC-Endpunkte, um den Zugriff auf Ressourcen zu kontrollieren AWS KMS](vpce-policy-condition.md).
+ `aws:SourceVpc` beschränkt den Zugriff auf Anforderungen von der angegebenen VPC. 
+ `aws:SourceVpce` beschränkt den Zugriff auf Anforderungen vom angegebenen VPC-Endpunkt. 

Wenn Sie diese Bedingungsschlüssel verwenden, um den Zugriff auf KMS-Schlüssel zu steuern, verweigern Sie möglicherweise versehentlich den Zugriff auf AWS Dienste, die in Ihrem Namen verwendet werden. AWS KMS 

Seien Sie sorgsam darum bemüht, eine Situation wie das [IP-Adressen-Bedingungsschlüssel](#conditions-aws-ip-address) Beispiel zu vermeiden. Wenn Sie Anfragen für einen KMS-Schlüssel auf einen VPC- oder VPC-Endpunkt beschränken, schlagen Aufrufe AWS KMS von einem integrierten Service wie Amazon S3 oder Amazon EBS möglicherweise fehl. Dies kann auch dann vorkommen, wenn die Quell-Anforderung letztendlich von der VPC oder dem VPC-Endpunkt stammt. 

## Verwendung von IPv6 Adressen in IAM und in wichtigen Richtlinien AWS KMS
<a name="KMS-IPv6-policies"></a>

Stellen Sie vor dem Zugriff sicher IPv6, AWS KMS dass alle Schlüssel- und IAM-Richtlinien, die IP-Adressbeschränkungen enthalten, so aktualisiert wurden, dass sie auch IPv6 Adressbereiche enthalten. IP-basierte Richtlinien, die nicht für den Umgang mit IPv6 Adressen aktualisiert wurden, können dazu führen, dass Clients fälschlicherweise Zugriff verlieren oder erhalten, wenn sie sie verwenden IPv6. Allgemeine Hinweise zu KMS-Zugriffskontrollen finden Sie unter[KMS-Schlüsselzugriff und -berechtigungen](control-access.md). Weitere Informationen zur KMS- und Dual-Stack-Unterstützung finden Sie unter[Unterstützung für Dual-Stack-Endpunkte](ipv6-kms.md).

**Wichtig**  
Diese Anweisungen lassen keine Aktionen zu. Verwenden Sie diese Anweisungen in Kombination mit anderen Anweisungen, die bestimmte Aktionen zulassen.

Die folgende Anweisung verweigert ausdrücklich den Zugriff auf alle KMS-Berechtigungen für Anfragen, die aus dem `192.0.2.*` IPv4 Adressbereich stammen. Allen IP-Adressen außerhalb dieses Bereichs werden KMS-Berechtigungen nicht ausdrücklich verweigert. Da sich alle IPv6 Adressen außerhalb des verweigerten Bereichs befinden, verweigert diese Anweisung nicht ausdrücklich KMS-Berechtigungen für IPv6 Adressen.

```
{
     "Sid": "DenyKMSPermissions",
     "Effect": "Deny",
    "Action": [
        "kms:*"
    ],
    "Resource": "*",
    "Condition": {
        "NotIpAddress": {
            "aws:SourceIp": [ 
                "192.0.2.0/24"
            ]
        }
    }
}
```

Sie können das `Condition` Element so ändern, dass sowohl IPv4 (`192.0.2.0/24`) als auch IPv6 (`2001:db8:1234::/32`) Adressbereiche verweigert werden, wie im folgenden Beispiel gezeigt.

```
{
    "Sid": "DenyKMSPermissions",
    "Effect": "Deny",
    "Action": [
        "kms:*"
    ],
    "Resource": "*",
    "Condition": {
        "NotIpAddress": {
            "aws:SourceIp": [ 
                "192.0.2.0/24",
                "2001:db8:1234::/32"
            ]
        }
    }
}
```

# 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)

# AWS KMS Bedingungsschlüssel für zertifizierte Plattformen
<a name="conditions-attestation"></a>

AWS KMS bietet Zustandsschlüssel zur Unterstützung der kryptografischen Bescheinigung für [AWS Nitro Enclaves und NitroTPM](https://docs.aws.amazon.com/enclaves/latest/user/). AWS Nitro Enclaves ist eine Amazon EC2 EC2-Funktion, mit der Sie isolierte Computerumgebungen, sogenannte [Enklaven](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-concepts.html#term-enclave), erstellen können, um hochsensible Daten zu schützen und zu verarbeiten. NitroTPM erweitert ähnliche Bestätigungsfunktionen auf EC2-Instances.

Wenn Sie die [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) -,, [DeriveSharedSecret[GenerateDataKey[GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret), oder [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)API-Operationen mit einem signierten Beglaubigungsdokument aufrufen, APIs verschlüsseln diese den Klartext in der Antwort unter dem öffentlichen Schlüssel aus dem Beglaubigungsdokument und geben Chiffretext statt Klartext zurück. Dieser Geheimtext kann nur mit dem privaten Schlüssel in der Enklave entschlüsselt werden. Weitere Informationen finden Sie unter [Unterstützung für kryptografische Bescheinigungen in AWS KMS](cryptographic-attestation.md).

**Anmerkung**  
Wenn Sie bei der Erstellung eines Schlüssels keine Schlüsselrichtlinie angeben, wird eine für Sie erstellt. AWS KMS AWS Diese [Standard-Schlüsselrichtlinie](key-policy-default.md) gewährt denjenigen AWS-Konten , denen der KMS-Schlüssel gehört, vollen Zugriff auf den Schlüssel und ermöglicht es dem Konto, IAM-Richtlinien zu verwenden, um den Zugriff auf den Schlüssel zu ermöglichen. Diese Richtlinie ermöglicht alle Aktionen wie [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html). AWS empfiehlt, Principal of [Berechtigungen mit den geringsten Rechten](least-privilege.md) auf Ihre KMS-Schlüsselrichtlinien anzuwenden. Sie können den Zugriff auch einschränken, indem Sie [die Aktion der KMS-Schlüsselrichtlinie für `kms:*` to ändern](key-policy-modifying.md)`[NotAction:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notaction.html)kms:Decrypt`.

Mit den folgenden Bedingungsschlüsseln können Sie die Berechtigungen für diese Operationen anhand des Inhalts des signierten Bescheinigungsdokuments einschränken. Bevor Sie einen Vorgang zulassen, wird das Bestätigungsdokument mit den Werten in diesen AWS KMS Bedingungsschlüsseln AWS KMS verglichen.

# Bedingungsschlüssel für Nitro Enclaves
<a name="conditions-nitro-enclave"></a>

Die folgenden Zustandsschlüssel sind spezifisch für die Nitro Enclaves-Bescheinigung:

## km: 384 RecipientAttestation ImageSha
<a name="conditions-kms-recipient-image-sha"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:RecipientAttestation:ImageSha384`  |  Zeichenfolge  | Einzelwertig |  `Decrypt` `DeriveSharedSecret` `GenerateDataKey` `GenerateDataKeyPair` `GenerateRandom`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Der `kms:RecipientAttestation:ImageSha384` Bedingungsschlüssel steuert den Zugriff auf `Decrypt``DeriveSharedSecret`,`GenerateDataKey`,`GenerateDataKeyPair`, und `GenerateRandom` mit einem KMS-Schlüssel, wenn der Bildauszug aus dem signierten Bestätigungsdokument in der Anforderung mit dem Wert im Bedingungsschlüssel übereinstimmt. Der `ImageSha384` Wert entspricht dem Wert PCR0 im Beglaubigungsdokument. Dieser Bedingungsschlüssel ist nur wirksam, wenn der `Recipient` Parameter in der Anforderung ein signiertes Bestätigungsdokument für eine Nitro-Enklave angibt. AWS 

Dieser Wert ist auch in [CloudTrailEreignissen](ct-nitro-enclave.md) für Anfragen an Nitro-Enklaven enthalten. AWS KMS 

Die folgende wichtige Richtlinienanweisung ermöglicht es der `data-processing` Rolle beispielsweise, den KMS-Schlüssel für [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) -,, [DeriveSharedSecret[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret), [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)- und -Operationen zu verwenden. [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html) Der `kms:RecipientAttestation:ImageSha384` Bedingungsschlüssel lässt die Operationen nur zu, wenn der Image-Digest-Wert (PCR0) des Bestätigungsdokuments in der Anforderung mit dem Image-Digest-Wert in der Bedingung übereinstimmt. Dieser Bedingungsschlüssel ist nur wirksam, wenn der `Recipient` Parameter in der Anforderung ein signiertes Bestätigungsdokument für eine Nitro-Enklave spezifiziert. AWS 

Wenn die Anfrage kein gültiges Bescheinigungsdokument aus einer AWS Nitro-Enklave enthält, wird die Genehmigung verweigert, da diese Bedingung nicht erfüllt ist.

```
{
  "Sid" : "Enable enclave data processing",
  "Effect" : "Allow",
  "Principal" : {
    "AWS" : "arn:aws:iam::111122223333:role/data-processing"
  },
  "Action": [
    "kms:Decrypt",
    "kms:DeriveSharedSecret",
    "kms:GenerateDataKey",
    "kms:GenerateDataKeyPair",
    "kms:GenerateRandom"
  ],
  "Resource" : "*",
  "Condition": {
    "StringEqualsIgnoreCase": {
      "kms:RecipientAttestation:ImageSha384": "9fedcba8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef1abcdef0abcdef1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef99"
    }
  }
}
```

## RecipientAttestationkm: :PCR <PCR\$1ID>
<a name="conditions-kms-recipient-pcrs"></a>


| AWS KMS Zustandsschlüssel | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:RecipientAttestation:PCR<PCR_ID>`  |  Zeichenfolge  | Einzelwertig |  `Decrypt` `DeriveSharedSecret` `GenerateDataKey` `GenerateDataKeyPair` `GenerateRandom`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Der `kms:RecipientAttestation:PCR<PCR_ID>` Bedingungsschlüssel steuert den Zugriff auf `Decrypt``DeriveSharedSecret`,`GenerateDataKey`,`GenerateDataKeyPair`, und `GenerateRandom` mit einem KMS-Schlüssel nur, wenn die Registrierung (PCRs) der Plattformkonfiguration aus dem signierten Bestätigungsdokument in der Anfrage mit denen PCRs im Bedingungsschlüssel übereinstimmt. Dieser Bedingungsschlüssel ist nur wirksam, wenn der `Recipient` Parameter in der Anfrage ein signiertes Bestätigungsdokument aus einer Nitro-Enklave angibt. AWS 

Dieser Wert ist auch in [CloudTrailEreignissen](ct-nitro-enclave.md) enthalten, die Anfragen an Nitro-Enklaven darstellen. AWS KMS 

Verwenden Sie das folgende Format, um einen PCR-Wert anzugeben. Verketten Sie die PCR-ID mit dem Bedingungsschlüssel-Namen. Sie können eine PCR-ID angeben, die eine der [sechs Enklavenmessungen](https://docs.aws.amazon.com/enclaves/latest/user/set-up-attestation.html#where) identifiziert, oder eine benutzerdefinierte PCR-ID, die Sie für einen bestimmten Anwendungsfall definiert haben. Der PCR-Wert muss eine Hexadezimalzeichenfolge in Kleinbuchstaben von bis zu 96 Bytes sein.

```
"kms:RecipientAttestation:PCRPCR_ID": "PCR_value"
```

Der folgende Bedingungsschlüssel gibt beispielsweise einen bestimmten Wert für an PCR1, der dem Hash des Kernels entspricht, der für die Enklave und den Bootstrap-Prozess verwendet wird.

```
kms:RecipientAttestation:PCR1: "abc1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef8abcdef9abcdef8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef0abcde"
```

Die folgende Beispiel-Schlüsselrichtlinienanweisung erlaubt es der`data-processing` -Rolle, den KMS-Schlüssel für die Operation [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) zu verwenden.

Der `kms:RecipientAttestation:PCR` Bedingungsschlüssel in dieser Anweisung lässt den Vorgang nur zu, wenn der PCR1 Wert im signierten Bestätigungsdokument in der Anforderung mit dem `kms:RecipientAttestation:PCR1` Wert in der Bedingung übereinstimmt. Verwenden des `StringEqualsIgnoreCase`-Richtlinienoperators, um einen Vergleich der PCR-Werte ohne Berücksichtigung der Groß-/Kleinschreibung zu erfordern.

Wenn die Anforderung kein Bescheinigungsdokument enthält, wird die Berechtigung verweigert, da diese Bedingung nicht erfüllt ist.

```
{
  "Sid" : "Enable enclave data processing",
  "Effect" : "Allow",
  "Principal" : {
    "AWS" : "arn:aws:iam::111122223333:role/data-processing"
  },
  "Action": "kms:Decrypt",
  "Resource" : "*",
  "Condition": {
    "StringEqualsIgnoreCase": {
      "kms:RecipientAttestation:PCR1": "abc1de4f2dcf774f6e3b679f62e5f120065b2e408dcea327bd1c9dddaea6664e7af7935581474844767453082c6f1586116376cede396a30a39a611b9aad7966c87"
    }
  }
}
```

# Bedingungsschlüssel für NitroTPM
<a name="conditions-nitro-tpm"></a>

Die folgenden Zustandsschlüssel sind spezifisch für die NitroTPM-Bescheinigung:

## kmsRecipientAttestation:: NitroTPMPCR <PCR\$1ID>
<a name="conditions-kms-recipient-nitro-tpm-pcrs"></a>


| AWS KMS Zustandstasten | Bedingungstyp | Werttyp | API-Operationen | Richtlinientyp | 
| --- | --- | --- | --- | --- | 
|  `kms:RecipientAttestation:NitroTPMPCR<PCR_ID>`  |  Zeichenfolge  | Einzelwertig |  `Decrypt` `DeriveSharedSecret` `GenerateDataKey` `GenerateDataKeyPair` `GenerateRandom`  |  Schlüsselrichtlinien und IAM-Richtlinien  | 

Der `kms:RecipientAttestation:NitroTPMPCR<PCR_ID>` Bedingungsschlüssel steuert den Zugriff auf `Decrypt``DeriveSharedSecret`,`GenerateDataKey`,`GenerateDataKeyPair`, und `GenerateRandom` mit einem KMS-Schlüssel nur, wenn die Registrierung (PCRs) der Plattformkonfiguration aus dem signierten Bestätigungsdokument in der Anfrage mit denen PCRs im Bedingungsschlüssel übereinstimmt. Dieser Bedingungsschlüssel ist nur wirksam, wenn der `Recipient` Parameter in der Anfrage ein signiertes Bestätigungsdokument von NitroTPM spezifiziert.

Dieser Wert ist auch in [CloudTrailEreignissen](ct-nitro-tpm.md) enthalten, die Anfragen an NitroTPM darstellen. AWS KMS 

Verwenden Sie das folgende Format, um einen PCR-Wert anzugeben. Verketten Sie die PCR-ID mit dem Bedingungsschlüssel-Namen. Der PCR-Wert muss eine Hexadezimalzeichenfolge in Kleinbuchstaben von bis zu 96 Bytes sein.

```
"kms:RecipientAttestation:NitroTPMPCRPCR_ID": "PCR_value"
```

Der folgende Bedingungsschlüssel gibt beispielsweise einen bestimmten Wert für an: PCR4

```
kms:RecipientAttestation:NitroTPMPCR4: "abc1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef8abcdef9abcdef8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef0abcde"
```

Die folgende Beispiel-Schlüsselrichtlinienanweisung erlaubt es der`data-processing` -Rolle, den KMS-Schlüssel für die Operation [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) zu verwenden.

Der `kms:RecipientAttestation:NitroTPMPCR` Bedingungsschlüssel in dieser Anweisung ermöglicht den Vorgang nur, wenn der PCR4 Wert im signierten Bestätigungsdokument in der Anforderung mit dem `kms:RecipientAttestation:NitroTPMPCR4` Wert in der Bedingung übereinstimmt. Verwenden des `StringEqualsIgnoreCase`-Richtlinienoperators, um einen Vergleich der PCR-Werte ohne Berücksichtigung der Groß-/Kleinschreibung zu erfordern.

Wenn die Anforderung kein Bescheinigungsdokument enthält, wird die Berechtigung verweigert, da diese Bedingung nicht erfüllt ist.

```
{
  "Sid" : "Enable NitroTPM data processing",
  "Effect" : "Allow",
  "Principal" : {
    "AWS" : "arn:aws:iam::111122223333:role/data-processing"
  },
  "Action": "kms:Decrypt",
  "Resource" : "*",
  "Condition": {
    "StringEqualsIgnoreCase": {
      "kms:RecipientAttestation:NitroTPMPCR4": "abc1de4f2dcf774f6e3b679f62e5f120065b2e408dcea327bd1c9dddaea6664e7af7935581474844767453082c6f1586116376cede396a30a39a611b9aad7966c87"
    }
  }
}
```

# Berechtigungen mit den geringsten Rechten
<a name="least-privilege"></a>

Da Ihre KMS-Schlüssel vertrauliche Informationen schützen, empfehlen wir, dem Prinzip des Zugriffs mit den geringsten Rechten zu folgen. Delegieren Sie die für die Ausführung einer Aufgabe erforderlichen Mindestberechtigungen, wenn Sie Ihre wichtigsten Richtlinien definieren. Lassen Sie alle Aktionen (`kms:*`) für eine KMS-Schlüsselrichtlinie nur zu, wenn Sie beabsichtigen, die Berechtigungen mit zusätzlichen IAM-Richtlinien weiter einzuschränken. [Wenn Sie beabsichtigen, Berechtigungen mit IAM-Richtlinien zu verwalten, schränken Sie ein, wer IAM-Richtlinien erstellen und an IAM-Prinzipale anhängen darf, und achten Sie auf Richtlinienänderungen.](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html#cloudwatch-alarms-for-cloudtrail-iam-policy-changes)

Wenn Sie alle Aktionen (`kms:*`) sowohl in der Schlüsselrichtlinie als auch in der IAM-Richtlinie zulassen, verfügt der Prinzipal sowohl über Administratorrechte als auch über Nutzungsberechtigungen für den KMS-Schlüssel. Aus Sicherheitsgründen empfehlen wir, diese Berechtigungen nur an bestimmte Prinzipale zu delegieren. Sie können dies tun, indem Sie den Prinzipal in der Schlüsselrichtlinie explizit benennen oder indem Sie einschränken, an welche Prinzipale die IAM-Richtlinie angehängt ist. Sie können auch [Bedingungsschlüssel verwenden, um Berechtigungen](policy-conditions.md) einzuschränken. Beispielsweise können Sie die verwenden, [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag)um alle Aktionen zuzulassen, wenn der Principal, der den API-Aufruf durchführt, das in der Bedingungsregel angegebene Tag hat.

Weitere Informationen darüber, wie Richtlinienaussagen bewertet werden AWS, finden Sie unter [Bewertungslogik für Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) im *IAM-Benutzerhandbuch*. Wir empfehlen, dieses Thema zu lesen, bevor Sie Richtlinien verfassen, um die Wahrscheinlichkeit zu verringern, dass Ihre Richtlinie unbeabsichtigte Auswirkungen hat, wie z. B. die Gewährung von Zugriff für Prinzipale, die keinen Zugriff haben sollten.

**Tipp**  
Wenn Sie eine Anwendung in einer Umgebung außerhalb der Produktionsumgebung testen, verwenden Sie [IAM Access Analyzer, um Ihren IAM-Richtlinien die geringsten Rechte](https://aws.amazon.com/iam/features/analyze-access/) zuzuweisen.

Wenn Sie IAM-Benutzer anstelle von IAM-Rollen verwenden, empfehlen wir dringend, die AWS [Multi-Faktor-Authentifizierung](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html) (MFA) zu aktivieren, um die Sicherheitsanfälligkeit langfristiger Anmeldeinformationen zu verringern. Über MFA können Sie die folgenden Aktionen ausführen: 
+ Erfordern Sie, dass Benutzer ihre Anmeldeinformationen mit MFA validieren, bevor sie privilegierte Aktionen ausführen, z. B. das Löschen von Schlüsseln planen.
+ Teilen Sie den Besitz eines Administratorkontokennworts und eines MFA-Geräts auf einzelne Personen auf, um die geteilte Autorisierung zu implementieren.

**Weitere Informationen**
+ [AWS verwaltete Richtlinien für Jobfunktionen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)
+ [Techniken zum Erstellen von IAM-Richtlinien mit geringsten Berechtigungen](https://aws.amazon.com//blogs/security/techniques-for-writing-least-privilege-iam-policies/)

## Implementieren der geringsten Berechtigungen
<a name="key-policy-least-privilege"></a>

Wenn Sie einem AWS Dienst die Erlaubnis zur Verwendung eines KMS-Schlüssels erteilen, stellen Sie sicher, dass die Berechtigung nur für die Ressourcen gilt, auf die der Dienst in Ihrem Namen zugreifen muss. Diese Strategie der geringsten Rechte trägt dazu bei, die unbefugte Verwendung eines KMS-Schlüssels zu verhindern, wenn Anfragen zwischen AWS Diensten weitergeleitet werden.

Um eine Strategie mit den geringsten Rechten zu implementieren, empfehlen wir die Verwendung von Bedingungsschlüsseln für den AWS KMS Verschlüsselungskontext und den globalen Quell-ARN- oder Quellkonto-Bedingungsschlüssel.

### Verwenden von Verschlüsselungskontext-Bedingungsschlüsseln
<a name="least-privilege-encryption-context"></a>

Die effektivste Methode zur Implementierung von Berechtigungen mit den geringsten Rechten bei der Nutzung von AWS KMS Ressourcen besteht darin, die [kms:EncryptionContextKeys](conditions-kms.md#conditions-kms-encryption-context-keys)Bedingungsschlüssel [kms:EncryptionContext:*context-key*](conditions-kms.md#conditions-kms-encryption-context)oder in die Richtlinie aufzunehmen, die es den Prinzipalen ermöglicht, AWS KMS kryptografische Operationen aufzurufen. Diese Bedingungsschlüssel sind besonders effektiv, da sie die Berechtigung mit dem [Verschlüsselungskontext](encrypt_context.md) verknüpfen, der an den Chiffretext gebunden ist, wenn die Ressource verschlüsselt wird. 

[Verwenden Sie Schlüssel für Bedingungen für den Verschlüsselungskontext nur, wenn es sich bei der Aktion in der Richtlinienanweisung um eine AWS KMS symmetrische kryptografische Operation handelt, die einen `EncryptionContext` Parameter benötigt, z. B. Operationen wie [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)oder Decrypt. [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) (Eine Liste der unterstützten Operationen finden Sie unter [kms:EncryptionContext:*context-key*](conditions-kms.md#conditions-kms-encryption-context) oder [kms:EncryptionContextKeys](conditions-kms.md#conditions-kms-encryption-context-keys).) Wenn Sie diese Bedingungsschlüssel verwenden, um z. B. andere Operationen zuzulassen, wird der [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)Zugriff verweigert.

Legen Sie den Wert auf den Verschlüsselungskontext fest, den der Service beim Verschlüsseln der Ressource verwendet. Diese Informationen finden Sie normalerweise im Kapitel zur Sicherheit in der Service-Dokumentation. Beispielsweise identifiziert der [Verschlüsselungskontext für AWS Proton](https://docs.aws.amazon.com/proton/latest/adminguide/data-protection.html#encryption-context) die AWS Proton-Ressource und die zugehörige Vorlage. Der [Verschlüsselungskontext für AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html#security-encryption-encryption-context) identifiziert das Geheimnis und seine Version. Der [Verschlüsselungskontext für Amazon Location](https://docs.aws.amazon.com/location/latest/developerguide/encryption-at-rest.html#location-encryption-context) identifiziert den Tracker oder die Erfassung. 

Die folgende Schlüsselrichtlinien-Beispielanweisung ermöglicht es Amazon Location Service, Erteilungen im Namen autorisierter Benutzer zu erstellen. Diese Richtlinienanweisung schränkt die Berechtigung ein, indem sie die Schlüssel [kms: ViaService](conditions-kms.md#conditions-kms-via-service), [kms:](conditions-kms.md#conditions-kms-caller-account) und `kms:EncryptionContext:context-key` condition verwendetCallerAccount, um die Berechtigung an eine bestimmte Tracker-Ressource zu binden.

```
{
  "Sid": "Allow Amazon Location to create grants on behalf of authorized users",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/LocationTeam"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": "geo.us-west-2.amazonaws.com",
      "kms:CallerAccount": "111122223333",
      "kms:EncryptionContext:aws:geo:arn": "arn:aws:geo:us-west-2:111122223333:tracker/SAMPLE-Tracker"
    }
  }
}
```

### Verwenden der Bedingungsschlüssel `aws:SourceArn` oder `aws:SourceAccount`
<a name="least-privilege-source-arn"></a>

Wenn der Prinzipal in einer Schlüsselrichtlinien-Anweisung ein [AWS -Service-Prinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) ist, empfehlen wir dringend, zusätzlich zum Bedingungsschlüssel `kms:EncryptionContext:context-key` die globalen Bedingungsschlüssel [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) oder [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) zu verwenden. Die ARN- und Kontowerte sind nur dann im Autorisierungskontext enthalten, wenn eine Anfrage AWS KMS von einem anderen AWS Dienst eingeht. Diese Kombination von Bedingungen implementiert die geringsten Berechtigungen und verhindert ein potenzielles [Szenario des verwirrten Stellvertreters](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). Dienstprinzipale werden normalerweise nicht als Prinzipale in einer wichtigen Richtlinie verwendet, aber für einige AWS Dienste, z. B. AWS CloudTrail, ist dies erforderlich. 

Um die globalen Bedingungsschlüssel `aws:SourceArn` oder `aws:SourceAccount` zu verwenden, legen Sie den Wert auf den Amazon-Ressourcennamen (ARN) oder das Konto der Ressource fest, die verschlüsselt wird. In einer Schlüsselrichtlinien-Anweisung, die AWS CloudTrail die Berechtigung zum Verschlüsseln eines Trail gibt, legen Sie den Wert von `aws:SourceArn` auf den ARN des Trail fest. Nutzen Sie, wann immer möglich, den spezifischeren Wert `aws:SourceArn`. Legen Sie den Wert auf den ARN oder ein ARN-Muster mit Platzhalterzeichen fest. Wenn Sie den ARN der Ressource nicht kennen, verwenden Sie stattdessen `aws:SourceAccount`.

**Anmerkung**  
Wenn ein Ressourcen-ARN Zeichen enthält, die in einer AWS KMS Schlüsselrichtlinie nicht zulässig sind, können Sie diesen Ressourcen-ARN nicht im Wert des `aws:SourceArn` Bedingungsschlüssels verwenden. Verwenden Sie stattdessen den Bedingungsschlüssel `aws:SourceAccount`. Weitere Informationen zu Dokumentenregeln für Schlüsselrichtlinien finden Sie unter [Schlüsselrichtlinienformat](key-policy-overview.md#key-policy-format).

In der folgenden Beispiel-Schlüsselrichtlinie ist der Prinzipal, der die Berechtigungen erhält, der AWS CloudTrail -Service-Prinzipal `cloudtrail.amazonaws.com`. Um die geringsten Berechtigungen zu implementieren, verwendet diese Richtlinie die Bedingungsschlüssel `aws:SourceArn` und `kms:EncryptionContext:context-key` Die Richtlinienanweisung ermöglicht CloudTrail die Verwendung des KMS-Schlüssels zur [Generierung des Datenschlüssels](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), der zur Verschlüsselung eines Trails verwendet wird. Die Bedingungen `aws:SourceArn` und `kms:EncryptionContext:context-key` werden unabhängig ausgewertet. Jede Anforderung, den KMS-Schlüssel für die angegebene Produktion zu verwenden, muss beide Bedingungen erfüllen.

Um die Berechtigung des Services auf den `finance`-Trail im Beispielkonto (111122223333) und die Region `us-west-2` zu beschränken, legt diese Richtlinienanweisung den Bedingungsschlüssel `aws:SourceArn` auf den ARN eines bestimmten Trail fest. Die Bedingungsanweisung verwendet den [ArnEquals](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN)Operator, um sicherzustellen, dass jedes Element im ARN beim Abgleich unabhängig ausgewertet wird. Das Beispiel verwendet den Bedingungsschlüssel `kms:EncryptionContext:context-key` auch, um die Berechtigung auf Trail in einem bestimmten Konto und einer bestimmten Region zu beschränken. 

Bevor Sie diese Schlüsselrichtlinie verwenden, ersetzen Sie die Beispiel-Konto-ID, die Region und den Trail-Namen durch gültige Werte aus Ihrem Konto.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCloudTrailToEncryptLogs",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudtrail.amazonaws.com"
      },
      "Action": "kms:GenerateDataKey",
      "Resource": "*",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:cloudtrail:us-west-2:111122223333:trail/finance"
          ]
        },
        "StringLike": {
          "kms:EncryptionContext:aws:cloudtrail:arn": [
            "arn:aws:cloudtrail:*:111122223333:trail/*"
          ]
        }
      }
    }
  ]
}
```

------

# ABAC für AWS KMS
<a name="abac"></a>

Die attributebasierte Zugriffskontrolle (ABAC) ist eine Autorisierungsstrategie, die Berechtigungen auf der Grundlage von Attributen definiert. AWS KMS unterstützt ABAC, indem es Ihnen ermöglicht, den Zugriff auf Ihre vom Kunden verwalteten Schlüssel auf der Grundlage der mit den KMS-Schlüsseln verknüpften Tags und Aliasnamen zu kontrollieren. Die Tag- und Alias-Bedingungsschlüssel, die ABAC ermöglichen, AWS KMS bieten eine leistungsstarke und flexible Möglichkeit, Principals zur Verwendung von KMS-Schlüsseln zu autorisieren, ohne Richtlinien bearbeiten oder Zuschüsse verwalten zu müssen. Sie sollten diese Funktion jedoch mit Vorsicht verwenden, damit Prinzipalen der Zugriff nicht versehentlich zugelassen oder verweigert wird. 

Wenn Sie ABAC verwenden, beachten Sie, dass die Berechtigung zum Verwalten von Tags und Aliassen jetzt eine Zugriffssteuerungs-Berechtigung ist. Stellen Sie sicher, dass Sie die vorhandenen Tags und Aliasse für alle KMS-Schlüssel kennen, bevor Sie eine Richtlinie bereitstellen, die von Tags oder Aliassen abhängt. Treffen Sie angemessene Vorsichtsmaßnahmen beim Hinzufügen, Löschen und Aktualisieren von Aliassen sowie beim Markieren und Entmarkieren von Schlüsseln. Erteilen Sie Berechtigungen zum Verwalten von Tags und Aliassen nur Prinzipalen, die sie benötigen, und beschränken Sie die Tags und Aliasse, die sie verwalten können. 

**Hinweise**  
Achten Sie bei der Verwendung von ABAC für darauf AWS KMS, den Prinzipalen die Erlaubnis zur Verwaltung von Tags und Aliasnamen zu erteilen. Wenn Sie ein Tag oder einen Alias ändern, wird die Berechtigung für einen KMS-Schlüssel eventuell erlaubt oder verweigert. Schlüsseladministratoren, die nicht über die Berechtigung zum Ändern von Schlüsselrichtlinien oder zum Erstellen von Erteilungen verfügen, können den Zugriff auf KMS-Schlüssel steuern, wenn sie über die Berechtigung zum Verwalten von Tags oder Aliassen verfügen.   
Es kann bis zu fünf Minuten dauern, bis Tag- und Alias-Änderungen Auswirkungen auf die KMS-Schlüsselautorisierung haben. Letzte Änderungen sind möglicherweise in API-Operationen sichtbar, bevor sie sich auf die Autorisierung auswirken.  
Um den Zugriff auf einen KMS-Schlüssel basierend auf seinem Alias zu steuern, müssen Sie einen Bedingungsschlüssel verwenden. Sie können keinen Alias verwenden, um einen KMS-Schlüssel im `Resource`-Element einer Richtlinienanweisung darzustellen. Wenn ein Alias im `Resource`-Element erscheint, gilt die Richtlinienanweisung für den Alias und nicht für den zugeordneten KMS-Schlüssel.

**Weitere Informationen**
+ Einzelheiten zur AWS KMS Unterstützung von ABAC, einschließlich Beispielen, finden Sie unter und. [Verwenden Sie Aliase, um den Zugriff auf KMS-Schlüssel zu steuern](alias-authorization.md) [Verwenden Sie Tags, um den Zugriff auf KMS-Schlüssel zu steuern](tag-authorization.md)
+ Weitere allgemeine Informationen zur Verwendung von Tags zur Steuerung des Zugriffs auf AWS Ressourcen finden Sie unter [Wozu dient ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)? AWS und [Steuern des Zugriffs auf AWS Ressourcen mithilfe von Ressourcen-Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) im *IAM-Benutzerhandbuch*.

## ABAC-Bedingungsschlüssel für AWS KMS
<a name="about-abac-kms"></a>

Verwenden Sie die folgenden Bedingungsschlüssel in einer Schlüsselrichtlinie oder IAM-Richtlinie, um den Zugriff auf KMS-Schlüssel basierend auf deren Tags und Aliassen zu autorisieren.


| ABAC-Bedingungsschlüssel | Description | Richtlinientyp | AWS KMS Operationen | 
| --- | --- | --- | --- | 
| [als: ResourceTag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag) | Tag (Schlüssel und Wert) auf dem KMS-Schlüssel entspricht dem Tag (Schlüssel und Wert) oder dem Tagmuster in der Richtlinie | Nur IAM-Richtlinie | KMS-Schlüsselressourcen-Operationen 2 | 
| [aws:RequestTag/*Tag-Schlüssel*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag) | Tag (Schlüssel und Wert) in der Anforderung entspricht dem Tag (Schlüssel und Wert) oder dem Tagmuster in der Richtlinie | Wichtige Richtlinien und IAM-Richtlinien 1 | [TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html), [UntagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_UntagResource.html) | 
| [aws: TagKeys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys) | Die Tag-Schlüssel in der Anforderung entsprechen den Tag-Schlüsseln in der Richtlinie | Schlüsselrichtlinien und IAM-Richtlinien 1 | [TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html), [UntagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_UntagResource.html) | 
| [km: ResourceAliases](conditions-kms.md#conditions-kms-resource-aliases) | Aliasse, die dem KMS-Schlüssel zugeordnet sind, stimmen mit den Aliassen oder Aliasmustern in der Richtlinie überein | Nur IAM-Richtlinie | KMS-Schlüsselressourcen-Operationen 2 | 
| [km: RequestAlias](conditions-kms.md#conditions-kms-request-alias) | Der Alias, der den KMS-Schlüssel in der Anforderung darstellt, entspricht dem Alias oder den Aliasmustern in der Richtlinie. | Schlüsselrichtlinien und IAM-Richtlinien 1 | [Kryptografische Operationen](kms-cryptography.md#cryptographic-operations), [DescribeKey[GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) | 

1 Jeder Bedingungsschlüssel, der in einer Schlüsselrichtlinie verwendet werden kann, kann auch in einer IAM-Richtlinie verwendet werden, jedoch nur, wenn [die Schlüsselrichtlinie es erlaubt](key-policy-default.md#key-policy-default-allow-root-enable-iam).

2Eine *KMS-Schlüsselressourcen-Operation* ist 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 mit [AWS KMS -Berechtigungen](kms-api-permissions-reference.md#kms-api-permissions-reference-table) nach dem Wert des KMS-Schlüssels in der `Resources`-Spalte für die Operation. 

Beispielsweise können Sie diese Bedingungsschlüssel verwenden, um die folgenden Richtlinien zu erstellen.
+ Eine IAM-Richtlinie mit `kms:ResourceAliases`, die die Berechtigung zur Verwendung von KMS-Schlüsseln mit einem bestimmten Alias oder Aliasmuster ermöglicht. Dies unterscheidet sich ein wenig von Richtlinien, die auf Tags basieren: Sie können zwar Aliasmuster in einer Richtlinie verwenden, aber jeder Alias muss in einer AWS-Konto UND-Region eindeutig sein. Auf diese Weise können Sie eine Richtlinie auf einen ausgewählten Satz von KMS-Schlüsseln anwenden, ohne die Schlüssel ARNs der KMS-Schlüssel in der Richtlinienerklärung aufzulisten. Um KMS-Schlüssel aus dem Satz hinzuzufügen oder zu entfernen, ändern Sie den Alias des KMS-Schlüssels.
+ Eine Schlüsselrichtlinie mit `kms:RequestAlias`, die es Prinzipalen ermöglicht, einen KMS-Schlüssel in einer `Encrypt`-Operation zu nutzen, aber nur dann, wenn die `Encrypt`-Anforderung diesen Alias verwendet, um den KMS-Schlüssel zu identifizieren.
+ Eine IAM-Richtlinie mit `aws:ResourceTag/tag-key`, die die Berechtigung zur Verwendung von KMS-Schlüsseln mit einem bestimmten Tag-Schlüssel und Tag-Wert verweigert. Auf diese Weise können Sie eine Richtlinie auf einen ausgewählten Satz von KMS-Schlüsseln anwenden, ohne den Schlüssel ARNs der KMS-Schlüssel in der Richtlinienerklärung aufzulisten. Um KMS-Schlüssel aus dem Satz hinzuzufügen oder zu entfernen, markieren oder entmarkieren Sie den KMS-Schlüssel.
+ Eine IAM-Richtlinie mit `aws:RequestTag/tag-key`, die es Prinzipalen erlaubt, nur `"Purpose"="Test"`-Tags von KMS-Schlüsseln zu löschen. 
+ Eine IAM-Richtlinie mit `aws:TagKeys`, die die Berechtigung zur Markierung oder Entmarkierung eines KMS-Schlüssels mit einem `Restricted`-Tag-Schlüssel verweigert.

ABAC macht das Zugriffsmanagement flexibel und skalierbar. Sie können beispielsweise den `aws:ResourceTag/tag-key`-Bedingungsschlüssel verwenden, um eine IAM-Richtlinie zu erstellen, die es Prinzipalen erlaubt, einen KMS-Schlüssel für bestimmte Operationen nur dann zu verwenden, wenn der KMS-Schlüssel einen `Purpose=Test`-Tag hat. Die Richtlinie gilt für alle KMS-Schlüssel in allen Regionen des AWS-Konto.

Wenn sie einem Benutzer oder einer Rolle zugeordnet ist, können Prinzipale mit der folgenden IAM-Richtlinie alle vorhandenen KMS-Schlüssel mit einem`Purpose=Test`-Tag für die angegebenen Operationen nutzen. Um diesen Zugriff auf neue oder vorhandene KMS-Schlüssel zu gewähren, müssen Sie die Richtlinie nicht ändern. Fügen Sie einfach das `Purpose=Test`-Tag de KMS-Schlüsseln an. Um diesen Zugriff von KMS-Schlüsseln mit einem `Purpose=Test`-Tag zu entfernen, bearbeiten oder löschen Sie das Tag. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AliasBasedIAMPolicy",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:Encrypt",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Purpose": "Test"
        }
      }
    }
  ]
}
```

------

Wenn Sie diese Funktion verwenden, sollten Sie jedoch vorsichtig sein, wenn Sie Tags und Aliasse verwalten. Das Hinzufügen, Ändern oder Löschen eines Tags oder Aliasses kann versehentlich den Zugriff auf einen KMS-Schlüssel zulassen oder verweigern. Schlüsseladministratoren, die nicht über die Berechtigung zum Ändern von Schlüsselrichtlinien oder zum Erstellen von Erteilungen verfügen, können den Zugriff auf KMS-Schlüssel steuern, wenn sie über die Berechtigung zum Verwalten von Tags oder Aliassen verfügen. Um dieses Risiko zu mindern, sollten Sie [Berechtigungen zum Verwalten von Tags](tag-permissions.md#tag-permissions-conditions) und [Aliassen](alias-access.md#alias-access-limiting) beschränken. Sie können es beispielsweise nur ausgewählten Prinzipalen erlauben, `Purpose=Test`-Tags zu verwalten. Details dazu finden Sie unter [Verwenden Sie Aliase, um den Zugriff auf KMS-Schlüssel zu steuern](alias-authorization.md) und [Verwenden Sie Tags, um den Zugriff auf KMS-Schlüssel zu steuern](tag-authorization.md).

## Tags oder Aliasse?
<a name="abac-tag-or-alias"></a>

AWS KMS unterstützt ABAC mit Tags und Aliasen. Beide Optionen bieten eine flexible, skalierbare Strategie zur Zugriffssteuerung, unterscheiden sich jedoch geringfügig voneinander. 

Sie können sich entscheiden, Tags oder Aliase zu verwenden, die auf Ihren speziellen AWS Verwendungsmustern basieren. Wenn Sie beispielsweise den meisten Administratoren bereits Markierungs-Berechtigungen erteilt haben, ist es möglicherweise einfacher, eine Autorisierungsstrategie basierend auf Aliasse zu steuern. Oder, wenn Sie nahe am Kontingent für [Aliasse pro KMS-Schlüssel](resource-limits.md#aliases-per-key) sind, verwenden Sie möglicherweise lieber eine Autorisierungs-Strategie, die auf Tags basiert. 

Die folgenden Nutzen sind von allgemeinem Interesse.

**Vorteile einer Tag-basierten Zugriffskontrolle**
+ Derselbe Autorisierungsmechanismus für verschiedene AWS Ressourcentypen. 

  Sie können denselben Tag- oder Tag-Schlüssel verwenden, um den Zugriff auf mehrere Ressourcentypen zu steuern, z. B. einen Amazon-RDS (Amazon Relational Database Service)-Cluster, ein Amazon-EBS (Amazon Elastic Block Store)-Volume und einen KMS-Schlüssel. Diese Funktion ermöglicht verschiedene Autorisierungsmodelle, die flexibler sind als herkömmliche rollenbasierte Zugriffskontrolle.
+ Autorisieren des Zugriffs auf eine Gruppe von KMS-Schlüsseln

  Sie können Tags verwenden, um den Zugriff auf eine Gruppe von KMS-Schlüsseln in demselben AWS-Konto und in derselben Region zu verwalten. Weisen Sie den ausgewählten KMS-Schlüsseln denselben Tag- oder Tag-Schlüssel zu. Erstellen Sie dann eine einfache easy-to-maintain Richtlinienerklärung, die auf dem Tag oder dem Tag-Schlüssel basiert. Um einen KMS-Schlüssel aus Ihrer Autorisierungsgruppe hinzuzufügen oder zu entfernen, fügen Sie das Tag hinzu oder entfernen Sie es. Sie müssen die Richtlinie nicht bearbeiten.

**Vorteile einer Alias-basierten Zugriffskontrolle**
+ Autorisieren Sie den Zugriff auf kryptografische Operationen basierend auf Aliassen.

  Die meisten anforderungsbasierten Richtlinienbedingungen für Attribute, einschließlich [aws:RequestTag/*tag-key*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag), betreffen nur Operationen, die das Attribut hinzufügen, bearbeiten oder löschen. Der RequestAlias Bedingungsschlüssel [kms:](conditions-kms.md#conditions-kms-request-alias) steuert jedoch den Zugriff auf kryptografische Operationen auf der Grundlage des Alias, der zur Identifizierung des KMS-Schlüssels in der Anfrage verwendet wird. Sie können beispielsweise einem Prinzipal die Berechtigung erteilen, einen KMS-Schlüssel in einer `Encrypt`-Operation zu nutzen, aber nur dann, wenn der Wert des `KeyId`-Parameters `alias/restricted-key-1` ist. Diese Bedingung zu erfüllen, erfordert Folgendes:
  + Der KMS-Schlüssel muss diesem Alias zugeordnet sein.
  + Die Anforderung muss den Alias verwenden, um den KMS-Schlüssel zu identifizieren.
  + Der Prinzipal muss über die Berechtigung zur Verwendung des KMS-Schlüssels verfügen, sofern die `kms:RequestAlias`-Bedingung es erlaubt. 

  Dies ist besonders nützlich, wenn Ihre Anwendungen häufig Aliasnamen oder Alias verwenden ARNs , um auf KMS-Schlüssel zu verweisen.
+ Stellen Sie sehr eingeschränkte Berechtigungen bereit.

  Ein Alias muss in einer AWS-Konto UND-Region eindeutig sein. Daher kann es wesentlich restriktiver sein, Prinzipalen Zugriff auf einen KMS-Schlüssel basierend auf einem Alias zu gewähren, als ihnen Zugriff basierend auf einem Tag zu gewähren. Im Gegensatz zu Aliassen können Tags mehreren KMS-Schlüsseln in demselben Konto und derselben Region zugewiesen werden. Wenn Sie auswählen, können Sie ein Aliasmuster verwenden, z. B.`alias/test*`, um Prinzipalen Zugriff auf eine Gruppe von KMS-Schlüsseln in demselben Konto und derselben Region zu gewähren. Allerdings ermöglicht das Erlauben oder Verweigern des Zugriffs auf einen bestimmten Alias eine sehr strenge Kontrolle über KMS-Schlüssel.

# Problembehandlung bei ABAC für AWS KMS
<a name="troubleshooting-tags-aliases"></a>

Die Steuerung des Zugriffs auf KMS-Schlüssel basierend auf ihren Tags und Aliassen ist bequem und leistungsstark. Es ist jedoch anfällig für einige vorhersehbare Fehler, die Sie verhindern möchten.

## Zugriff aufgrund von Tag-Änderung geändert
<a name="access-denied-tag"></a>

Wenn ein Tag gelöscht wird oder sein Wert geändert wird, wird Prinzipalen, dessen Zugriff auf einen KMS-Schlüssel nur auf diesem Tag basiert, der Zugriff auf den KMS-Schlüssel verweigert. Dies kann auch passieren, wenn ein Tag, das in einer Zugriffsverweigerungs-Richtlinienanweisung enthalten ist, einem KMS-Schlüssel hinzugefügt wird. Das Hinzufügen eines richtlinienbezogenen Tags zu einem KMS-Schlüssel kann Prinzipalen den Zugriff erlauben, denen der Zugriff auf einen KMS-Schlüssel verweigert werden soll.

Angenommen, ein Prinzipal hat Zugriff auf einen KMS-Schlüssel basierend auf dem `Project=Alpha`-Tag, z. B. die Berechtigung, die in der folgenden IAM-Richtlinienanweisung bereitgestellt wird. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPolicyWithResourceTag",
      "Effect": "Allow",
      "Action": [
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:ap-southeast-1:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Project": "Alpha"
        }
      }
    }
  ]
}
```

------

Wenn das Tag aus diesem KMS-Schlüssel gelöscht wird oder der Tag-Wert geändert wird, hat der Prinzipal keine Berechtigung mehr, den KMS-Schlüssel für die angegebenen Operationen zu verwenden. Dies kann deutlich werden, wenn der Principal versucht, Daten in einem AWS Dienst zu lesen oder zu schreiben, der einen vom Kunden verwalteten Schlüssel verwendet. Um die Änderung des Kennworts nachzuverfolgen, überprüfen Sie Ihre CloudTrail Logs auf [UntagResource Einträge](ct-untagresource.md). [TagResource](ct-tagresource.md)

Um den Zugriff wiederherzustellen, ohne die Richtlinie zu aktualisieren, ändern Sie die Tags auf dem KMS-Schlüssel. Diese Aktion hat minimale Auswirkungen außer für einen kurzen Zeitraum, während sie in allen Bereichen von AWS KMS in Kraft tritt. Um einen Fehler wie diesen zu vermeiden, erteilen Sie Berechtigungen zum Markieren und Entmarkieren nur an Prinzipale, die sie benötigen, und [beschränken Sie ihrer Markierungs-Berechtigungen](tag-permissions.md#tag-permissions-conditions) auf Tags, die sie verwalten müssen. Bevor Sie einen Tag ändern, durchsuchen Sie Richtlinien, um den Zugriff zu erkennen, der vom Tag abhängt, und erhalten Sie KMS-Schlüssel in allen Regionen, die das Tag enthalten. Sie könnten erwägen, einen CloudWatch Amazon-Alarm zu erstellen, wenn bestimmte Tags geändert werden.

## Änderung des Zugriffs aufgrund von Aliasänderungen
<a name="access-denied-alias"></a>

Wenn ein Alias gelöscht oder einem anderen KMS-Schlüssel zugeordnet wird, wird Prinzipalen, dessen Zugriff auf den KMS-Schlüssel nur auf diesem Alias basiert, der Zugriff auf den KMS-Schlüssel verweigert. Dies kann auch passieren, wenn ein Tag, das in einer Zugriffsverweigerungs-Richtlinienanweisung enthalten ist, einem KMS-Schlüssel hinzugefügt wird. Das Hinzufügen eines richtlinienbezogenen Tags zu einem KMS-Schlüssel kann Prinzipalen den Zugriff erlauben, denen der Zugriff auf einen KMS-Schlüssel verweigert werden soll.

In der folgenden IAM-Richtlinienerklärung wird beispielsweise der ResourceAliases Bedingungsschlüssel [kms:](conditions-kms.md#conditions-kms-resource-aliases) verwendet, um den Zugriff auf KMS-Schlüssel in verschiedenen Regionen des Kontos mit einem der angegebenen Aliase zu ermöglichen.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AliasBasedIAMPolicy",
      "Effect": "Allow",
      "Action": [
        "kms:List*",
        "kms:Describe*",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "kms:ResourceAliases": [
            "alias/ProjectAlpha",
            "alias/ProjectAlpha_Test",
            "alias/ProjectAlpha_Dev"
          ]
        }
      }
    }
  ]
}
```

------

Um die Aliasänderung nachzuverfolgen, überprüfen Sie Ihre CloudTrail Logs auf [CreateAlias](ct-createalias.md)Einträge [UpdateAlias](ct-updatealias.md), und [DeleteAlias](ct-deletealias.md).

Um den Zugriff wiederherzustellen, ohne die Richtlinie zu aktualisieren, ändern Sie den Alias, der dem KMS-Schlüssel zugeordnet ist. Da jeder Alias nur einem KMS-Schlüssel in einem Konto und einer Region zugeordnet werden kann, ist die Verwaltung von Aliassen etwas schwieriger als die Verwaltung von Tags. Das Wiederherstellen des Zugriffs auf einige Prinzipale auf einem KMS-Schlüssel kann denselben oder anderen Prinzipalen den Zugriff auf einen anderen KMS-Schlüssel verweigern. 

Um diesen Fehler zu vermeiden, erteilen Sie Alias-Verwaltungs-Berechtigungen nur für Prinzipale, die diese benötigen, und [schränken Sie ihre Alias-Verwaltungs-Berechtigungen](alias-access.md#alias-access-limiting) auf Aliasse ein, die sie verwalten müssen. Suchen Sie vor dem Aktualisieren oder Löschen eines Aliasses Richtlinien, um den Zugriff zu erkennen, der vom Alias abhängt, und finden Sie die KMS-Schlüssel in allen Regionen, die dem Alias zugeordnet sind.

## Zugriff aufgrund eines Aliaskontingents verweigert
<a name="access-denied-alias-quota"></a>

Benutzer, die aufgrund einer KMS[: ResourceAliases -Bedingung zur Verwendung eines KMS-Schlüssels](conditions-kms.md#conditions-kms-resource-aliases) autorisiert sind, erhalten eine `AccessDenied` Ausnahme, wenn der KMS-Schlüssel die [Standardaliase pro KMS-Schlüsselkontingent](resource-limits.md#aliases-per-key) für dieses Konto und diese Region überschreitet. 

Um den Zugriff wiederherzustellen, löschen Sie Aliasse, die dem KMS-Schlüssel zugeordnet sind, damit er dem Kontingent entspricht. Oder verwenden Sie einen alternativen Mechanismus, um Benutzern Zugriff auf den KMS-Schlüssel zu gewähren. 

## Verzögerte Autorisierungsänderung
<a name="tag-alias-auth-delay"></a>

Es kann bis zu fünf Minuten dauern, bis sich die Änderungen, die Sie an Tags und Aliassen vornehmen, auf die Autorisierung von KMS-Schlüsseln auswirken. Infolgedessen kann eine Tag- oder Aliasänderung in den Antworten von API-Operationen widergespiegelt werden, bevor sie sich auf die Autorisierung auswirken. Diese Verzögerung ist wahrscheinlich länger als die kurze eventuelle Konsistenzverzögerung, von der die meisten AWS KMS Vorgänge betroffen sind. 

Beispielsweise können Sie eine IAM-Richtlinie verwenden, die es bestimmten Prinzipalen erlaubt, einen KMS-Schlüssel mit einem `"Purpose"="Test"`-Tag zu nutzen. Dann fügen Sie das `"Purpose"="Test"`-Tag einem KMS-Schlüssel hinzu. Obwohl der [TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html)Vorgang abgeschlossen ist und die [ListResourceTags](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListResourceTags.html)Antwort bestätigt, dass das Tag dem KMS-Schlüssel zugewiesen ist, haben die Prinzipale möglicherweise bis zu fünf Minuten lang keinen Zugriff auf den KMS-Schlüssel.

Um Fehler zu vermeiden, bauen Sie diese erwartete Verzögerung in Ihren Code ein. 

## Fehlgeschlagene Anforderungen aufgrund von Alias-Aktualisierungen
<a name="failed-requests"></a>

Sie können Aliasse auch aktualisieren, wodurch ein vorhandenes Alias einem anderen KMS-Schlüssel zugeordnet wird. 

[Entschlüsselungen](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) und [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)Anfragen, die den [Aliasnamen oder [Alias-ARN](concepts.md#key-id-alias-ARN)](concepts.md#key-id-alias-name) angeben, schlagen möglicherweise fehl, da der Alias jetzt mit einem KMS-Schlüssel verknüpft ist, der den Chiffretext nicht verschlüsselt hat. Diese Situation gibt in der Regel `IncorrectKeyException` oder `NotFoundException` zurück. Oder wenn die Anforderung keinen `KeyId`- oder `DestinationKeyId`-Parameter enthält, schlägt die Operation möglicherweise mit einer `AccessDenied`-Ausnahme fehl, da der Aufrufer keinen Zugriff mehr auf den KMS-Schlüssel hat, der den Chiffretext verschlüsselt hat. 

Sie können die Änderung nachverfolgen, indem Sie in den CloudTrail Protokollen nach [CreateAlias[UpdateAlias](ct-updatealias.md)](ct-createalias.md), und nach Protokolleinträgen suchen. [DeleteAlias](ct-deletealias.md) Sie können auch den Wert des `LastUpdatedDate` Felds in der [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)Antwort verwenden, um eine Änderung zu erkennen. 

Die folgende Beispielantwort zeigt [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)beispielsweise, dass der `ProjectAlpha_Test` Alias in der `kms:ResourceAliases` Bedingung aktualisiert wurde. Daher verlieren die Prinzipale, dessen Zugriff auf dem Alias basiert, den Zugriff auf den zuvor zugeordneten KMS-Schlüssel. Stattdessen haben sie Zugriff auf den neu zugeordneten KMS-Schlüssel. 

```
$ aws kms list-aliases --query 'Aliases[?starts_with(AliasName, `alias/ProjectAlpha`)]'

{
    "Aliases": [
        {
            "AliasName": "alias/ProjectAlpha_Test",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ProjectAlpha_Test",
            "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
            "CreationDate": 1566518783.394,
            "LastUpdatedDate": 1605308931.903
        },
        {
            "AliasName": "alias/ProjectAlpha_Restricted",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ProjectAlpha_Restricted",
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1553410800.010,
            "LastUpdatedDate": 1553410800.010
        }
    ]
}
```

Die Lösung für diese Änderung ist nicht einfach. Sie können den Alias erneut aktualisieren, um ihn dem ursprünglichen KMS-Schlüssel zuzuordnen. Bevor Sie jedoch handeln, müssen Sie die Auswirkungen dieser Änderung auf den aktuell zugeordneten KMS-Schlüssel berücksichtigen. Wenn Prinzipale den letzteren KMS-Schlüssel in kryptografischen Operationen verwendet haben, müssen sie möglicherweise weiterhin darauf zugreifen. In diesem Fall sollten Sie die Richtlinie aktualisieren, um sicherzustellen, dass Prinzipale über die Berechtigung verfügen, beide KMS-Schlüssel zu verwenden. 

Sie können einen Fehler wie diesen verhindern: Bevor Sie einen Alias aktualisieren, suchen Sie Richtlinien, um den Zugriff zu erkennen, der vom Alias abhängt. Rufen Sie dann KMS-Schlüssel in allen Regionen ab, die dem Alias zugeordnet sind. Erteilen Sie Alias-Verwaltungs-Berechtigungen nur für Prinzipale, die diese benötigen, und [schränken Sie ihre Alias-Verwaltungs-Berechtigungen](alias-access.md#alias-access-limiting) auf Aliasse ein, die sie verwalten müssen.

# RBAC für AWS KMS
<a name="rbac"></a>

Bei der rollenbasierten Zugriffskontrolle (RBAC) handelt es sich um eine Autorisierungsstrategie, die Benutzern nur die für die Erfüllung ihrer Aufgaben erforderlichen Berechtigungen gewährt, mehr nicht. AWS KMS [unterstützt RBAC, indem es Ihnen ermöglicht, den Zugriff auf Ihre Schlüssel zu kontrollieren, indem Sie innerhalb von Schlüsselrichtlinien detaillierte Berechtigungen für die Schlüsselverwendung festlegen.](key-policies.md) In Schlüsselrichtlinien werden eine Ressource, eine Aktion, eine Wirkung, ein Hauptprinzip und optionale Bedingungen für die Gewährung des Zugriffs auf Schlüssel festgelegt.

Um RBAC zu implementieren, empfehlen wir AWS KMS, die Berechtigungen für Schlüsselbenutzer und Schlüsseladministratoren voneinander zu trennen.

------
#### [ Key users ]

Das folgende Beispiel für eine wichtige Richtlinie ermöglicht es der `ExampleUserRole` IAM-Rolle, den KMS-Schlüssel zu verwenden.

```
{
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws: iam::111122223333:role/ExampleUserRole"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
  }
```

 Ihre Hauptbenutzer benötigen möglicherweise weniger Berechtigungen als der Benutzer in diesem Beispiel. Weisen Sie nur die Berechtigungen zu, die der Benutzer benötigt. Verwenden Sie die folgenden Fragen, um die Berechtigungen weiter zu verfeinern.
+ Welche IAM-Prinzipale (Rollen oder Benutzer) benötigen Zugriff auf den Schlüssel?
+ Welche Aktionen muss jeder Principal mit dem Schlüssel ausführen? Benötigt der Principal beispielsweise nur die Berechtigungen Verschlüsseln und Signieren?
+ Ist der Benutzer ein Mensch oder ein AWS Dienst? Wenn es sich um einen AWS Dienst handelt, können Sie den [Bedingungsschlüssel](conditions-kms.md#conditions-kms-via-service) verwenden, um die Schlüsselverwendung auf einen bestimmten AWS Dienst zu beschränken.

------
#### [ Key administrators ]



Das folgende Beispiel für eine wichtige Richtlinie ermöglicht es der `ExampleAdminRole` IAM-Rolle, den KMS-Schlüssel zu verwalten. 

```
{
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws: iam::111122223333:role/ExampleAdminRole"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
    }
```

 In diesem Beispiel benötigen Ihre Schlüsseladministratoren möglicherweise weniger Berechtigungen als der Administrator. Weisen Sie Ihren Schlüsseladministratoren nur die Berechtigungen zu, die sie benötigen.

------

Erteilen Sie Benutzern nur die Berechtigungen, die sie zur Erfüllung ihrer Rollen benötigen. Die Berechtigungen eines Benutzers können variieren, je nachdem, ob der Schlüssel in Test- oder Produktionsumgebungen verwendet wird. Wenn Sie in bestimmten Umgebungen, die nicht zur Produktion gehören, weniger restriktive Berechtigungen verwenden, implementieren Sie einen Prozess, um die Richtlinien zu testen, bevor sie für die Produktion freigegeben werden.

**Weitere Informationen**
+ [IAM-Identitäten (Benutzer, Benutzergruppen und Rollen)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)
+ [Arten der Zugriffskontrolle](https://docs.aws.amazon.com/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/access-control-types.html)

# Benutzern in anderen Konten die Verwendung des KMS-Schlüssels erlauben
<a name="key-policy-modifying-external-accounts"></a>

Sie können Benutzern oder Rollen in einer anderen AWS-Konto Umgebung die Verwendung eines KMS-Schlüssels in Ihrem Konto gestatten. Der kontoübergreifende Zugriff erfordert die Berechtigung in der Schlüsselrichtlinie des KMS-Schlüssels und in einer IAM-Richtlinie im Konto des externen Benutzers.

Die kontenübergreifende Berechtigung gilt nur für die folgenden Operationen:
+ [Kryptografische Operationen](kms-cryptography.md#cryptographic-operations)
+ [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
+ [GetKeyRotationStatus](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyRotationStatus.html)
+ [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)
+ [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)
+ [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)
+ [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)

Wenn Sie einem Benutzer in einem anderen Konto die Berechtigung für andere Operationen erteilen, haben diese Berechtigungen keine Auswirkungen. Wenn Sie beispielsweise einem Prinzipal in einem anderen Konto die ListKeys Berechtigung [kms:](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) in einer IAM-Richtlinie oder [kms: ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) -Berechtigung für einen KMS-Schlüssel in einer Schlüsselrichtlinie erteilen, schlagen die Versuche des Benutzers, diese Operationen auf Ihren Ressourcen aufzurufen, immer noch fehl. 

Einzelheiten zur Verwendung von KMS-Schlüsseln in verschiedenen Konten für AWS KMS Operationen finden Sie in der Spalte **Kontoübergreifende Verwendung** unter und. [AWS KMS Berechtigungen](kms-api-permissions-reference.md) [Verwenden von KMS-Schlüsseln in anderen Konten](#cross-account-use) Es gibt auch einen Abschnitt über **kontenübergreifende Nutzung** in jeder API-Beschreibung in der [AWS Key Management Service -API-Referenz](https://docs.aws.amazon.com/kms/latest/APIReference/).

**Warnung**  
Seien Sie vorsichtig, wenn Sie Prinzipalen Berechtigungen zur Verwendung Ihrer KMS-Schlüssel erteilen. Wenn möglich, befolgen Sie dem Prinzip der *geringsten Berechtigung*. Geben Sie Benutzern nur Zugriff auf die KMS-Schlüssel, die sie für die erforderlichen Vorgänge benötigen.  
Seien Sie auch vorsichtig bei der Verwendung eines unbekannten KMS-Schlüssels, insbesondere eines KMS-Schlüssels in einem anderen Konto. Bösartige Benutzer geben Ihnen möglicherweise die Berechtigung, ihren KMS-Schlüssel zu verwenden, um Informationen über Sie oder Ihr Konto abzurufen.   
Weitere Informationen zur Verwendung von Richtlinien zum Steuern des Zugriffs auf die Ressourcen in Ihrem Konto finden Sie unter [Bewährte Methoden für IAM-Richtlinien](iam-policies-best-practices.md).

Um Benutzern und Rollen in einem anderen Konto die Berechtigung zur Verwendung eines KMS-Schlüssels zu erteilen, müssen Sie zwei verschiedene Arten von Richtlinien verwenden:
+ Die **Schlüsselrichtlinie** für den KMS-Schlüssel muss dem externen Konto (oder den Benutzern und Rollen im externen Konto) die Berechtigung zur Verwendung des KMS-Schlüssels erteilen. Die Schlüsselrichtlinie ist in dem Konto definiert, in dem der KMS-Schlüssel hinterlegt ist.
+ **IAM-Richtlinien** im externen Konto müssen die Schlüsselrichtlinien-Berechtigungen an seine Benutzer und Rollen delegieren. Diese Richtlinien werden im externen Konto festgelegt und erteilen Berechtigungen für Benutzer und Rollen in diesem Konto.

Die Schlüsselrichtlinie bestimmt, wer Zugriff auf den KMS-Schlüssel haben *kann*. Die IAM-Richtlinie bestimmt, wer Zugriff auf den KMS-Schlüssel *hat*. Weder die Schlüsselrichtlinie noch die IAM-Richtlinie allein sind ausreichend – Sie müssen beides ändern. 

Um die Schlüsselrichtlinie zu bearbeiten, können Sie die [Richtlinienansicht](key-policy-modifying.md#key-policy-modifying-how-to-console-policy-view) in den [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)Operationen AWS-Managementkonsole oder [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)oder verwenden.

Hilfe zum Bearbeiten von IAM-Richtlinien finden Sie unter [Verwenden von IAM-Richtlinien mit AWS KMS](iam-policies.md). 

Ein Beispiel, das zeigt, wie die Schlüsselrichtlinie und IAM-Richtlinien zusammenarbeiten, um die Verwendung eines KMS-Schlüssel in einem anderen Konto zu ermöglichen, finden Sie unter [Beispiel 2: Der Benutzer übernimmt die Rolle mit der Erlaubnis, einen KMS-Schlüssel in einem anderen System zu verwenden AWS-Konto](policy-evaluation.md#example-cross-acct).

Sie können die resultierenden kontenübergreifenden AWS KMS Operationen mit dem KMS-Schlüssel in Ihren [AWS CloudTrail Protokollen](logging-using-cloudtrail.md) einsehen. Operationen, die KMS-Schlüssel in anderen Konten verwenden, werden sowohl im Konto des Anrufers als auch im Konto des KMS-Schlüsselbesitzers protokolliert.

**Topics**
+ [

## Schritt 1: Hinzufügen einer Schlüsselrichtlinienanweisung im lokalen Konto
](#cross-account-key-policy)
+ [

## Schritt 2: Hinzufügen von IAM-Richtlinien im externen Konto
](#cross-account-iam-policy)
+ [

## Ermöglicht die Verwendung externer KMS-Schlüssel mit AWS-Services
](#cross-account-service)
+ [

## Verwenden von KMS-Schlüsseln in anderen Konten
](#cross-account-use)

**Anmerkung**  
Die Beispiele in diesem Thema zeigen, wie Sie eine Schlüsselrichtlinie und eine IAM-Richtlinie zusammen verwenden, um den Zugriff auf einen KMS-Schlüssel bereitzustellen und einzuschränken. Diese allgemeinen Beispiele sollen nicht die Berechtigungen darstellen, die für einen bestimmten KMS-Schlüssel AWS-Service erforderlich sind. Informationen zu den Berechtigungen, die für einen AWS-Service erforderlich sind, finden Sie im Thema Verschlüsselung in der Servicedokumentation.

## Schritt 1: Hinzufügen einer Schlüsselrichtlinienanweisung im lokalen Konto
<a name="cross-account-key-policy"></a>

Die Schlüsselrichtlinie für einen KMS-Schlüssel ist der erste Bestimmungsfaktor dafür, wer auf den KMS-Schlüssel zugreifen kann und welche Operationen sie ausführen können. Die Schlüsselrichtlinie ist immer in dem Konto, in dem der KMS-Schlüssel hinterlegt ist. Anders als IAM-Richtlinien geben Schlüsselrichtlinien keine Ressource an. Die Ressource ist der KMS-Schlüssel, der die Schlüsselrichtlinie zugeordnet ist. Wenn Sie eine kontenübergreifende Berechtigung erteilen, muss die Schlüsselrichtlinie für den KMS-Schlüssel dem externen Konto (oder den Benutzern und Rollen im externen Konto) die Berechtigung erteilen, den KMS-Schlüssel zu verwenden.

Um einem externen Konto die Berechtigung zur Verwendung des KMS-Schlüssels zu erteilen, fügen Sie der Schlüsselrichtlinie eine Anweisung hinzu, die das externe Konto angibt. Geben Sie im `Principal`-Element der Schlüsselrichtlinie den Amazon-Ressourcennamen (ARN) des externen Kontos ein. 

Wenn Sie ein externes Konto in einer Schlüsselrichtlinie angeben, können IAM-Administratoren im externen Konto IAM-Richtlinien verwenden, um diese Berechtigungen an alle Benutzer und Rollen im externen Konto zu delegieren. Sie können auch entscheiden, welche der in der Schlüsselrichtlinie angegebenen Aktionen die Benutzer und Rollen ausführen dürfen. 

Berechtigungen, die dem externen Konto und seinen Prinzipalen erteilt werden, sind nur wirksam, wenn das externe Konto in der Region aktiviert ist, die den KMS-Schlüssel und seine Schlüsselrichtlinie hostet. Informationen zu Regionen, die standardmäßig nicht aktiviert sind („Opt-In-Regionen“), finden Sie unter [Verwalten von AWS-Regionen](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) in *Allgemeine AWS-Referenz*.

Angenommen, Sie möchten Konto `444455556666` erlauben, einen symmetrischen KMS-Schlüssel im Konto `111122223333` zu verwenden. Fügen Sie dazu der Schlüsselrichtlinie für den KMS-Schlüssel in Konto `111122223333` eine Schlüsselrichtlinie wie die im folgenden Beispiel hinzu. Diese Richtlinienanweisung erteilt dem externen Konto `444455556666` die Berechtigung, den KMS-Schlüssel in kryptografischen Operationen für KMS-Schlüssel mit symmetrischer Verschlüsselung zu verwenden. 

**Anmerkung**  
Das folgende Beispiel stellt ein Beispiel für eine Schlüsselrichtlinie für die gemeinsame Nutzung eines KMS-Schlüssels mit einem anderen Konto dar. Ersetzen Sie die Werte `Sid`, `Principal` und `Action` im Beispiel durch gültige Werte für die vorgesehene Verwendung Ihres KMS-Schlüssels. 

```
{
    "Sid": "Allow an external account to use this KMS key",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::444455556666:root"
        ]
    },
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "*"
}
```

Anstatt dem externen Konto die Berechtigung zu erteilen, können Sie bestimmte externe Benutzer und Rollen in der Schlüsselrichtlinie angeben. Diese Benutzer und Rollen können den KMS-Schlüssel jedoch erst verwenden, wenn IAM-Administratoren im externen Konto ihren Identitäten die richtigen IAM-Richtlinien anfügen. Die IAM-Richtlinien können allen oder einer Teilmenge der externen Benutzer und Rollen, die in der Schlüsselrichtlinie angegeben sind, die Berechtigung erteilen. Und sie können alle oder eine Teilmenge der Aktionen zulassen, die in der Schlüsselrichtlinie angegeben sind. 

Die Angabe von Identitäten in einer Schlüsselrichtlinie beschränkt die Berechtigungen, die IAM-Administratoren im externen Konto bereitstellen können. Die Richtlinienverwaltung mit zwei Konten wird jedoch komplexer. Angenommen, Sie müssen einen Benutzer oder eine Rolle hinzufügen. Sie müssen diese Identität der Schlüsselrichtlinie in dem Konto hinzufügen, das den KMS-Schlüssel besitzt, und IAM-Richtlinien im Konto der Identität erstellen.

Um bestimmte externe Benutzer oder Rollen in einer Schlüsselrichtlinie anzugeben, geben Sie im `Principal`-Element den Amazon-Ressourcennamen (ARN) eines Benutzers oder einer Rolle im externen Konto ein.

Die folgende Schlüsselrichtlinienanweisung erlaubt es beispielsweise `ExampleRole` im Konto `444455556666`, einen KMS-Schlüssel im Konto `111122223333` zu verwenden. Diese Schlüssel-Richtlinienanweisung erteilt dem externen Konto `444455556666` die Berechtigung, den KMS-Schlüssel in kryptografischen Operationen für KMS-Schlüssel mit symmetrischer Verschlüsselung zu verwenden. 

**Anmerkung**  
Das folgende Beispiel stellt ein Beispiel für eine Schlüsselrichtlinie für die gemeinsame Nutzung eines KMS-Schlüssels mit einem anderen Konto dar. Ersetzen Sie die Werte `Sid`, `Principal` und `Action` im Beispiel durch gültige Werte für die vorgesehene Verwendung Ihres KMS-Schlüssels. 

```
{
    "Sid": "Allow an external account to use this KMS key",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::444455556666:role/ExampleRole"
    },
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "*"
}
```

**Anmerkung**  
Setzen Sie den Prinzipal nicht auf ein Sternchen (\$1) in einer Schlüsselrichtlinienanweisung, die Berechtigungen erlaubt, es sei denn, Sie verwenden [Bedingungen](policy-conditions.md), um die Schlüsselrichtlinie einzuschränken. Ein Sternchen gibt jede Identität in jeder AWS-Konto Berechtigung zur Verwendung des KMS-Schlüssels an, sofern dies nicht in einer anderen Richtlinienanweisung ausdrücklich verweigert wird. Benutzer in anderen Ländern AWS-Konten können Ihren KMS-Schlüssel immer dann verwenden, wenn sie über entsprechende Berechtigungen in ihrem eigenen Konto verfügen.

Sie müssen auch entscheiden, welche Berechtigungen Sie dem externen Konto erteilen möchten. Sie können beispielsweise Benutzern die Berechtigung zum Entschlüsseln, aber nicht zum Verschlüsseln erteilen, oder die Berechtigung zum Anzeigen des KMS-Schlüssels, aber nicht zur Verwendung. Eine Liste der Berechtigungen für KMS-Schlüssel finden Sie unter [AWS KMS Berechtigungen](kms-api-permissions-reference.md).

**Festlegung der Schlüsselrichtlinie beim Erstellen eines KMS-Schlüssels**  
Wenn Sie den [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)Vorgang zum Erstellen eines KMS-Schlüssels verwenden, können Sie seinen `Policy` Parameter verwenden, um eine Schlüsselrichtlinie anzugeben, die einem externen Konto oder externen Benutzern und Rollen die Berechtigung zur Verwendung des KMS-Schlüssels erteilt.  
Wenn Sie einen KMS-Schlüssel in der erstellen AWS-Managementkonsole, erstellen Sie auch die zugehörige Schlüsselrichtlinie. Wenn Sie Identitäten im Abschnitt **Key Administrators (Schlüsseladministratoren)** und **Key Users (Schlüsselbenutzer)** auswählen, fügt AWS KMS Richtlinienanweisungen für diese Identitäten zur Schlüsselrichtlinie des KMS-Schlüssels hinzu. Im Abschnitt **Key Users (Schlüsselbenutzer)** können Sie auch externe Konten als Schlüsselbenutzer hinzufügen.  
Wenn Sie die Konto-ID eines externen Kontos eingeben, AWS KMS fügt der Schlüsselrichtlinie zwei Anweisungen hinzu. Diese Aktion wirkt sich nur auf die Schlüsselrichtlinie aus. Benutzer und Rollen im externen Konto können den KMS-Schlüssel erst verwenden, wenn Sie IAM-Richtlinien anfügen, um ihnen einige oder alle dieser Berechtigungen zu erteilen.  
Die erste Schlüsselrichtlinienanweisung erteilt dem externen Konto die Berechtigung, den KMS-Schlüssel in kryptografischen Operationen zu verwenden. Die zweite wichtige Richtlinienanweisung ermöglicht es dem externen Konto, Zuweisungen für den KMS-Schlüssel zu erstellen, anzuzeigen und zu widerrufen, aber nur, wenn die Anfrage von einem [AWS Dienst kommt, der in integriert ist AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration). Diese Berechtigungen ermöglichen anderen AWS Diensten, die Benutzerdaten verschlüsseln, die Verwendung des KMS-Schlüssels. Diese Berechtigungen sind für KMS-Schlüssel konzipiert, die Benutzerdaten in Diensten verschlüsseln AWS 

## Schritt 2: Hinzufügen von IAM-Richtlinien im externen Konto
<a name="cross-account-iam-policy"></a>

Die Schlüsselrichtlinie im Konto, dem der KMS-Schlüssel gehört, legt den gültigen Bereich für Berechtigungen fest. Benutzer und Rollen im externen Konto können den KMS-Schlüssel erst verwenden, wenn Sie IAM-Richtlinien anfügen, die diese Berechtigungen delegieren, oder Erteilungen verwenden, um den Zugriff auf den KMS-Schlüssel zu verwalten. Die IAM-Richtlinien werden im externen Konto festgelegt. 

Wenn die Schlüsselrichtlinie dem externen Konto die Berechtigung erteilt, können Sie jedem Benutzer oder jeder Rolle im Konto IAM-Richtlinien zuweisen. Aber wenn die Schlüsselrichtlinie den angegebenen Benutzern oder Rollen die Berechtigung erteilt, kann die IAM-Richtlinie diese Berechtigungen nur allen oder einer Teilmenge der angegebenen Benutzer und Rollen erteilen. Wenn eine IAM-Richtlinie anderen externen Benutzern oder Rollen den Zugriff auf KMS-Schlüssel gewährt, hat dies keine Auswirkungen.

Die Schlüsselrichtlinie beschränkt auch die Aktionen in der IAM-Richtlinie. Die IAM-Richtlinie kann alle oder eine Teilmenge der Aktionen delegieren, die in der Schlüsselrichtlinie angegeben sind. Wenn die IAM-Richtlinie Aktionen auflistet, die nicht in der Schlüsselrichtlinie angegeben sind, sind diese Berechtigungen nicht wirksam.

Die folgende IAM-Beispielrichtlinie erlaubt es dem Prinzipal, den KMS-Schlüssel im Konto `111122223333` für kryptografische Operationen zu verwenden. Um diese Berechtigung Benutzern und Rollen im Konto `444455556666` zu erteilen, [fügen Sie die Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console) den Benutzern oder Rollen im Konto `444455556666` an.

**Anmerkung**  
Das folgende Beispiel stellt eine IAM-Richtlinie für die gemeinsame Nutzung eines KMS-Schlüssels mit einem anderen Konto dar. Ersetzen Sie die Werte `Sid`, `Resource` und `Action` im Beispiel durch gültige Werte für die vorgesehene Verwendung Ihres KMS-Schlüssels.

```
{
    "Sid": "AllowUseOfKeyInAccount111122223333",
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt",
      "kms:ReEncrypt*",
      "kms:GenerateDataKey*",
      "kms:DescribeKey"
    ],
    "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
```

Beachten Sie die folgenden Details über diese Richtlinie:
+ Im Gegensatz zu Schlüsselrichtlinien enthalten IAM-Richtlinienanweisungen das `Principal`-Element nicht. In IAM-Richtlinien ist der Prinzipal die Identität, der die Richtlinie angefügt ist. 
+ Das `Resource`-Element in der IAM-Richtlinie identifiziert den KMS-Schlüssel, den der Prinzipal verwenden kann. Um einen KMS-Schlüssel anzugeben, fügen Sie dessen [Schüssel-ARN](concepts.md#key-id-alias-ARN) dem `Resource`-Element hinzu.
+ Sie können mehrere KMS-Schlüssel im `Resource`-Element angeben. Wenn Sie jedoch keine bestimmten KMS-Schlüssel im `Resource`-Element angeben, können Sie versehentlich Zugriff auf mehr KMS-Schlüssel gewähren, als Sie beabsichtigen.
+ Damit der externe Benutzer den KMS-Schlüssel mit [AWS -Services verwenden kann, die in AWS KMS integriert sind,](https://aws.amazon.com/kms/features/#AWS_Service_Integration) müssen Sie möglicherweise Berechtigungen zur Schlüsselrichtlinie oder der IAM-Richtlinie hinzufügen. Details hierzu finden Sie unter [Ermöglicht die Verwendung externer KMS-Schlüssel mit AWS-Services](#cross-account-service).

Weitere Informationen zur Arbeit mit IAM-Richtlinien finden Sie unter [IAM-Richtlinien](iam-policies.md).

## Ermöglicht die Verwendung externer KMS-Schlüssel mit AWS-Services
<a name="cross-account-service"></a>

Sie können einem Benutzer in einem anderen Konto die Berechtigung erteilen, Ihren KMS-Schlüssel mit einem Service zu verwenden, der in AWS KMS integriert ist. Beispielsweise kann ein Benutzer mit einem externen Konto Ihren KMS-Schlüssel verwenden, um die Objekte in einem Amazon S3 S3-Bucket oder die Geheimnisse zu verschlüsseln, in denen sie gespeichert sind. AWS Secrets Manager

Die Schlüsselrichtlinie muss dem externen Benutzer oder dem Konto des externen Benutzers die Berechtigung zur Verwendung des KMS-Schlüssels erteilen. Darüber hinaus müssen Sie IAM-Richtlinien an die Identität anfügen, die dem Benutzer die Berechtigung zur Nutzung des AWS-Service erteilt. Außerdem erfordert der Service möglicherweise, dass Benutzer über zusätzliche Berechtigungen in der Schlüsselrichtlinie oder IAM-Richtlinie verfügen. Eine Liste der Berechtigungen, die für einen vom Kunden verwalteten Schlüssel AWS-Service erforderlich sind, finden Sie im Thema Datenschutz im Kapitel Sicherheit des Benutzer- oder Entwicklerhandbuchs für den Service. 

## Verwenden von KMS-Schlüsseln in anderen Konten
<a name="cross-account-use"></a>

Wenn Sie berechtigt sind, einen KMS-Schlüssel in einem anderen zu verwenden AWS-Konto, können Sie den KMS-Schlüssel in AWS-Managementkonsole, AWS SDKs AWS CLI, und verwenden AWS -Tools für PowerShell. 

Um einen KMS-Schlüssel in einem anderen Konto in einem Shell-Befehl oder einer API-Anforderung zu identifizieren, verwenden Sie die folgenden [Schlüsselbezeichner](concepts.md#key-id).
+ Verwenden Sie für [kryptografische Operationen [DescribeKey[GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)](kms-cryptography.md#cryptographic-operations), und den [Schlüssel-ARN](concepts.md#key-id-key-ARN) oder den [Alias-ARN](concepts.md#key-id-alias-ARN) des KMS-Schlüssels.
+ Verwenden Sie für [CreateGrant[GetKeyRotationStatus[ListGrants[RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/RevokeGrant.html)](https://docs.aws.amazon.com/kms/latest/APIReference/ListGrants.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyRotationStatus.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html), und den Schlüssel ARN des KMS-Schlüssels.

Wenn Sie nur eine Schlüssel-ID oder einen Aliasnamen eingeben, wird AWS davon ausgegangen, dass sich der KMS-Schlüssel in Ihrem Konto befindet.

Die AWS KMS Konsole zeigt keine KMS-Schlüssel in anderen Konten an, auch wenn Sie berechtigt sind, sie zu verwenden. Außerdem enthalten die Listen der KMS-Schlüssel, die in den Konsolen anderer AWS -Services angezeigt werden, keine KMS-Schlüssel in anderen Konten. 

Um einen KMS-Schlüssel in einem anderen Konto in der Konsole eines AWS Dienstes anzugeben, müssen Sie den Schlüssel-ARN oder Alias-ARN des KMS-Schlüssels eingeben. Die erforderliche Schlüssel-ID variiert je nach Service und kann auch zwischen der Servicekonsole und ihren API-Operationen variieren. Weitere Informationen finden Sie in der Service-Dokumentation.

# Steuern Sie den Zugriff auf Schlüssel für mehrere Regionen
<a name="multi-region-keys-auth"></a>

Sie können multiregionale Schlüssel in Compliance-, Notfallwiederherstellungs- und Backup-Szenarien verwenden, die mit einzelregionalen Schlüsseln komplexer wären. Da sich die Sicherheitseigenschaften von multiregionalen Schlüsseln erheblich von denen von einzelregionalen Schlüsseln unterscheiden, empfehlen wir, bei der Autorisierung der Erstellung, Verwaltung und Verwendung von multiregionalen Schlüsseln Vorsicht walten zu lassen.

**Anmerkung**  
Vorhandene IAM-Richtlinienanweisungen mit Platzhalterzeichen im `Resource`-Feld gelten jetzt sowohl für einzelregionale Schlüssel als auch für multiregionale Schlüssel. Um sie auf KMS-Schlüssel mit einer Region oder Schlüssel mit mehreren Regionen zu beschränken, verwenden Sie den Bedingungsschlüssel [kms: MultiRegion](conditions-kms.md#conditions-kms-multiregion).

Verwenden Sie Ihre Autorisierungstools, um die Erstellung und Verwendung von multiregionalen Schlüsseln in jedem Szenario zu verhindern, in dem ein einzelregionaler Schlüssel ausreicht. Erlauben Sie den Prinzipalen, einen Schlüssel mit mehreren Regionen nur in solche zu replizieren, die sie benötigen. AWS-Regionen Erteilen Sie Berechtigungen für multiregionale Schlüssel nur an Prinzipale, die sie benötigen, und nur für Aufgaben, für die sie erforderlich sind.

Mithilfe von Schlüsselrichtlinien, IAM-Richtlinien und Zuschüssen können Sie es IAM-Prinzipalen ermöglichen, Schlüssel für mehrere Regionen in Ihrem zu verwalten und zu verwenden. AWS-Konto Jeder multiregionaler Schlüssel ist eine unabhängige Ressource mit einem eindeutigen Schlüssel-ARN und einer Schlüsselrichtlinie. Sie müssen für jeden Schlüssel eine Schlüsselrichtlinie einrichten und pflegen und sicherstellen, dass neue und vorhandene IAM-Richtlinien Ihre Autorisierungsstrategie implementieren. 

 AWS KMS Verwendet eine mit dem IAM-Dienst verknüpfte Rolle, um Schlüssel für mehrere Regionen zu unterstützen. Diese Rolle gibt AWS KMS die Berechtigungen, die es zum Synchronisieren von [gemeinsam genutzten Eigenschaften](multi-region-keys-overview.md#mrk-sync-properties) benötigt. Weitere Informationen finden Sie unter [Autorisierung zur Synchronisation von AWS KMS Schlüsseln aus mehreren Regionen](multi-region-auth-slr.md).

**Topics**
+ [

## Grundlagen der Autorisierung für multiregionale Schlüssel
](#multi-region-auth-about)
+ [

## Autorisieren von Administratoren und Benutzern für multiregionale Schlüssel
](#multi-region-auth-users)

## Grundlagen der Autorisierung für multiregionale Schlüssel
<a name="multi-region-auth-about"></a>

Berücksichtigen Sie beim Entwerfen von Schlüsselrichtlinien und IAM-Richtlinien für multiregionale Schlüssel die folgenden Grundsätze.
+ **Schlüsselrichtlinie** – Jeder multiregionale Schlüssel ist eine unabhängige KMS-Schlüsselressource mit einer eigenen [Schlüsselrichtlinie](key-policies.md). Sie können dieselbe oder eine andere Schlüsselrichtlinie auf jeden Schlüssel in dem Satz von verwandten multiregionalen Schlüsseln anwenden. Schlüsselrichtlinien sind *keine* [gemeinsamen Eigenschaften](multi-region-keys-overview.md#mrk-sync-properties) von Schlüsseln mit mehreren Regionen. AWS KMS kopiert oder synchronisiert keine Schlüsselrichtlinien zwischen zugehörigen Schlüsseln mit mehreren Regionen. 

  Wenn Sie einen Replikatschlüssel in der AWS KMS Konsole erstellen, zeigt die Konsole der Einfachheit halber die aktuelle Schlüsselrichtlinie des Primärschlüssels an. Sie können diese Schlüsselrichtlinie verwenden, bearbeiten oder löschen und ersetzen. Aber selbst wenn Sie die Primärschlüsselrichtlinie unverändert akzeptieren, werden die Richtlinien AWS KMS nicht synchronisiert. Wenn Sie beispielsweise die Schlüsselrichtlinie des Primärschlüssels ändern, bleibt die Schlüsselrichtlinie des Replikatschlüssels unverändert.
+ **Standardschlüsselrichtlinie** — Wenn Sie Schlüssel für mehrere Regionen mithilfe der `ReplicateKey` Operationen [CreateKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateKey.html)und erstellen, wird die [Standardschlüsselrichtlinie](key-policy-default.md) angewendet, sofern Sie in der Anforderung keine Schlüsselrichtlinie angeben. Dies ist die gleiche Standard-Schlüsselrichtlinie, die auf einzelregionale Schlüssel angewendet wird.
+ **IAM-Richtlinien** – Wie bei allen KMS-Schlüsseln können Sie IAM-Richtlinien verwenden, um den Zugriff auf multiregionale Schlüssel nur dann zu steuern, wenn die [Schlüsselrichtlinie es erlaubt](key-policy-default.md#key-policy-default-allow-root-enable-iam). [IAM-Richtlinien](iam-policies.md) gelten standardmäßig für alle AWS-Regionen . Sie können jedoch Bedingungsschlüssel wie [aws:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion) verwendenRequestedRegion, um Berechtigungen auf eine bestimmte Region zu beschränken. 

  Zum Erstellen von Primär- und Replikatschlüsseln müssen Prinzipale die `kms:CreateKey`-Berechtigung in einer IAM-Richtlinie haben, die für die Region gilt, wo der Schlüssel erstellt wird. 
+ **Zuschüsse** — AWS KMS [Zuschüsse](grants.md) sind regional. Jede Erteilung erlaubt Berechtigungen für einen KMS-Schlüssel. Sie können Erteilungen verwenden, um Berechtigungen für einen multiregionalen Primärschlüssel oder Replikatschlüssel zuzulassen. Sie können jedoch keine einzelne Erteilung verwenden, um Berechtigungen für mehrere KMS-Schlüssel zuzulassen, selbst wenn es sich um verwandte multiregionale Schlüssel handelt.
+ **Schüssel-ARN** – Jeder multiregionale Schlüssel verfügt über einen [Schüssel-ARN](mrk-how-it-works.md). Die Schlüssel ARNs verwandter Schlüssel für mehrere Regionen haben dieselbe Partition, dasselbe Konto und dieselbe Schlüssel-ID, aber unterschiedliche Regionen.

  Um eine IAM-Richtlinienanweisung auf einen bestimmten multiregionalen Schlüssel anzuwenden, verwenden Sie dessen Schlüssel-ARN oder ein Schlüssel-ARN-Muster, das die Region enthält. Verwenden Sie ein Platzhalterzeichen (\$1) im Region-Element des ARN, um eine IAM-Richtlinienanweisung auf alle verwandten multiregionalen Schlüssel.

  ```
  {
    "Effect": "Allow",  
    "Action": [
      "kms:Describe*",
      "kms:List*"
    ],
    "Resource": {
        "arn:aws:kms:*::111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab"
    }
  }
  ```

  Um eine Richtlinienerklärung auf alle Schlüssel mit mehreren Regionen in Ihrem anzuwenden AWS-Konto, können Sie die MultiRegion Richtlinienbedingung [kms:](conditions-kms.md#conditions-kms-multiregion) oder ein Schlüssel-ID-Muster verwenden, das das eindeutige Präfix enthält. `mrk-`
+ **Dienstbezogene Rolle** [— Principals, die Primärschlüssel für mehrere Regionen erstellen, müssen über die iam: -Berechtigung verfügen. CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html)

   AWS KMS [Nimmt eine dienstbezogene IAM-Rolle an, um die gemeinsamen Eigenschaften verwandter Schlüssel mit mehreren Regionen zu synchronisieren.](multi-region-auth-slr.md) AWS KMS erstellt die dienstverknüpfte Rolle im, AWS-Konto wann immer Sie einen Primärschlüssel für mehrere Regionen erstellen. (Wenn die Rolle vorhanden ist, erstellt AWS KMS sie neu, was keine schädliche Wirkung hat.) Die Rolle ist in allen Regionen gültig. [Damit die dienstverknüpfte Rolle erstellt (oder neu erstellt) werden kann, AWS KMS müssen Principals, die Primärschlüssel für mehrere Regionen erstellen, über die Berechtigung iam: verfügen. CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html)

## Autorisieren von Administratoren und Benutzern für multiregionale Schlüssel
<a name="multi-region-auth-users"></a>

Prinzipale, die multiregionale Schlüssel erstellen und verwalten, benötigen die folgenden Berechtigungen in den primären und Replikatregionen:
+ `kms:CreateKey`
+ `kms:ReplicateKey`
+ `kms:UpdatePrimaryRegion`
+ `iam:CreateServiceLinkedRole`

### Erstellen eines Primärschlüssels
<a name="mrk-auth-create-primary"></a>

Um [einen Primärschlüssel mit mehreren Regionen zu erstellen](create-primary-keys.md), benötigt der Principal die CreateServiceLinkedRole Berechtigungen [kms: CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) und [iam: in einer IAM-Richtlinie](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html), die in der Region des Primärschlüssels gilt. Prinzipale, die über diese Berechtigungen verfügen, können einzelregionale Schlüssel und multiregionale Schlüssel erstellen, es sei denn, Sie beschränken ihre Berechtigungen. 

Mit dieser `iam:CreateServiceLinkedRole` Berechtigung kann die [**AWSServiceRoleForKeyManagementServiceMultiRegionKeys**Rolle AWS KMS](multi-region-auth-slr.md) zum Synchronisieren der [gemeinsamen Eigenschaften](multi-region-keys-overview.md#mrk-sync-properties) verwandter Schlüssel mit mehreren Regionen erstellt werden.

Diese IAM-Richtlinie ermöglicht es einem Principal beispielsweise, Schlüssel für mehrere Regionen zu erstellen, Richtlinien für diese Schlüssel anzuhängen und dienstbezogene Rollen für Schlüssel mit mehreren Regionen zu erstellen.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":{
      "Action": [
        "kms:CreateKey",
        "iam:CreateServiceLinkedRole"
      ],
      "Effect":"Allow",
      "Resource":"*"
  }
}
```

------

Verwenden Sie den Bedingungsschlüssel [kms](conditions-kms.md#conditions-kms-multiregion):, um die Erlaubnis zur Erstellung von Primärschlüsseln für mehrere Regionen zu gewähren oder zu verweigern. MultiRegion Gültige Werte sind `true` (multiregionaler Schlüssel) oder `false` (einzelregionaler Schlüssel). Beispielsweise verwendet die folgende IAM-Richtlinienanweisung eine `Deny`-Aktion mit dem `kms:MultiRegion`-Bedingungsschlüssel, um zu verhindern, dass Prinzipale multiregionale Schlüssel erstellen. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":{
      "Action":"kms:CreateKey",
      "Effect":"Deny",
      "Resource":"*",
      "Condition": {
          "Bool": {
            "kms:MultiRegion": true
          }
      }
  }
}
```

------

### Replizieren von Schlüsseln
<a name="mrk-auth-replicate"></a>

Um [einen multiregionalen Replikatschlüssel zu erstellen](#mrk-auth-replicate), benötigt der Prinzipal die folgenden Berechtigungen:
+  [kms: ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html) Berechtigung in der Schlüsselrichtlinie des Primärschlüssels.
+ [kms: CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) Berechtigung in einer IAM-Richtlinie, die in der Region des Replikatschlüssels wirksam ist.

Seien Sie vorsichtig, wenn Sie diese Berechtigungen zulassen. Sie ermöglichen es Prinzipalen, KMS-Schlüssel und die Schlüsselrichtlinien zu erstellen, die ihre Verwendung autorisieren. Die `kms:ReplicateKey`-Berechtigung autorisiert auch die Übertragung von Schlüsselmaterial über Regionsgrenzen innerhalb von AWS KMS.

Verwenden Sie den Bedingungsschlüssel [kms](conditions-kms.md#conditions-kms-replica-region):, um einzuschränken, AWS-Regionen in welchen Bereichen ein Schlüssel aus mehreren Regionen repliziert werden kann. ReplicaRegion Es begrenzt nur die`kms:ReplicateKey`-Berechtigung. Andernfalls hat es keine Auswirkungen. Beispielsweise ermöglicht die folgende Schlüsselrichtlinie dem Prinzipal, diesen Primärschlüssel zu replizieren, jedoch nur in den angegebenen Regionen.

```
{
  "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"
      ]
    }
  }
}
```

### Aktualisieren der primären Region
<a name="mrk-auth-update"></a>

Autorisierte Prinzipale können einen Replikatschlüssel in einen Primärschlüssel konvertieren, wodurch der frühere Primärschlüssel in ein Replikat umgewandelt wird. Diese Aktion ist bekannt als [Aktualisieren der primären Region](multi-region-update.md). Um die primäre Region zu aktualisieren, benötigt der Principal die [UpdatePrimaryRegionkms:-Berechtigung](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html) in beiden Regionen. Sie können diese Berechtigungen in einer Schlüsselrichtlinie oder einer IAM-Richtlinie bereitstellen.
+ `kms:UpdatePrimaryRegion` für den Primärschlüssel. Diese Berechtigung muss in der Region des Primärschlüssels wirksam sein.
+ `kms:UpdatePrimaryRegion` für den Replikatschlüssel. Diese Berechtigung muss in der Region des Replikatschlüssels wirksam sein.

Die folgende Schlüsselrichtlinie gibt Benutzern, die die Administratorrolle übernehmen können, die Berechtigung zum Aktualisieren der primären Region des KMS-Schlüssels. Dieser KMS-Schlüssel kann der Primärschlüssel oder ein Replikatschlüssel in dieser Operation sein.

```
{
  "Effect": "Allow",
  "Resource": "*",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/Administrator"
  },
  "Action": "kms:UpdatePrimaryRegion"
}
```

Verwenden Sie den PrimaryRegion Bedingungsschlüssel [kms: AWS-Regionen](conditions-kms.md#conditions-kms-primary-region), um einzuschränken, wer einen Primärschlüssel hosten kann. Die folgende IAM-Richtlinienanweisung ermöglicht es den Prinzipalen beispielsweise, die primäre Region der Schlüssel für mehrere Regionen in der zu aktualisieren AWS-Konto, aber nur, wenn die neue primäre Region eine der angegebenen Regionen ist.

```
{
  "Effect": "Allow",  
  "Action": "kms:UpdatePrimaryRegion",
  "Resource": {
      "arn:aws:kms:*:111122223333:key/*"
  },
  "Condition": {
    "StringEquals": {
      "kms:PrimaryRegion": [ 
         "us-west-2",
         "sa-east-1",
         "ap-southeast-1"
      ]
    }
  }
}
```

### Verwenden und Verwalten von multiregionalen Schlüsseln
<a name="mrk-auth-using"></a>

Standardmäßig haben Prinzipale, die über die Berechtigung zum Verwenden und Verwalten von KMS-Schlüsseln in einem AWS-Konto und einer Region haben, auch die Berechtigung, multiregionale Schlüssel zu verwenden und zu verwalten. Sie können jedoch den MultiRegion Bedingungsschlüssel [kms:](conditions-kms.md#conditions-kms-multiregion) verwenden, um nur Schlüssel mit einer Region oder nur Schlüssel mit mehreren Regionen zuzulassen. Oder verwenden Sie den MultiRegionKeyType Bedingungsschlüssel [kms:](conditions-kms.md#conditions-kms-multiregion-key-type), um nur Primärschlüssel mit mehreren Regionen oder nur Replikatschlüssel zuzulassen. Beide Bedingungsschlüssel steuern den Zugriff auf den [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)Vorgang und auf alle Operationen, die einen vorhandenen KMS-Schlüssel verwenden, z. B. [Verschlüsseln](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) oder. [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html)

Beispielsweise verwendet die folgende IAM-Richtlinienanweisung den `kms:MultiRegion`-Bedingungsschlüssel, um zu verhindern, dass Prinzipale multiregionale Schlüssel verwenden oder verwalten.

```
{
  "Effect": "Deny",  
  "Action": "kms:*",
  "Resource": "*",
  "Condition": {
    "Bool": "kms:MultiRegion": true
  }
}
```

In diesem Beispiel verwendet die IAM-Richtlinienanweisung die `kms:MultiRegionKeyType`-Bedingung, damit Prinzipale das Löschen von Schlüsseln planen und abbrechen können, jedoch nur für multiregionale Replikatschlüssel.

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

# Bestimmung des Zugriffs auf AWS KMS keys
<a name="determining-access"></a>

Um zu ermitteln, wer oder was derzeit Zugriff auf eine hat AWS KMS key, müssen Sie die Schlüsselrichtlinie des KMS-Schlüssels, alle [Zuweisungen](grants.md), die für den KMS-Schlüssel gelten, und möglicherweise alle AWS Identity and Access Management (IAM-) Richtlinien untersuchen. Sie können damit den Umfang der potenziellen Nutzung eines KMS-Schlüssels bestimmen, oder Compliance- oder Auditing-Anforderungen erfüllen. Die folgenden Themen können Ihnen dabei helfen, eine vollständige Liste der AWS -Prinzipale (Identitäten) zu erzeugen, die derzeit Zugriff auf einen KMS-Schlüssel haben.

**Topics**
+ [

# Untersuchen der Schlüsselrichtlinie
](determining-access-key-policy.md)
+ [

# Untersuchen von IAM-Richtlinien
](determining-access-iam-policies.md)
+ [

# Prüfen von Erteilungen
](determining-access-grants.md)

# Untersuchen der Schlüsselrichtlinie
<a name="determining-access-key-policy"></a>

[Schlüsselrichtlinien](key-policies.md) sind die primäre Methode zur Zugriffssteuerung für KMS-Schlüssel. Jeder KMS-Schlüssel besitzt genau eine Schlüsselrichtlinie.

Wenn eine Schlüsselrichtlinie aus der [Standard-Schlüsselrichtlinie](key-policy-default.md#key-policy-default-allow-root-enable-iam) besteht oder sie enthält, berechtigt die Schlüsselrichtlinie IAM-Administratoren im Konto dazu, mithilfe von IAM-Richtlinien den Zugriff auf den KMS-Schlüssel zu steuern. Wenn die Schlüsselrichtlinie einem [anderen AWS-Konto](key-policy-modifying-external-accounts.md) die Berechtigung zur Verwendung des KMS-Schlüssels erteilt, können die IAM-Administratoren im externen Konto diese Berechtigungen anhand von IAM-Richtlinien delegieren. Um die komplette Liste der Prinzipale mit Zugriff auf den KMS-Schlüssel zu bestimmen, [untersuchen Sie die IAM-Richtlinien](determining-access-iam-policies.md). 

Um die wichtigsten Richtlinien für einen vom AWS KMS [Kunden verwalteten Schlüssel](concepts.md#customer-mgn-key) oder [Von AWS verwalteter Schlüssel](concepts.md#aws-managed-key)in Ihrem Konto einzusehen, verwenden Sie die Operation AWS-Managementkonsole oder die [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)Operation in der AWS KMS API. Um die Schlüsselrichtlinie anzeigen zu können, müssen Sie über `kms:GetKeyPolicy`-Berechtigungen für den KMS-Schlüssel verfügen. Anweisungen zum Anzeigen der Schlüsselrichtlinie für einen KMS-Schlüssel finden Sie unter [Wichtige Richtlinien anzeigen](key-policy-viewing.md).

Überprüfen Sie das Schlüssel-Richtliniendokument und notieren Sie alle Hauptpunkte, die in jedem `Principal` Element der Richtlinie aufgeführt ist. In einer Richtlinienerklärung mit `Allow` Wirkung haben die IAM-Benutzer, die IAM-Rollen und AWS-Konten das `Principal` Element Zugriff auf diesen KMS-Schlüssel.

**Anmerkung**  
Setzen Sie den Prinzipal nicht auf ein Sternchen (\$1) in einer Schlüsselrichtlinienanweisung, die Berechtigungen erlaubt, es sei denn, Sie verwenden [Bedingungen](policy-conditions.md), um die Schlüsselrichtlinie einzuschränken. Ein Sternchen gibt jede Identität in jeder AWS-Konto Berechtigung zur Verwendung des KMS-Schlüssels an, sofern dies nicht in einer anderen Richtlinienanweisung ausdrücklich verweigert wird. Benutzer in anderen Ländern AWS-Konten können Ihren KMS-Schlüssel immer dann verwenden, wenn sie über entsprechende Berechtigungen in ihrem eigenen Konto verfügen.

Die folgenden Beispiele verwenden die Richtlinien-Anweisungen in der [Standard-Schlüsselrichtlinie](key-policy-default.md), um dies zu demonstrieren.

**Example Richtlinienanweisung 1**  

```
{
  "Sid": "Enable IAM User Permissions",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:root"},
  "Action": "kms:*",
  "Resource": "*"
}
```
In Grundsatzerklärung 1 `arn:aws:iam::111122223333:root` ist dies ein [AWS Kontoprinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts), der sich auf AWS-Konto 111122223333 bezieht. (Er ist nicht der Root-Benutzer des Kontos.) Standardmäßig ist eine Richtlinienerklärung wie diese im Dokument mit den wichtigsten Richtlinien enthalten, wenn Sie einen neuen KMS-Schlüssel mit dem erstellen oder programmgesteuert einen neuen KMS-Schlüssel erstellen AWS-Managementkonsole, aber keine Schlüsselrichtlinie angeben.  
Ein wichtiges Richtliniendokument mit einer Erklärung, die den Zugriff auf die ermöglicht, AWS-Konto aktiviert die [IAM-Richtlinien im Konto, um den Zugriff auf den KMS-Schlüssel zu ermöglichen](key-policy-default.md#key-policy-default-allow-root-enable-iam). Das bedeutet, dass Benutzer und Rollen im Konto Zugriff auf den KMS-Schlüssel haben könnten, auch wenn sie explizit nicht als Prinzipale im Schlüsselrichtliniendokument aufgelistet sind. [Prüfen Sie sorgfältig alle IAM-Richtlinien in allen](determining-access-iam-policies.md) als Principals AWS-Konten aufgelisteten Richtlinien, um festzustellen, ob sie den Zugriff auf diesen KMS-Schlüssel ermöglichen.

**Example Richtlinienanweisung 2**  

```
{
  "Sid": "Allow access for Key Administrators",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/KMSKeyAdmins"},
  "Action": [
    "kms:Describe*",
    "kms:Put*",
    "kms:Create*",
    "kms:Update*",
    "kms:Enable*",
    "kms:Revoke*",
    "kms:List*",
    "kms:Disable*",
    "kms:Get*",
    "kms:Delete*",
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "*"
}
```
`arn:aws:iam::111122223333:role/KMSKeyAdmins`Bezieht sich in Grundsatzerklärung 2 auf die IAM-Rolle mit dem Namen KMSKey Admins in 111122223333. AWS-Konto Benutzer, die diese Rolle annehmen dürfen, dürfen die in der Richtlinienanweisung aufgeführten Aktionen ausführen, die die administrativen Aktionen für die Verwaltung eines KMS-Schlüssels sind.

**Example Richtlinienanweisung 3**  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"},
  "Action": [
    "kms:DescribeKey",
    "kms:GenerateDataKey*",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:Decrypt"
  ],
  "Resource": "*"
}
```
`arn:aws:iam::111122223333:role/EncryptionApp`Bezieht sich in Grundsatzerklärung 3 auf die in 111122223333 genannte IAM-Rolle. EncryptionApp AWS-Konto Prinzipale, die diese Rolle annehmen dürfen, dürfen die in der Richtlinienanweisung aufgeführten Aktionen durchführen, die die [kryptografischen Operationen](kms-cryptography.md#cryptographic-operations) für einen symmetrischen KMS-Schlüssel enthalten.

**Example Richtlinienanweisung 4**  

```
{
  "Sid": "Allow attachment of persistent resources",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"},
  "Action": [
    "kms:ListGrants",
    "kms:CreateGrant",
    "kms:RevokeGrant"
  ],
  "Resource": "*",
  "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
}
```
`arn:aws:iam::111122223333:role/EncryptionApp`Bezieht sich in Grundsatzerklärung 4 auf die in 111122223333 genannte IAM-Rolle. EncryptionApp AWS-Konto Prinzipal, die diese Rolle annehmen dürfen, dürfen die in der Richtlinienanweisung aufgeführten Aktionen ausführen. Diese Aktionen in Kombination mit den erlaubten Aktionen in der **Beispiel-Richtlinienanweisung 3** sind diejenigen, die zum Delegieren der Verwendung des KMS-Schlüssels für die meisten [AWS -Services, die mit AWS KMS integriert sind](service-integration.md), erforderlich sind, insbesondere für die Services, die [Erteilungen](grants.md) verwenden. Der GrantIsFor AWSResource Wert [kms:](conditions-kms.md#conditions-kms-grant-is-for-aws-resource) im `Condition` Element stellt sicher, dass die Delegierung nur zulässig ist, wenn es sich bei dem Delegaten um einen AWS Dienst handelt, der in die Autorisierung integriert ist und Grants zur Autorisierung verwendet. AWS KMS 

Die unterschiedlichen Möglichkeiten zum Angeben eines Prinzipals in einem Schlüsselrichtlinien-Dokument finden Sie unter [Angeben eines Prinzipals](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Principal_specifying) im *IAM-Benutzerhandbuch*.

Weitere Informationen zu den AWS KMS wichtigsten Richtlinien finden Sie unter[Wichtige Richtlinien in AWS KMS](key-policies.md).

# Untersuchen von IAM-Richtlinien
<a name="determining-access-iam-policies"></a>

Zusätzlich zu den Schlüsselrichtlinien und Berechtigungen können Sie auch [IAM-Richtlinien](iam-policies.md) verwenden, um den Zugriff auf einen KMS-Schlüssel zu erlauben. Weitere Informationen darüber, wie IAM-Richtlinien und Schlüsselrichtlinien zusammen funktionieren, finden Sie unter [Problembehandlung bei AWS KMS Berechtigungen](policy-evaluation.md).

Um zu bestimmen, welche Prinzipale derzeit über IAM-Richtlinien auf einen KMS-Schlüssel zugreifen können, verwenden Sie das browserbasierte [IAM-Richtliniensimulator](https://policysim.aws.amazon.com/)-Tool. Alternativ können Sie Anforderungen an die IAM-API durchführen.

**Contents**
+ [

## Untersuchen von IAM-Richtlinien mit dem IAM-Richtliniensimulator
](#determining-access-iam-policy-simulator)
+ [

## Untersuchen von IAM-Richtlinien mit der IAM-API
](#determining-access-iam-api)

## Untersuchen von IAM-Richtlinien mit dem IAM-Richtliniensimulator
<a name="determining-access-iam-policy-simulator"></a>

Mit dem IAM-Richtliniensimulator können Sie erfahren, welche Prinzipale über eine IAM-Richtlinie Zugriff auf einen KMS-Schlüssel haben.

**So verwenden Sie den IAM-Richtliniensimulator, um den Zugriff auf einen KMS-Schlüssel zu bestimmen**

1. Melden Sie sich beim an AWS-Managementkonsole und öffnen Sie dann den IAM Policy Simulator unter[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/).

1. Wählen Sie im Feld **Benutzer, Gruppen und Rollen** den Benutzer, Gruppe oder Rolle, deren Richtlinien Sie simulieren möchten.

1. (Optional) Deaktivieren Sie das Kontrollkästchen neben den Richtlinien, die Sie von der Simulation auslassen möchten. Um alle Richtlinien zu simulieren, markieren Sie alle Richtlinien.

1. Führen Sie im Bereich **Richtliniensimulator** die folgenden Schritte aus:

   1. Wählen Sie für **Service wählen** die Option **Key Management Service**.

   1. Um bestimmte AWS KMS Aktionen zu simulieren, **wählen Sie unter Aktionen auswählen** die zu simulierenden Aktionen aus. Um alle AWS KMS Aktionen zu simulieren, wählen **Sie Alle auswählen**.

1. (Optional) Der Richtliniensimulator simuliert standardmäßig einen Zugriff auf alle KMS-Schlüssel. Um den Zugriff auf einen bestimmten KMS-Schlüssel zu simulieren, wählen Sie **Simulation Settings (Simulationseinstellungen)** und geben Sie dann den Amazon-Ressourcennamen (ARN) des zu simulierenden KMS-Schlüssels ein.

1. Wählen Sie **Run Simulation (Simulation ausführen)**.

Sie können die Ergebnisse der Simulation im Abschnitt **Ergebnisse** sehen. Wiederholen Sie die Schritte 2 bis 6 für alle Benutzer, Gruppen und Rollen im AWS-Konto.

## Untersuchen von IAM-Richtlinien mit der IAM-API
<a name="determining-access-iam-api"></a>

Sie können mit der IAM-API programmgesteuert IAM-Richtlinien untersuchen. Die folgenden Schritte bieten eine allgemeine Übersicht darüber:

1. Verwenden Sie für jede, die in der Schlüsselrichtlinie als Prinzipal AWS-Konto aufgeführt ist (d. h. für jeden [AWS Kontoprinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts), der in diesem Format angegeben ist:`"Principal": {"AWS": "arn:aws:iam::111122223333:root"}`), die [ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html)Operationen [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html)und in der IAM-API, um alle Benutzer und Rollen im Konto abzurufen.

1. Verwenden Sie für jeden Benutzer und jede Rolle in der Liste den [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)Vorgang in der IAM-API und übergeben Sie dabei die folgenden Parameter:
   + Geben Sie für `PolicySourceArn` den Amazon-Ressourcennamen (ARN) für einen Benutzer oder eine Rolle aus der Liste an. Sie können nur jeweils einen `PolicySourceArn` pro `SimulatePrincipalPolicy`-Anforderung angeben. Deshalb müssen Sie diese Operation mehrfach aufrufen – jeweils einmal für jeden Benutzer und jede Rolle in der Liste.
   + Geben Sie für die `ActionNames` Liste jede AWS KMS API-Aktion an, die simuliert werden soll. Um alle AWS KMS API-Aktionen zu simulieren, verwenden Sie`kms:*`. Um einzelne AWS KMS API-Aktionen zu testen, stellen Sie jeder API-Aktion "`kms:`" voran, zum Beispiel "`kms:ListKeys`“. Eine vollständige Liste aller AWS KMS -API-Aktionen finden Sie unter [Aktionen](https://docs.aws.amazon.com/kms/latest/APIReference/API_Operations.html) in der *AWS Key Management Service -API-Referenz*.
   + (Optional) Um zu ermitteln, ob die Benutzer oder Rollen Zugriff auf bestimmte KMS-Schlüssel haben, verwenden Sie den `ResourceArns` Parameter, um eine Liste der Amazon-Ressourcennamen (ARNs) der KMS-Schlüssel anzugeben. Vermeiden Sie den `ResourceArns`-Parameter, um zu prüfen, ob die Benutzer oder Rollen Zugriff auf irgendwelche KMS-Schlüssel haben.

IAM antwortet auf jede `SimulatePrincipalPolicy`-Anforderung mit einer Bewertungsentscheidung: `allowed`, `explicitDeny`, oder `implicitDeny`. Für jede Antwort, die eine Bewertungsentscheidung von enthält`allowed`, enthält die Antwort den Namen des spezifischen AWS KMS API-Vorgangs, der zulässig ist. Darüber hinaus enthält sie den ARN des KMS-Schlüssels, der in der Bewertung verwendet wurde, falls vorhanden.

# Prüfen von Erteilungen
<a name="determining-access-grants"></a>

Grants sind erweiterte Mechanismen zur Angabe von Berechtigungen, mit denen Sie oder ein integrierter AWS Dienst angeben AWS KMS können, wie und wann ein KMS-Schlüssel verwendet werden kann. Erteilungen werden einem KMS-Schlüssel angefügt. Jede Erteilung enthält den Prinzipal, dem die Berechtigung zur Verwendung des KMS-Schlüssels erteilt wird, sowie eine Liste der erlaubten Produktionen. Berechtigungen sind eine Alternative zu den Schlüsselrichtlinien und eignen sich für bestimmte Anwendungsfälle. Weitere Informationen finden Sie unter [Zuschüsse in AWS KMS](grants.md).

Verwenden Sie den AWS KMS [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)Vorgang, um eine Liste der Berechtigungen für einen KMS-Schlüssel abzurufen. Sie können die Erteilungen für einen KMS-Schlüssel untersuchen, um zu bestimmen, wer oder was derzeit über diese Erteilungen Zugriff auf den KMS-Schlüssel hat. Das folgende Beispiel ist eine JSON-Darstellung einer Erteilung, die vom Befehl [list-grants](https://docs.aws.amazon.com/cli/latest/reference/kms/list-grants.html) in der AWS CLI abgerufen wurde.

```
{"Grants": [{
  "Operations": ["Decrypt"],
  "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "Name": "0d8aa621-43ef-4657-b29c-3752c41dc132",
  "RetiringPrincipal": "arn:aws:iam::123456789012:root",
  "GranteePrincipal": "arn:aws:sts::111122223333:assumed-role/aws:ec2-infrastructure/i-5d476fab",
  "GrantId": "dc716f53c93acacf291b1540de3e5a232b76256c83b2ecb22cdefa26576a2d3e",
  "IssuingAccount": "arn:aws:iam::111122223333:root",
  "CreationDate": 1.444151834E9,
  "Constraints": {"EncryptionContextSubset": {"aws:ebs:id": "vol-5cccfb4e"}}
}]}
```

Um herauszufinden, wer oder was Zugriff auf den KMS-Schlüssel hat, suchen Sie nach dem `"GranteePrincipal"`-Element. Im vorherigen Beispiel ist der Empfänger-Prinzipal ein Benutzer der angenommene Rolle, der mit der EC2-Instance i-5d476fab verknüpft ist. Die EC2-Infrastruktur verwendet diese Rolle, um das verschlüsselten EBS-Volume vol-5cccfb4e an die Instance anzufügen. In diesem Fall ist die EC2-Infrastruktur-Rolle berechtigt, den KMS-Schlüssel zu verwenden, da Sie zuvor ein verschlüsseltes EBS-Volume erstellt haben, das von diesem KMS-Schlüssel geschützt wird. Anschließend haben Sie das Volume an eine EC2-Instance angefügt.

Hier ein weiteres Beispiel einer JSON-Darstellung einer Erteilung, die vom Befehl [list-grants](https://docs.aws.amazon.com/cli/latest/reference/kms/list-grants.html) in der AWS CLI abgerufen wurde. Im folgenden Beispiel ist der Principal des Empfängers ein weiterer AWS-Konto.

```
{"Grants": [{
  "Operations": ["Encrypt"],
  "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "Name": "",
  "GranteePrincipal": "arn:aws:iam::444455556666:root",
  "GrantId": "f271e8328717f8bde5d03f4981f06a6b3fc18bcae2da12ac38bd9186e7925d11",
  "IssuingAccount": "arn:aws:iam::111122223333:root",
  "CreationDate": 1.444151269E9
}]}
```

# Verschlüsselungskontext
<a name="encrypt_context"></a>

**Anmerkung**  
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.

Alle AWS KMS [kryptografischen Operationen](kms-cryptography.md#cryptographic-operations) mit [symmetrischer Verschlüsselung von KMS-Schlüsseln](symm-asymm-choose-key-spec.md#symmetric-cmks) akzeptieren einen *Verschlüsselungskontext*, einen optionalen Satz nicht geheimer Schlüssel-Wert-Paare, die zusätzliche Kontextinformationen zu den Daten enthalten können. Sie können Verschlüsselungskontext in `Encrypt` Operationen einfügen, um die Autorisierung und Überprüfbarkeit Ihrer API-Entschlüsselungsaufrufe AWS KMS zu verbessern. AWS KMS AWS KMS verwendet den Verschlüsselungskontext als zusätzliche authentifizierte Daten (AAD), um die authentifizierte Verschlüsselung zu unterstützen. Der Verschlüsselungskontext ist kryptografisch an den Chiffretext gebunden, sodass derselbe Verschlüsselungskontext zum Entschlüsseln der Daten erforderlich ist.

Der Verschlüsselungskontext ist nicht geheim und nicht verschlüsselt. Er erscheint als Klartext in [AWS CloudTrail -Protokollen](logging-using-cloudtrail.md), kann also zum Identifizieren und Kategorisieren der kryptografischen Operationen herangezogen werden. Ihr Verschlüsselungskontext sollte keine sensiblen Informationen enthalten. Wir empfehlen, dass Ihr Verschlüsselungskontext die zu verschlüsselnden oder zu entschlüsselnden Daten beschreibt. Wenn Sie z. B. eine Datei verschlüsseln, können Sie einen Teil des Dateipfads als Verschlüsselungskontext verwenden.

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

Bei der Verschlüsselung von Volumes und Snapshots, die mit dem [Amazon Elastic Block Store (Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) EBS) [CreateSnapshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshot.html)-Vorgang erstellt wurden, verwendet Amazon EBS beispielsweise die Volume-ID als Wert für den Verschlüsselungskontext.

```
"encryptionContext": {
  "aws:ebs:id": "vol-abcde12345abc1234"
}
```

Sie können den Verschlüsselungskontext auch verwenden, um den Zugriff in Ihrem Konto zu verfeinern oder einzuschränken. AWS KMS keys Sie können den Verschlüsselungskontext als [Einschränkung in Erteilungen](grants.md) und als *[Bedingung in Richtlinien](policy-conditions.md)* verwenden. Bei Schlüsseln für den Verschlüsselungskontext und ihren Werten kann es sich um beliebige Zeichenketten mit handeln`aws`. Diese Werte stehen im Gegensatz zu [AWS generierten Tags](https://docs.aws.amazon.com/tag-editor/latest/userguide/best-practices-and-strats.html#tag-conventions) wie [aws:cloudformation:stack-name](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-resource-tags.html). Weitere Informationen finden Sie unter [kms:EncryptionContext: *Kontextschlüssel*](conditions-kms.md#conditions-kms-encryption-context). 

Informationen zur Verwendung des Verschlüsselungskontextes zum Schutz der Integrität verschlüsselter Daten finden Sie im Beitrag [So schützen Sie die Integrität Ihrer verschlüsselten Daten durch Verwendung und im Sicherheitsblog](https://aws.amazon.com/blogs/security/how-to-protect-the-integrity-of-your-encrypted-data-by-using-aws-key-management-service-and-encryptioncontext/). AWS Key Management Service EncryptionContext AWS 

## Regeln für den Verschlüsselungskontext
<a name="encryption-context-rules"></a>

AWS KMS erzwingt die folgenden Regeln für Schlüssel und Werte im Verschlüsselungskontext.
+ Der Schlüssel und der Wert in einem Verschlüsselungskontextpaar müssen einfache Literalzeichenfolgen sein. Wenn Sie einen anderen Typ verwenden, z. B. eine Ganzzahl oder Gleitkommazahl, interpretiert AWS KMS ihn als Zeichenfolge.
+ Die Schlüssel und Werte in einem Verschlüsselungskontext können Unicode-Zeichen enthalten. Wenn ein Verschlüsselungskontext Zeichen enthält, die in Schlüsselrichtlinien oder IAM-Richtlinien nicht zulässig sind, können Sie den Verschlüsselungskontext nicht in Richtlinienbedingungsschlüsseln angeben, z. B. [`kms:EncryptionContext:context-key`](conditions-kms.md#conditions-kms-encryption-context) und [`kms:EncryptionContextKeys`](conditions-kms.md#conditions-kms-encryption-context-keys). Weitere Informationen zu 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*.

## Verschlüsselungskontext in Richtlinien
<a name="encryption-context-authorization"></a>

Der Verschlüsselungskontext wird hauptsächlich verwendet, um Integrität und Authentizität zu überprüfen. Sie können den Verschlüsselungskontext aber auch verwenden, um den Zugriff auf AWS KMS keys mit symmetrischer Verschlüsselung in Schlüsselrichtlinien und IAM-Richtlinien zu kontrollieren. 

Die EncryptionContextKeys Bedingungsschlüssel [kmsEncryptionContext::](conditions-kms.md#conditions-kms-encryption-context) und [kms:](conditions-kms.md#conditions-kms-encryption-context) erlauben (oder verweigern) eine Berechtigung nur, wenn die Anforderung bestimmte Verschlüsselungskontextschlüssel oder Schlüssel-Wert-Paare enthält. 

Die folgende Schlüsselrichtlinienanweisung erlaubt es beispielsweise der `RoleForExampleApp`-Rolle, den KMS-Schlüssel in `Decrypt`-Operationen zu verwenden. Sie verwendet den `kms:EncryptionContext:context-key`-Bedingungsschlüssel, um diese Berechtigung nur zu erlauben, wenn der Verschlüsselungskontext in der Anforderung ein `AppName:ExampleApp`-Verschlüsselungskontextpaar enthält.

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

Weitere Informationen zu diesen Bedingungskontextschlüsseln finden Sie unter [Bedingungsschlüssel für AWS KMS](policy-conditions.md).

## Verschlüsselungskontext in Erteilungen
<a name="encryption-context-grants"></a>

Wenn Sie [eine Erteilung erstellen](grants.md), können Sie [Beschränkungen für die Gewährung](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) einbeziehen, die Bedingungen für die Gewährungsberechtigungen festlegen. AWS KMS unterstützt zwei Erteilungsbeschränkungen`EncryptionContextSubset`, `EncryptionContextEquals` und beide beziehen den [Verschlüsselungskontext](#encrypt_context) in einer Anforderung für einen kryptografischen Vorgang mit ein. Wenn Sie diese Erteilungseinschränkungen verwenden, sind die Berechtigungen in der Erteilung nur dann wirksam, wenn der Verschlüsselungskontext in der Anforderung für die kryptografische Operation die Anforderungen der Erteilungseinschränkungen erfüllt. 

Sie können beispielsweise einer `EncryptionContextEquals` Grant, die den [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)Vorgang ermöglicht, eine Grant-Beschränkung hinzufügen. Bei dieser Einschränkung erlaubt die Erteilung die Operation nur dann, wenn der Verschlüsselungskontext in der Anforderung mit dem Verschlüsselungskontext in der Erteilungseinschränkung übereinstimmen (inkl. Groß-/Kleinschreibung).

```
$ aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:user/exampleUser \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --operations GenerateDataKey \
    --constraints EncryptionContextEquals={Purpose=Test}
```

Eine Anforderung wie die folgende vom Empfänger-Prinzipal würde die `EncryptionContextEquals`-Einschränkung zulassen.

```
$ aws kms generate-data-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --key-spec AES_256 \
    --encryption-context Purpose=Test
```

Weitere Informationen über die Erteilungseinschränkungen finden Sie unter [Verwenden von Erteilungs-Einschränkungen](create-grant-overview.md#grant-constraints). Ausführliche Informationen zu Erteilungen finden Sie unter [Zuschüsse in AWS KMS](grants.md).

## Protokollieren des Verschlüsselungskontexts
<a name="encryption-context-auditing"></a>

AWS KMS verwendet AWS CloudTrail , um den Verschlüsselungskontext zu protokollieren, sodass Sie feststellen können, auf welche KMS-Schlüssel und -Daten zugegriffen wurde. Das bedeutet, dass der Protokolleintrag genau anzeigt, welcher KMS-Schlüssel verwendet wurde, um spezifische Daten, auf die der Verschlüsselungskontext im Protokolleintrag hinweist, zu verschlüsseln oder entschlüsseln.

**Wichtig**  
Da der Verschlüsselungskontext protokolliert wird, sollte er keine vertraulichen Informationen enthalten.

## Speichern des Verschlüsselungskontexts
<a name="encryption-context-storing"></a>

Um die Verwendung eines beliebigen Verschlüsselungskontextes beim Aufruf der Operationen [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) oder [https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) zu vereinfachen, können Sie den Verschlüsselungskontext neben den verschlüsselten Daten speichern. Wir empfehlen, dass Sie nur so viel vom Verschlüsselungskontext speichern, dass Sie den vollständigen Verschlüsselungskontext erstellen können, wenn Sie ihn für die Ver- oder Entschlüsselung benötigen. 

Wenn der Verschlüsselungskontext beispielsweise der vollständig qualifizierte Pfad zu einer Datei ist, speichern Sie nur einen Teil dieses Pfades mit dem verschlüsselten Dateiinhalt. Wenn Sie dann den vollständigen Verschlüsselungstext benötigen, können Sie ihn aus dem gespeicherten Fragment rekonstruieren. Wenn jemand die Datei verändert (sie beispielsweise umbenennt oder an einen anderen Ort verschiebt), ändert sich der Wert des Verschlüsselungskontextes und die Entschlüsselungsanforderung schlägt fehl.

# Testen der Berechtigungen
<a name="testing-permissions"></a>

Für die Verwendung AWS KMS benötigen Sie Anmeldeinformationen, mit denen Sie Ihre API-Anfragen authentifizieren AWS können. Die Anmeldedaten müssen die Berechtigung zum Zugriff auf KMS-Schlüssel und Aliase enthalten. Die Berechtigungen werden durch Schlüsselrichtlinien, IAM-Richtlinien, Zuschüsse und kontoübergreifende Zugriffskontrollen bestimmt. Sie können nicht nur den Zugriff auf KMS-Schlüssel steuern, sondern auch den Zugriff auf Ihr CloudHSM und auf Ihre benutzerdefinierten Schlüsselspeicher.

Sie können den `DryRun`-API-Parameter angeben, um zu überprüfen, ob Sie über die erforderlichen Berechtigungen verfügen, um AWS KMS -Schlüssel zu verwenden. Sie können damit auch überprüfen`DryRun`, ob die Anforderungsparameter in einem AWS KMS API-Aufruf korrekt angegeben sind. 

**Topics**
+ [

## Was ist der DryRun Parameter?
](#what-is-dryrun)
+ [

## DryRun Mit der API spezifizieren
](#dryrun-api)

## Was ist der DryRun Parameter?
<a name="what-is-dryrun"></a>

 `DryRun` ist ein optionaler API-Parameter, den Sie angeben, um zu überprüfen, ob AWS KMS -API-Aufrufe erfolgreich sind. Verwenden Sie `DryRun`, um Ihren API-Aufruf zu testen, bevor Sie AWS KMS tatsächlich aufrufen. Sie können die folgenden Punkte überprüfen. 
+ Dass Sie über die erforderlichen Berechtigungen verfügen, um AWS KMS -Schlüssel zu verwenden.
+ Dass Sie die Parameter im Aufruf korrekt angegeben haben.

AWS KMS unterstützt die Verwendung des `DryRun` Parameters in bestimmten API-Aktionen: 
+ [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)
+ [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)
+ [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)
+ [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)
+ [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)
+ [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)
+ [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)
+ [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)
+ [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)
+ [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)
+ [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)
+ [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)
+ [Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html)
+ [Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)
+ [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)

Die Verwendung des `DryRun`-Parameters ist kostenpflichtig und wird als Standard-API-Anfrage in Rechnung gestellt. Weitere Informationen zur AWS KMS Preisgestaltung finden Sie unter [AWS Key Management Service Preisgestaltung](https://aws.amazon.com/kms/pricing/).

 Alle API-Anfragen, die den `DryRun`-Parameter verwenden, beziehen sich auf das Anforderungskontingent der API und können zu einer Drosselungsausnahme führen, wenn Sie ein API-Anforderungskontingent überschreiten. Beispielsweise wird der Aufruf von [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) mit `DryRun` oder ohne `DryRun` demselben Kontingent für kryptografische Operationen angerechnet. Weitere Informationen hierzu finden Sie unter [Drosselung AWS KMS von Anfragen](throttling.md).

Jeder Aufruf eines AWS KMS API-Vorgangs wird als Ereignis erfasst und in einem AWS CloudTrail Protokoll aufgezeichnet. Die Ausgabe aller Operationen, die den `DryRun` Parameter angeben, wird in Ihrem CloudTrail Protokoll angezeigt. Weitere Informationen finden Sie unter [AWS KMS API-Aufrufe protokollieren mit AWS CloudTrail](logging-using-cloudtrail.md).

## DryRun Mit der API spezifizieren
<a name="dryrun-api"></a>

Geben Sie zur Verwendung `DryRun` den `—dry-run` Parameter in AWS CLI Befehlen und AWS KMS API-Aufrufen an, die den Parameter unterstützen. Wenn Sie dies tun, AWS KMS wird überprüft, ob Ihr Anruf erfolgreich sein wird. AWS KMS Anrufe, die ich verwende, schlagen immer `DryRun` fehl und geben eine Meldung mit Informationen über den Grund zurück, warum der Anruf fehlgeschlagen ist. Die Nachricht kann die folgenden Ausnahmen enthalten:
+ `DryRunOperationException` – Die Anfrage wäre erfolgreich, wenn `DryRun` nicht angegeben wäre. 
+ `ValidationException` – Die Anfrage schlug fehl, weil ein falscher API-Parameter angegeben wurde.
+ `AccessDeniedException` – Sie sind nicht berechtigt, die angegebene API-Aktion auf der KMS-Ressource auszuführen.

Der folgende Befehl verwendet beispielsweise den [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Vorgang und erstellt eine Zuweisung, die es Benutzern, die berechtigt sind, die `keyUserRole` Rolle zu übernehmen, ermöglicht, den [Decrypt-Vorgang](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) für einen angegebenen [symmetrischen KMS-Schlüssel](symm-asymm-choose-key-spec.md#symmetric-cmks) aufzurufen. Der `DryRun`-Parameter ist angegeben.

```
$  aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --dry-run
```

# Problembehandlung bei AWS KMS Berechtigungen
<a name="policy-evaluation"></a><a name="security_iam_troubleshoot"></a>

Bei der Autorisierung des Zugriffs auf einen KMS-Schlüssel AWS KMS wird Folgendes geprüft:
+ Die [Schlüsselrichtlinie](determining-access-key-policy.md), die dem KMS-Schlüssel angefügt ist. Die Schlüsselrichtlinie wird immer in der Region AWS-Konto und definiert, der der KMS-Schlüssel gehört. 
+ Alle [IAM-Richtlinien](determining-access-iam-policies.md), die dem Benutzer oder der Rolle, die die Anforderung stellt, angefügt sind Die IAM-Richtlinien, die den Gebrauch eines KMS-Schlüssels durch einen Prinzipal regeln, sind immer in dem AWS-Konto des Prinzipals definiert.
+ Alle [Erteilungen](determining-access-grants.md) für den KMS-Schlüssel.
+ Andere Richtlinientypen, die möglicherweise für die Anforderung zur Verwendung des KMS-Schlüssels gelten, z. B. [AWS Organizations -Service-Kontrollrichtlinien](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_type-auth.html#orgs_manage_policies_scp) und [VPC-Endpunktrichtlinien](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy). Diese Richtlinien sind optional und erlauben standardmäßig alle Aktionen. Sie können sie jedoch verwenden, um Berechtigungen zu beschränken, die ansonsten Prinzipalen gewährt werden.

AWS KMS bewertet diese Richtlinienmechanismen gemeinsam, um festzustellen, ob der Zugriff auf den KMS-Schlüssel erlaubt oder verweigert wird. AWS KMS Verwendet dazu ein Verfahren, das dem im folgenden Flussdiagramm dargestellten ähnelt. Das folgende Flussdiagramm bietet eine visuelle Darstellung des Richtlinienauswertungsprozesses.

![\[Flussdiagramm zur Veranschaulichung des Richtlinienauswertungsprozesses\]](http://docs.aws.amazon.com/de_de/kms/latest/developerguide/images/updated-kms-authz-diagram.png)


Dieses Flussdiagramm ist in zwei Teile unterteilt. Die Teile sind sequenziell angeordnet, werden in der Regel aber gleichzeitig ausgewertet.
+ *Use Authorization (Autorisierung verwenden)* legt fest, ob Sie zur Verwendung eines KMS-Schlüssels, basierend auf dessen Schlüsselrichtlinie, IAM-Richtlinien und Erteilungen, berechtigt sind.
+ *Key trust (Schlüsselbasierte Vertrauensstellung)* legt fest, ob Sie einem KMS-Schlüssel vertrauen sollten, den Sie verwenden dürfen. Im Allgemeinen vertrauen Sie den Ressourcen in Ihrem AWS-Konto. Sie können sich aber auch darauf verlassen, KMS-Schlüssel in einer anderen Umgebung zu verwenden, AWS-Konto wenn eine Grant- oder IAM-Richtlinie in Ihrem Konto die Verwendung des KMS-Schlüssels zulässt.

Aus diesem Flussdiagramm geht hervor, warum einem Aufrufer die Berechtigung für die Verwendung eines KMS-Schlüssels gewährt oder verweigert wurde. Sie können sie auch zur Bewertung Ihrer Richtlinien und Genehmigungen heranziehen. Das Flussdiagramm veranschaulicht beispielsweise, dass einem Aufrufer der Zugriff durch eine explizite `DENY`-Anweisung oder durch das Weglassen einer expliziten `ALLOW`-Anweisung in der Schlüsselrichtlinie, IAM-Richtlinie oder Erteilung verwehrt werden kann.

Das Flussdiagramm kann einige gängige Berechtigungsszenarien erläutern.

**Topics**
+ [

## Beispiel 1: Dem Benutzer wird der Zugriff auf einen KMS-Schlüssel in seinem AWS-Konto
](#example-no-iam)
+ [

## Beispiel 2: Der Benutzer übernimmt die Rolle mit der Erlaubnis, einen KMS-Schlüssel in einem anderen System zu verwenden AWS-Konto
](#example-cross-acct)

## Beispiel 1: Dem Benutzer wird der Zugriff auf einen KMS-Schlüssel in seinem AWS-Konto
<a name="example-no-iam"></a>

Alice ist eine IAM-Benutzerin im AWS-Konto 111122223333. Ihr wurde der Zugriff auf einen KMS-Schlüssel im selben AWS-Konto verweigert. Warum kann Alice den KMS-Schlüssel nicht verwenden?

Alice erhält in diesem Fall keinen Zugriff auf den KMS-Schlüssel, da keine Schlüsselrichtlinie, IAM-Richtlinie oder Erteilung vorliegt, die ihr die erforderlichen Berechtigungen erteilen könnte. Die Schlüsselrichtlinie des KMS-Schlüssels ermöglicht die Verwendung von IAM-Richtlinien AWS-Konto zur Steuerung des Zugriffs auf den KMS-Schlüssel, aber keine IAM-Richtlinie gibt Alice die Erlaubnis, den KMS-Schlüssel zu verwenden.

![\[Flussdiagramm zur Veranschaulichung des Richtlinienauswertungsprozesses\]](http://docs.aws.amazon.com/de_de/kms/latest/developerguide/images/kms-auth-flow-Alice.png)


Beachten Sie die relevanten Richtlinien für dieses Beispiel.
+ Der KMS-Schlüssel, den Alice verwenden möchte, untersteht der [Standardschlüsselrichtlinie](key-policy-default.md). Diese Richtlinie [erlaubt es dem AWS-Konto](key-policy-default.md#key-policy-default-allow-root-enable-iam), das den KMS-Schlüssel besitzt, IAM-Richtlinien zum Steuern des Zugriffs auf den KMS-Schlüssel zu verwenden. Dieser Schlüssel erfüllt die im Abschnitt *ERLAUBT die Schlüsselrichtlinie dem Aufruferkonto die Verwendung von IAM-Richtlinien zur Kontrolle des Zugriffs auf den Schlüssel?* des Flussdiagramms beschriebene Bedingung.

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Id" : "key-test-1",
    "Statement" : [ {
      "Sid" : "DelegateToIAMPolicies",
      "Effect" : "Allow",
      "Principal" : {
        "AWS" : "arn:aws:iam::111122223333:root"
      },
      "Action" : "kms:*",
      "Resource" : "*"
    } ]
  }
  ```

------
+ Keine Schlüsselrichtlinie, IAM-Richtlinie oder Erteilung erteilt Alice jedoch die Berechtigung zur Verwendung des KMS-Schlüssels. Daher wird Alice die Berechtigung zur Verwendung des KMS-Schlüssels verweigert.

## Beispiel 2: Der Benutzer übernimmt die Rolle mit der Erlaubnis, einen KMS-Schlüssel in einem anderen System zu verwenden AWS-Konto
<a name="example-cross-acct"></a>

Bob ist ein Benutzer in Konto 1 (111122223333). Er ist berechtigt, in Konto 2 (444455556666) einen KMS-Schlüssel in [kryptografischen Produktionen](kms-cryptography.md#cryptographic-operations) zu verwenden. Wie ist das möglich?

**Tipp**  
Denken Sie beim Auswerten von kontoübergreifenden Berechtigungen daran, dass die Schlüsselrichtlinie im Konto des KMS-Schlüssels angegeben wird. Die IAM-Richtlinie wird im Konto des Aufrufers angegeben, auch wenn sich der Aufrufer in einem anderen Konto befindet. Weitere Informationen zum Bereitstellen des kontoübergreifenden Zugriffs auf KMS-Schlüssel finden Sie unter [Benutzern in anderen Konten die Verwendung des KMS-Schlüssels erlauben](key-policy-modifying-external-accounts.md).
+ Die Schlüsselrichtlinie für den KMS-Schlüssel in Konto 2 erlaubt Konto 2 die Verwendung von IAM-Richtlinien zum Steuern des Zugriffs auf den KMS-Schlüssel. 
+ Die Schlüsselrichtlinie für den KMS-Schlüssel in Konto 2 erlaubt Konto 1 die Verwendung des KMS-Schlüssels in kryptografischen Produktionen. Konto 1 muss jedoch seinen Prinzipalen anhand von IAM-Richtlinien Zugriff auf den KMS-Schlüssel gewähren.
+ Eine IAM-Richtlinie in Konto 1 erlaubt es der `Engineering`-Rolle, den KMS-Schlüssel in Konto 2 für kryptografische Produktionen zu verwenden.
+ Bob, ein Benutzer in Konto 1, verfügt über die Berechtigung, die `Engineering`-Rolle zu übernehmen.
+ Bob kann diesem KMS-Schlüssel vertrauen, denn obwohl sich dieser nicht in seinem Konto befindet, ist es ihm über eine IAM-Richtlinie in seinem Konto explizit erlaubt, diesen KMS-Schlüssel zu verwenden.

![\[Flussdiagramm zur Veranschaulichung des Richtlinienauswertungsprozesses\]](http://docs.aws.amazon.com/de_de/kms/latest/developerguide/images/kms-auth-flow-Bob.png)


Betrachten wir einmal die Richtlinien, die es Bob, einem Benutzer in Konto 1, ermöglichen, den KMS-Schlüssel in Konto 2 zu verwenden.
+ Die Schlüsselrichtlinie für den KMS-Schlüssel erlaubt es Konto 2 (444455556666, das Konto, das den KMS-Schlüssel besitzt), den Zugriff auf den KMS-Schlüssel anhand von IAM-Richtlinien zu steuern. Diese Schlüsselrichtlinie erlaubt außerdem Konto 1 (111122223333) die Verwendung des KMS-Schlüssels in kryptografischen Produktionen (angegeben im `Action`-Element der Richtlinienanweisung). Niemand in Konto 1 kann jedoch den KMS-Schlüssel in Konto 2 verwenden, sofern in Konto 1 keine IAM-Richtlinien definiert sind, die den Prinzipalen Zugriff auf den KMS-Schlüssel gewähren.

  Im Flussdiagramm erfüllt diese Schlüsselrichtlinie in Konto 2 die Bedingung *Does the key policy ALLOW the caller's account to use IAM policies to control access to the key? (ERLAUBT die Schlüsselrichtlinie dem Aufrufer-Konto die Verwendung von IAM-Richtlinien zur Steuerung des Zugriffs auf den Schlüssel?)* 

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

****  

  ```
  {
      "Id": "key-policy-acct-2",
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "PermissionUseIAMpolicies",
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::444455556666:root"
              },
              "Action": "kms:*",
              "Resource": "*"
          },
          {
              "Sid": "AllowAccount1UseThisKMSKeys",
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:root"
              },
              "Action": [
                  "kms:Encrypt",
                  "kms:Decrypt",
                  "kms:ReEncryptFrom",
                  "kms:ReEncryptTo",
                  "kms:GenerateDataKey",
                  "kms:GenerateDataKeyWithoutPlaintext",
                  "kms:DescribeKey"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ Eine IAM-Richtlinie im Konto des Anrufers AWS-Konto (Konto 1, 111122223333) erteilt dem Prinzipal die Erlaubnis, kryptografische Operationen mithilfe des KMS-Schlüssels in Konto 2 (444455556666) durchzuführen. Das `Action`-Element delegiert dem Prinzipal die gleichen Berechtigungen, die Konto 1 durch die Schlüsselrichtlinie in Konto 2 erhalten hat. Um diese Berechtigung für die `Engineering`-Rolle in Konto 1, [ist diese Inline-Richtlinie eingebettet](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html) in der `Engineering`-Rolle.

  Kontoübergreifende IAM-Richtlinien wie diese werden erst dann wirksam, wenn die Schlüsselrichtlinie für den KMS-Schlüssel in Konto 2 dem Konto 1 die Berechtigung zur Verwendung des KMS-Schlüssels erteilt. Konto 1 kann seinen Prinzipalen außerdem nur Berechtigungen zum Ausführen von Aktionen erteilen, die dem Konto über die Schlüsselrichtlinie gewährt wurden.

  Im Flussdiagramm erfüllt dies die Bedingung *Does an IAM policy allow the caller to perform this action? (Erlaubt eine IAM-Richtlinie dem Aufrufer die Ausführung dieser Aktion?)*.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "kms:Encrypt",
                  "kms:Decrypt",
                  "kms:ReEncryptFrom",
                  "kms:ReEncryptTo",
                  "kms:GenerateDataKey",
                  "kms:GenerateDataKeyWithoutPlaintext",
                  "kms:DescribeKey"
              ],
              "Resource": [
              "arn:aws:kms:us-west-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab"
              ]
          }
      ]
  }
  ```

------
+ Das letzte erforderliche Element ist die Definition der `Engineering`-Rolle in Konto 1. Das `AssumeRolePolicyDocument` in der Rolle erlaubt Bob, die `Engineering`-Rolle zu übernehmen.

  ```
  {
      "Role": {
          "Arn": "arn:aws:iam::111122223333:role/Engineering",
          "CreateDate": "2019-05-16T00:09:25Z",
          "AssumeRolePolicyDocument": {
              "Version": "2012-10-17",		 	 	 
              "Statement": {
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:user/bob"
                  },
                  "Effect": "Allow",
                  "Action": "sts:AssumeRole"
              }
          },
          "Path": "/",
          "RoleName": "Engineering",
          "RoleId": "AROA4KJY2TU23Y7NK62MV"
      }
  }
  ```

# AWS KMS Glossar zur Zugriffskontrolle
<a name="access-glossary"></a>

Im folgenden Thema werden wichtige Begriffe und Konzepte der AWS KMS Zugriffskontrolle beschrieben.

## Authentifizierung
<a name="permission-concept-authentication"></a>

*Authentifizierung* ist der Prozess der Überprüfung Ihrer Identität. Um eine Anfrage an zu senden AWS KMS, müssen Sie sich AWS mit Ihren AWS Anmeldeinformationen anmelden.

## Autorisierung
<a name="permission-concept-authorization"></a>

Die *Autorisierung* gewährt die Erlaubnis, Anfragen zum Erstellen, Verwalten oder Verwenden von AWS KMS Ressourcen zu senden. Sie müssen beispielsweise autorisiert sein, um einen KMS-Schlüssel in einer kryptografischen Operation zu verwenden.

Verwenden Sie [wichtige Richtlinien, [IAM-Richtlinien](iam-policies.md)](key-policies.md) und [Zuschüsse](grants.md), um den Zugriff auf Ihre AWS KMS Ressourcen zu kontrollieren. Jeder KMS-Schlüssel muss über eine Schlüsselrichtlinie verfügen. Wenn die Schlüsselrichtlinie es zulässt, können Sie auch IAM-Richtlinien und Erteilungen verwenden, um Prinzipalen Zugriff auf den KMS-Schlüssel zu geben. Um Ihre Autorisierung zu verfeinern, können Sie [Bedingungsschlüssel](policy-conditions.md) verwenden, die den Zugriff nur dann erlauben oder verweigern, wenn eine Anforderung oder Ressource die von Ihnen festgelegten Bedingungen erfüllt. Sie können den Zugriff für Prinzipale gewähren, denen Sie in anderen [AWS-Konten-Konten](key-policy-modifying-external-accounts.md) vertrauen.

## Authentifizierung mit Identitäten
<a name="security_iam_authentication"></a>

Authentifizierung ist die Art und Weise, wie Sie sich AWS mit Ihren Identitätsdaten anmelden. Sie müssen sich als IAM-Benutzer authentifizieren oder eine IAM-Rolle annehmen. Root-Benutzer des AWS-Kontos

Sie können sich als föderierte Identität anmelden, indem Sie Anmeldeinformationen aus einer Identitätsquelle wie AWS IAM Identity Center (IAM Identity Center), Single Sign-On-Authentifizierung oder Anmeldeinformationen verwenden. Google/Facebook Weitere Informationen zum Anmelden finden Sie unter [So melden Sie sich bei Ihrem AWS-Konto an](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) im *Benutzerhandbuch für AWS-Anmeldung *.

 AWS Bietet für den programmatischen Zugriff ein SDK und eine CLI zum kryptografischen Signieren von Anfragen. Weitere Informationen finden Sie unter [AWS Signature Version 4 for API requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) im *IAM-Benutzerhandbuch*.

### AWS-Konto Root-Benutzer
<a name="security_iam_authentication-rootuser"></a>

 Wenn Sie einen erstellen AWS-Konto, beginnen Sie mit einer Anmeldeidentität, dem sogenannten AWS-Konto *Root-Benutzer*, der vollständigen Zugriff auf alle AWS-Services Ressourcen hat. Wir raten ausdrücklich davon ab, den Root-Benutzer für Alltagsaufgaben zu verwenden. Eine Liste der Aufgaben, für die Sie sich als Root-Benutzer anmelden müssen, finden Sie unter [Tasks that require root user credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) im *IAM-Benutzerhandbuch*. 

### Verbundidentität
<a name="security_iam_authentication-federated"></a>

Es hat sich bewährt, dass menschliche Benutzer für den Zugriff AWS-Services mithilfe temporärer Anmeldeinformationen einen Verbund mit einem Identitätsanbieter verwenden müssen.

Eine *föderierte Identität* ist ein Benutzer aus Ihrem Unternehmensverzeichnis, Ihrem Directory Service Web-Identitätsanbieter oder der AWS-Services mithilfe von Anmeldeinformationen aus einer Identitätsquelle zugreift. Verbundene Identitäten übernehmen Rollen, die temporäre Anmeldeinformationen bereitstellen.

Für die zentrale Zugriffsverwaltung empfehlen wir AWS IAM Identity Center. Weitere Informationen finden Sie unter [Was ist IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) im *AWS IAM Identity Center -Benutzerhandbuch*.

### IAM-Benutzer und -Gruppen
<a name="security_iam_authentication-iamuser"></a>

Ein *[IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* ist eine Identität mit bestimmten Berechtigungen für eine einzelne Person oder Anwendung. Wir empfehlen die Verwendung temporärer Anmeldeinformationen anstelle von IAM-Benutzern mit langfristigen Anmeldeinformationen. Weitere Informationen finden Sie im *IAM-Benutzerhandbuch* unter [Erfordern, dass menschliche Benutzer den Verbund mit einem Identitätsanbieter verwenden müssen, um AWS mithilfe temporärer Anmeldeinformationen darauf zugreifen zu](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) können.

Eine [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) spezifiziert eine Sammlung von IAM-Benutzern und erleichtert die Verwaltung von Berechtigungen für große Gruppen von Benutzern. Weitere Informationen finden Sie unter [Anwendungsfälle für IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) im *IAM-Benutzerhandbuch*.

### IAM-Rollen
<a name="security_iam_authentication-iamrole"></a>

Eine *[IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* ist eine Identität mit spezifischen Berechtigungen, die temporäre Anmeldeinformationen bereitstellt. Sie können eine Rolle übernehmen, indem Sie [von einer Benutzer- zu einer IAM-Rolle (Konsole) wechseln](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) oder indem Sie eine AWS Oder-API-Operation AWS CLI aufrufen. Weitere Informationen finden Sie unter [Methoden, um eine Rolle zu übernehmen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) im *IAM-Benutzerhandbuch*.

IAM-Rollen sind nützlich für den Verbundbenutzer-Zugriff, temporäre IAM-Benutzerberechtigungen, kontoübergreifenden Zugriff, serviceübergreifenden Zugriff und Anwendungen, die auf Amazon EC2 laufen. Weitere Informationen finden Sie unter [Kontoübergreifender Ressourcenzugriff in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) im *IAM-Benutzerhandbuch*.

## Verwalten des Zugriffs mit Richtlinien
<a name="security_iam_access-manage"></a>

Sie kontrollieren den Zugriff, AWS indem Sie Richtlinien erstellen und diese an AWS Identitäten oder Ressourcen anhängen. Eine Richtlinie definiert Berechtigungen, wenn sie mit einer Identität oder Ressource verknüpft sind. AWS bewertet diese Richtlinien, wenn ein Principal eine Anfrage stellt. Die meisten Richtlinien werden AWS als JSON-Dokumente gespeichert. Weitere Informationen zu JSON-Richtliniendokumenten finden Sie unter [Übersicht über JSON-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) im *IAM-Benutzerhandbuch*.

Mit Hilfe von Richtlinien legen Administratoren fest, wer Zugriff auf was hat, indem sie definieren, welches **Prinzipal** welche **Aktionen** auf welchen **Ressourcen**und unter welchen **Bedingungen**durchführen darf.

Standardmäßig haben Benutzer, Gruppen und Rollen keine Berechtigungen. Ein IAM-Administrator erstellt IAM-Richtlinien und fügt sie zu Rollen hinzu, die die Benutzer dann übernehmen können. IAM-Richtlinien definieren Berechtigungen unabhängig von der Methode, die zur Ausführung der Operation verwendet wird.

### Identitätsbasierte Richtlinien
<a name="security_iam_access-manage-id-based-policies"></a>

Identitätsbasierte Richtlinien sind JSON-Berechtigungsrichtliniendokumente, die Sie einer Identität (Benutzer, Gruppe oder Rolle) anfügen können. Diese Richtlinien steuern, welche Aktionen Identitäten für welche Ressourcen und unter welchen Bedingungen ausführen können. Informationen zum Erstellen identitätsbasierter Richtlinien finden Sie unter [Definieren benutzerdefinierter IAM-Berechtigungen mit vom Kunden verwalteten Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) im *IAM-Benutzerhandbuch*.

Identitätsbasierte Richtlinien können *Inline-Richtlinien* (direkt in eine einzelne Identität eingebettet) oder *verwaltete Richtlinien* (eigenständige Richtlinien, die mit mehreren Identitäten verbunden sind) sein. Informationen dazu, wie Sie zwischen verwalteten und Inline-Richtlinien wählen, finden Sie unter [Choose between managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) im *IAM-Benutzerhandbuch*.

### Ressourcenbasierte Richtlinien
<a name="security_iam_access-manage-resource-based-policies"></a>

Eine AWS KMS [Schlüsselrichtlinie](key-policies.md) ist eine ressourcenbasierte Richtlinie, die den Zugriff auf einen KMS-Schlüssel steuert. Jeder KMS-Schlüssel muss über eine Schlüsselrichtlinie verfügen. Sie können einen anderen Autorisierungsmechanismus verwenden, um den Zugriff auf den KMS-Schlüssel zu ermöglichen, jedoch nur, wenn die Schlüsselrichtlinie dies zulässt. (Sie können eine IAM-Richtlinie verwenden, um den Zugriff auf einen KMS-Schlüssel zu *verweigern*, auch wenn die Schlüsselrichtlinie dies nicht explizit zulässt.)

Ressourcenbasierte Richtlinien sind JSON-Richtliniendokumente, die Sie an eine Ressource wie einen KMS-Schlüssel anfügen. Die ressourcenbasierte Richtlinie definiert die Aktionen, die ein bestimmter Prinzipal auf dieser Ressource durchführen kann und unter welchen Bedingungen. Sie geben die Ressource nicht in einer ressourcenbasierten Richtlinie an, sondern Sie müssen einen Prinzipal angeben, z. B. Konten, Benutzer, Rollen, Verbundbenutzer oder. AWS-Services Ressourcenbasierte Richtlinien sind Richtlinien, die sich in dem Service befinden, der die Ressource verwaltet. Sie können AWS verwaltete Richtlinien von IAM, wie z. B. die [`AWSKeyManagementServicePowerUser`verwaltete Richtlinie, nicht in einer ressourcenbasierten Richtlinie](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSKeyManagementServicePowerUser) verwenden.

### Weitere Richtlinientypen
<a name="security_iam_access-manage-other-policies"></a>

AWS unterstützt zusätzliche Richtlinientypen, mit denen die maximalen Berechtigungen festgelegt werden können, die durch gängigere Richtlinientypen gewährt werden:
+ **Berechtigungsgrenzen** – Eine Berechtigungsgrenze legt die maximalen Berechtigungen fest, die eine identitätsbasierte Richtlinie einer IAM-Entität erteilen kann. Weitere Informationen finden Sie unter [Berechtigungsgrenzen für IAM-Entitäten](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) im *-IAM-Benutzerhandbuch*.
+ **Richtlinien zur Dienstkontrolle (SCPs)** — Geben Sie die maximalen Berechtigungen für eine Organisation oder Organisationseinheit in an AWS Organizations. Weitere Informationen finden Sie unter [Service-Kontrollrichtlinien](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) im *AWS Organizations -Benutzerhandbuch*.
+ **Richtlinien zur Ressourcenkontrolle (RCPs)** — Legen Sie die maximal verfügbaren Berechtigungen für Ressourcen in Ihren Konten fest. Weitere Informationen finden Sie im *AWS Organizations Benutzerhandbuch* unter [Richtlinien zur Ressourcenkontrolle (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html).
+ **Sitzungsrichtlinien** – Sitzungsrichtlinien sind erweiterte Richtlinien, die als Parameter übergeben werden, wenn Sie eine temporäre Sitzung für eine Rolle oder einen Verbundbenutzer erstellen. Weitere Informationen finden Sie unter [Sitzungsrichtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) im *IAM-Benutzerhandbuch*.

### Mehrere Richtlinientypen
<a name="security_iam_access-manage-multiple-policies"></a>

Wenn für eine Anfrage mehrere Arten von Richtlinien gelten, sind die daraus resultierenden Berechtigungen schwieriger zu verstehen. Informationen darüber, wie AWS bestimmt wird, ob eine Anfrage zulässig ist, wenn mehrere Richtlinientypen betroffen sind, finden Sie unter [Bewertungslogik für Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) im *IAM-Benutzerhandbuch*.

## AWS KMS Ressourcen
<a name="kms-resources-operations"></a>

In AWS KMS, die primäre Ressource ist ein AWS KMS key. AWS KMS unterstützt auch einen [Alias](kms-alias.md), eine unabhängige Ressource, die einen benutzerfreundlichen Namen für einen KMS-Schlüssel bereitstellt. Bei einigen AWS KMS Vorgängen können Sie einen Alias verwenden, um einen KMS-Schlüssel zu identifizieren.

Jede Instance eines KMS-Schlüssels oder Aliases hat einen eindeutigen [Amazon-Ressourcennamen](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax) (ARN) mit einem Standardformat. In AWS KMS Ressourcen lautet der AWS Dienstname`kms`. 
+ **AWS KMS key**

  ARN-Format:

  `arn:AWS partition name:AWS service name:AWS-Region:AWS-Konto ID:key/key ID`

  Beispiel-ARN:

  `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
+ **Alias**

  ARN-Format:

  `arn:AWS partition name:AWS service name:AWS-Region:AWS-Konto ID:alias/alias name`

  Beispiel-ARN:

  `arn:aws:kms:us-west-2:111122223333:alias/example-alias`

AWS KMS bietet eine Reihe von API-Operationen für die Arbeit mit Ihren AWS KMS Ressourcen. Weitere Informationen zur Identifizierung von KMS-Schlüsseln in den AWS-Managementkonsole und AWS KMS API-Vorgängen finden Sie unter[Schlüsselkennungen () KeyId](concepts.md#key-id). Eine Liste der AWS KMS Operationen finden Sie in der [AWS Key Management Service API-Referenz](https://docs.aws.amazon.com/kms/latest/APIReference/).