

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.

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