Erstellen einer Schlüsselrichtlinie - AWS Key Management Service

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 Schlüsselrichtlinie

Sie können wichtige Richtlinien in der AWS KMS Konsole oder mithilfe von AWS KMS API Operationen wie CreateKeyReplicateKey, und erstellen und verwalten PutKeyPolicy.

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 basiert. Wenn Sie CreateKey oder verwenden ReplicateKeyAPIs, wenn Sie keine Schlüsselrichtlinie angeben, APIs wenden diese die Standardschlüsselrichtlinie für programmgesteuert erstellte Schlüssel an. Wenn Sie die verwenden PutKeyPolicyAPI, 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.

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

Schlüsselrichtlinienformat

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 verboten.)

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

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 in einem IAM Sid Richtlinienelement keine Leerzeichen verwenden.)

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 zulassen, wird der Zugriff 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 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. IAMBenutzergruppen sind in keinem Richtlinientyp ein gültiger Prinzipal.

Ein Sternchenwert, z. B. "AWS": "*", steht für alle AWS -Identitäten in allen Konten.

Wichtig

Setzen Sie den Prinzipal nicht auf ein Sternchen (*) in einer Schlüsselrichtlinienanweisung, die Berechtigungen erlaubt, es sei denn, Sie verwenden Bedingungen, 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 Richtlinienerklärung 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.

Anmerkung

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.

Wenn es sich bei dem Principal in einer Grundsatzerklärung um einen AWS-Konto Principal handeltarn:aws:iam::111122223333:root", der als Principal ausgedrückt wird, erteilt die Grundsatzerklärung keinem IAM Prinzipal die Genehmigung. Stattdessen erteilt sie die AWS-Konto Erlaubnis, IAM Richtlinien zu verwenden, um die in der wichtigsten Richtlinie angegebenen Berechtigungen zu delegieren. (Ein Prinzipal im arn:aws:iam::111122223333:root"-Format repräsentiert nicht die AWS -Stammbenutzer des Kontos, 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 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 in Allgemeine AWS-Referenz.

Um einem anderen AWS-Konto oder seinen Prinzipalen die Verwendung eines KMS Schlüssels zu gestatten, müssen Sie in einer Schlüsselrichtlinie und in einer Richtlinie in dem anderen Konto IAM die entsprechenden Berechtigungen erteilen. Details hierzu finden Sie unter Benutzern mit anderen Konten die Verwendung eines KMS Schlüssels ermöglichen.

Aktion

(Erforderlich) Geben Sie die API Vorgänge an, die zugelassen oder verweigert werden sollen. Die kms:Encrypt Aktion entspricht beispielsweise dem Vorgang AWS KMS Verschlüsseln. Sie können mehr als eine Aktion in einer Richtlinienanweisung auflisten. Weitere Informationen finden Sie unter Berechtigungsreferenz.

Anmerkung

Wenn das erforderliche Action-Element in einer Schlüsselrichtlinienanweisung fehlt, hat die Richtlinienanweisung keine Wirkung. Eine wichtige Richtlinienaussage ohne ein Action Element gilt für keinen KMS Schlüssel.

Wenn das Action Element einer wichtigen Grundsatzerklärung fehlt, meldet die AWS KMS Konsole korrekt einen Fehler, aber die CreateKeyund PutKeyPolicyAPIssind erfolgreich, obwohl die Grundsatzerklärung unwirksam ist.

Ressource

(Erforderlich) In einer Schlüsselrichtlinie lautet der Wert des Resource-Elements"*", was „dieser KMS Schlüssel“ bedeutet. Das Sternchen ("*") kennzeichnet den KMS Schlüssel, an den die Schlüsselrichtlinie angehängt ist.

Anmerkung

Wenn das erforderliche Resource-Element in einer Schlüsselrichtlinienanweisung fehlt, hat die Richtlinienanweisung keine Wirkung. Eine Grundsatzerklärung ohne ein Resource Element gilt für keinen KMS Schlüssel.

Wenn das Resource Element einer wichtigen Grundsatzerklärung fehlt, meldet die AWS KMS Konsole korrekt einen Fehler, aber die CreateKeyund PutKeyPolicyAPIssind 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 Grundsatzerklärung zutrifft oder nicht.

Um Bedingungen anzugeben, verwenden Sie vordefinierte Bedingungsschlüssel. AWS KMS unterstützt AWS globale Bedingungsschlüssel und AWS KMS Bedingungsschlüssel. Zur Unterstützung der attributbasierten 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 ABACfür AWS KMS.

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 IAMPolicy Reference im Benutzerhandbuch. IAM

Beispiel für eine Schlüsselrichtlinie

Das folgende Beispiel zeigt eine vollständige Schlüsselrichtlinie für einen symmetrischen KMS Verschlüsselungsschlüssel. 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 in einer einzigen Schlüsselrichtlinie, wodurch Folgendes erreicht wird:

  • Ermöglicht dem Beispiel AWS-Konto 111122223333 vollen Zugriff auf den Schlüssel. KMS Es ermöglicht dem Konto und seinen Administratoren, einschließlich des Root-Benutzers (für Notfälle), die im Konto vorhandenen IAM Richtlinien zu verwenden, um den Zugriff auf den Schlüssel zu ermöglichen. KMS

  • Ermöglicht der ExampleAdminRole IAM Rolle, den Schlüssel zu verwalten. KMS

  • Erlaubt der ExampleUserRole IAM Rolle, den KMS Schlüssel zu verwenden.

{ "Id": "key-consolepolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM user Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "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": "*" }, { "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": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }