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 mithilfe von AWS KMS API-Operationen wie, CreateKeyReplicateKeyPutKeyPolicy, und oder mithilfe einer AWS CloudFormation Vorlage erstellen und 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 basiert. Wenn Sie die CreateKey- oder ReplicateKey-API verwenden, wenn Sie keine Schlüsselrichtlinie angeben, wenden diese APIs die Standardschlüsselrichtlinie für Schlüssel, die programmgesteuert erstellt wurden, 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.

{ "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 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

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 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 Principals in einer Schlüsselrichtlinie angeben. IAM-Benutzergruppen sind kein gültiger Prinzipal in irgendeinem Richtlinientyp.

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

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

Wenn der Prinzipal in einer wichtigen Richtlinienanweisung ein AWS-Konto -Prinzipal 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, 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 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.

Aktion

(Erforderlich) Geben Sie die zugelassenen oder verweigerten API-Operationen an. 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.

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.

Anmerkung

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 Richtlinienanweisung fehlt, meldet die AWS KMS Konsole korrekt einen Fehler, aber die PutKeyPolicyAPIs CreateKeyund sind erfolgreich, obwohl die Richtlinienanweisung unwirksam ist.

Bedingung

(Optional) Bedingungen geben an, welche Anforderungen erfüllt werden müssen, damit eine Schlüsselrichtlinie wirksam wird. AWS Kann unter bestimmten 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 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.

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.

Beispiel für eine Schlüsselrichtlinie

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

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