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
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.
Erstellen einer Erteilung
Rufen Sie die CreateGrantOperation auf, um einen Grant zu erstellen. Geben Sie einen KMS Schlüssel, einen Principal des Empfängers und eine Liste der zulässigen Zuschussoperationen an. Sie können auch einen optionalen ausscheidenden Prinzipal angeben. Um die Erteilung anzupassen, verwenden Sie optionale Constraints
-Parameter, um Erteilungseinschränkungen 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).
Mit dem folgenden CreateGrant
Befehl wird beispielsweise ein Grant erstellt, der es Benutzern, die berechtigt sind, die keyUserRole
Rolle zu übernehmen, ermöglicht, den Decrypt-Vorgang für den angegebenen symmetrischen KMS Schlüssel aufzurufen. 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 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 den CreateGrant
Vorgang wiederholt oder einen verwendet, der Anfragen automatisch wiederholt AWS SDK, verwenden Sie den optionalen Name-Parameter, um die Erstellung doppelter Grants zu verhindern. Wenn eine CreateGrant
Anfrage für einen Zuschuss mit den gleichen Eigenschaften wie ein vorhandener Zuschuss AWS KMS 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 unterVerwenden Sie es CreateGrant mit einem AWS SDK oder CLI.
Verwenden von Erteilungs-Einschränkungen
Erteilungs-Einschränkungen legen Bedingungen für die Berechtigungen fest, die der Empfänger-Prinzipal ausführen kann. Beschränkungen für Zuschüsse treten in einer wichtigen Richtlinie oder IAMRichtlinie an die Stelle von Bedingungsschlüsseln. 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
undEncryptionContextSubset
, die beide Anforderungen an den Verschlüsselungskontext bei einer Anforderung für einen kryptografischen Vorgang festlegen.
Die Verschlüsselungskontext-Erteilungs-Einschränkungen sind für die Verwendung mit Erteilungs-Operationen entworfen, die einen Verschlüsselungskontext-Parameter haben.
-
Einschränkungen für den Verschlüsselungskontext gelten nur für eine Gewährung eines symmetrischen KMS Verschlüsselungsschlüssels. Kryptografische Operationen mit anderen KMS Schlüsseln unterstützen keinen Verschlüsselungskontext.
-
Die Verschlüsselungskontext-Einschränkung wird für
DescribeKey
- undRetireGrant
-Operationen ignoriert.DescribeKey
undRetireGrant
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 derCreateGrant
-Berechtigung erstellt wurden, eine ebenso strenge oder strengere Verschlüsselungskontext-Einschränkung haben.
AWS KMS unterstützt die folgenden Einschränkungen für die Gewährung von Verschlüsselungskontexten.
- 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 dasDepartment=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 in der CreateGrantOperation, um eine Einschränkung für den Verschlüsselungskontext in einer Gewährung für einen symmetrischen KMS Verschlüsselungsschlüssel anzugeben. Die Erteilung, die dieser Befehl erstellt, gewährt Benutzern, die die keyUserRole
-Rolle annehmen dürfen, die Erlaubnis, die Decrypt-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 die ListGrantsOperation, um die Grants KMS für einen 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 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 Grant-Einschränkung bedeutet, dass die Grant DynamoDB erlaubt, den angegebenen KMS Schlüssel nur für eine bestimmte Tabelle in Ihrer zu verwenden. AWS-Konto
Um diese Ausgabe zu erhalten, führen Sie den ListGrantsVorgang 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
Eine Erteilung kann die Berechtigung zum Aufrufen der CreateGrant
-Produktion enthalten. Aber wenn ein Empfänger-Prinzipal 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 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 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 Schulleiter,exampleUser, kann diese Berechtigung verwenden, um einen Zuschuss zu erstellen, der eine beliebige Teilmenge der im ursprünglichen Zuschuss angegebenen Operationen umfasst, 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 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.
IAMbewährte Methoden raten von der Verwendung von IAM Benutzern mit langfristigen Anmeldeinformationen ab. Verwenden Sie nach Möglichkeit IAM Rollen, die temporäre Anmeldeinformationen bereitstellen. Einzelheiten finden Sie unter Bewährte Sicherheitsmethoden IAM 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.