KMS-Schlüssel | Erstellen - AMS Advanced Change Typ-Referenz

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üssel | Erstellen

Fordern Sie einen KMS-Schlüssel mit einer vordefinierten Schlüsselrichtlinie an.

Vollständige Klassifizierung: Bereitstellung | Erweiterte Stack-Komponenten | KMS-Schlüssel | Erstellen

Typdetails ändern

Typ-ID ändern

ct-1d84keiri1jhg

Aktuelle Version

1,0

Erwartete Ausführungsdauer

60 Minuten

AWS-Zulassung

Erforderlich

Zustimmung durch den Kunden

Nicht erforderlich

Ausführungsmodus

Automatisiert

Zusätzliche Informationen

KMS-Schlüssel erstellen

Screenshot dieses Änderungstyps in der AMS-Konsole:

Create KMS key change type with description, ID, version, and execution mode details.

So funktioniert es:

  1. Navigieren Sie zur Seite RFC erstellen: Klicken Sie im linken Navigationsbereich der AMS-Konsole, um die RFCs Listenseite RFCszu öffnen, und klicken Sie dann auf RFC erstellen.

  2. Wählen Sie in der Standardansicht „Änderungstypen durchsuchen“ einen beliebten Änderungstyp (CT) oder wählen Sie in der Ansicht „Nach Kategorie auswählen“ einen CT aus.

    • Nach Änderungstyp suchen: Sie können im Bereich Schnellerstellung auf ein beliebtes CT klicken, um sofort die Seite RFC ausführen zu öffnen. Beachten Sie, dass Sie mit Quick Create keine ältere CT-Version auswählen können.

      Verwenden Sie zum Sortieren CTs den Bereich Alle Änderungstypen in der Karten - oder Tabellenansicht. Wählen Sie in einer der Ansichten einen CT aus und klicken Sie dann auf RFC erstellen, um die Seite RFC ausführen zu öffnen. Falls zutreffend, wird neben der Schaltfläche „RFC erstellen“ die Option Mit älterer Version erstellen angezeigt.

    • Nach Kategorie auswählen: Wählen Sie eine Kategorie, eine Unterkategorie, einen Artikel und einen Vorgang aus. Daraufhin wird das Feld mit den CT-Details geöffnet. Dort können Sie gegebenenfalls die Option „Mit älterer Version erstellen“ auswählen. Klicken Sie auf RFC erstellen, um die Seite RFC ausführen zu öffnen.

  3. Öffnen Sie auf der Seite RFC ausführen den Bereich CT-Name, um das Feld mit den CT-Details zu sehen. Ein Betreff ist erforderlich (dieser wird für Sie ausgefüllt, wenn Sie Ihr CT in der Ansicht „Änderungstypen durchsuchen“ auswählen). Öffnen Sie den Bereich Zusätzliche Konfiguration, um Informationen zum RFC hinzuzufügen.

    Verwenden Sie im Bereich Ausführungskonfiguration die verfügbaren Dropdownlisten oder geben Sie Werte für die erforderlichen Parameter ein. Um optionale Ausführungsparameter zu konfigurieren, öffnen Sie den Bereich Zusätzliche Konfiguration.

  4. Wenn Sie fertig sind, klicken Sie auf Ausführen. Wenn keine Fehler vorliegen, wird die Seite mit dem RFC erfolgreich erstellt mit den übermittelten RFC-Details und der ersten Run-Ausgabe angezeigt.

  5. Öffnen Sie den Bereich Run-Parameter, um die von Ihnen eingereichten Konfigurationen zu sehen. Aktualisieren Sie die Seite, um den RFC-Ausführungsstatus zu aktualisieren. Optional können Sie den RFC abbrechen oder eine Kopie davon mit den Optionen oben auf der Seite erstellen.

So funktioniert es:

  1. Verwenden Sie entweder Inline Create (Sie geben einen create-rfc Befehl mit allen RFC- und Ausführungsparametern aus) oder Template Create (Sie erstellen zwei JSON-Dateien, eine für die RFC-Parameter und eine für die Ausführungsparameter) und geben Sie den create-rfc Befehl mit den beiden Dateien als Eingabe aus. Beide Methoden werden hier beschrieben.

  2. Reichen Sie den aws amscm submit-rfc --rfc-id ID Befehl RFC: mit der zurückgegebenen RFC-ID ein.

    Überwachen Sie den RFC: -Befehl. aws amscm get-rfc --rfc-id ID

Verwenden Sie diesen Befehl, um die Version des Änderungstyps zu überprüfen:

aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
Anmerkung

Sie können alle CreateRfc Parameter mit jedem RFC verwenden, unabhängig davon, ob sie Teil des Schemas für den Änderungstyp sind oder nicht. Um beispielsweise Benachrichtigungen zu erhalten, wenn sich der RFC-Status ändert, fügen Sie diese Zeile dem RFC-Parameter-Teil der Anfrage hinzu (nicht den Ausführungsparametern). --notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}" Eine Liste aller CreateRfc Parameter finden Sie in der AMS Change Management API-Referenz.

INLINE-ERSTELLUNG:

Geben Sie den Befehl create RFC mit den direkt angegebenen Ausführungsparametern aus (vermeiden Sie Anführungszeichen, wenn Sie die Ausführungsparameter inline angeben), und senden Sie dann die zurückgegebene RFC-ID. Sie können den Inhalt beispielsweise durch etwas Ähnliches ersetzen:

Nur erforderliche Parameter:

aws amscm create-rfc --title my-app-key --change-type-id ct-1d84keiri1jhg --change-type-version 1.0 --execution-parameters '{"Description":"KMS key for my-app","VpcId":"VPC_ID","Name":"my-app-key","StackTemplateId":"stm-enf1j068fhg34vugt","TimeoutInMinutes":60,"Parameters":{"Description":"KMS key for my-app"}}'

VORLAGE ERSTELLEN:

  1. Gibt das JSON-Schema der Ausführungsparameter für diesen Änderungstyp in eine Datei aus. In diesem Beispiel wird sie „ CreateKmsKeyAutoParams.json“ genannt.

    aws amscm get-change-type-version --change-type-id "ct-1d84keiri1jhg" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateKmsKeyAutoParams.json
  2. Ändern und speichern Sie die CreateKmsKeyAutoParams Datei. Es folgen Beispiele.

    Erteilen Sie einem Benutzer oder einer Rolle die Erlaubnis, das erstellte CMK zu entschlüsseln. Beispiele für Ausführungsparameter:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID”, "Name": "my-app-key-decrypt", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringDecryptPermissions": [ "ARN:role/roleA", "ARN:user/userB", "ARN:role/instanceProfileA" ], "Description": "KMS key for my-app" } }

    Die daraus resultierende Richtlinie finden Sie unterErteilt einem IAM-Benutzer oder einer Rolle Berechtigungen zum Entschlüsseln mit der CML.

    Erteilen Sie einem Benutzer oder einer Rolle die Berechtigung zur Verschlüsselung mit dem erstellten CMK. Beispiele für Ausführungsparameter:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encrypt", "Tags": [ { "Key": "Name", "Value": "my-app-key" } ], "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringEncryptPermissions": [ "ARN:role/roleA", "ARN:user/userB", "ARN:role/instanceProfileA" ], "Description": "KMS key for my-app" } }

    Die daraus resultierende Richtlinie finden Sie unterErteilt einem IAM-Benutzer oder einer IAM-Rolle Berechtigungen zum Verschlüsseln mit der CML.

    Erteilen Sie einem Benutzer, einer Rolle oder einem Konto die Berechtigung zum Erstellen von Zuschüssen mithilfe des erstellten CMK. Beispiele für Ausführungsparameter:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-create-grants", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringGrantsPermissions": [ "arn:aws:iam::999999999999:role/roleA", "888888888888" ], "Description": "KMS key for my-app" } }

    Die daraus resultierende Richtlinie finden Sie unterGewährt Berechtigungen zum Erstellen von Zuschüssen mit dem CMK für einen IAM-Benutzer, eine IAM-Rolle oder ein IAM-Konto.

    Erlauben Sie nur AWS-Services, die in AWS KMS integriert sind, den GRANT-Vorgang auszuführen. Beispiele für Ausführungsparameter:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-limit-to-services", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringGrantsPermissions": [ "arn:aws:iam::999999999999:role/roleA" ], "LimitGrantsToAWSResources": "true", "Description": "KMS key for my-app" } }

    Die daraus resultierende Richtlinie finden Sie unterErlauben Sie nur AWS-Services, die in AWS KMS integriert sind, den GRANT-Vorgang auszuführen.

    Erzwingen Sie die Verwendung von Verschlüsselungskontextschlüsseln bei kryptografischen Vorgängen. Beispiele für Ausführungsparameter:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encryption-keys", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "EnforceEncryptionContextKeys": "true", "Description": "KMS key for my-app" } }

    Die daraus resultierende Richtlinie finden Sie unterErzwingen Sie die Verwendung von Verschlüsselungskontextschlüsseln bei kryptografischen Vorgängen.

    Erzwingen Sie bei kryptografischen Vorgängen eine bestimmte Liste von Schlüsseln für den Verschlüsselungskontext. Beispiele für Ausführungsparameter:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encryption-list", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "AllowedEncryptionContextKeys": [ "Name", "Application" ], "Description": "KMS key for my-app" } }

    Die daraus resultierende Richtlinie finden Sie unterErzwingen Sie bei kryptografischen Vorgängen eine bestimmte Liste von Verschlüsselungskontextschlüsseln.

    Erlauben Sie AWS-Services den Zugriff auf das erstellte CMK. Beispiele für Ausführungsparameter:

    { "Description" : "KMS key for my-app", "VpcId" : "VPC_ID", "Name" : "my-app-key-allow-aws-service-access", "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "AllowServiceRolesAccessKMSKeys": [ "ec2.us-east-1.amazonaws.com", "ecr.us-east-1.amazonaws.com" ], "Description": "KMS key for my-app" } }

    Die daraus resultierende Richtlinie finden Sie unterErlauben Sie AWS-Services den Zugriff auf das erstellte CMK.

  3. Gibt die JSON-Datei der RFC-Vorlage in eine Datei aus. In diesem Beispiel wird sie „ CreateKmsKeyAutoRfc.json“ genannt:

    aws amscm create-rfc --generate-cli-skeleton > CreateKmsKeyAutoRfc.json
  4. Ändern und speichern Sie die CreateKmsKeyAutoRfc JSON-Datei. Sie können den Inhalt beispielsweise durch etwas Ähnliches ersetzen:

    { "ChangeTypeId": "ct-1d84keiri1jhg", "ChangeTypeVersion": "1.0", "Title": "Create KMS Key" }
  5. Erstellen Sie den RFC und geben Sie die CreateKmsKeyAuto RFC-Datei und die CreateKmsKeyAutoParams Datei an:

    aws amscm create-rfc --cli-input-json file://CreateKmsKeyAutoRfc.json --execution-parameters file://CreateKmsKeyAutoParams.json

    Sie erhalten die ID des neuen RFC in der Antwort und können sie verwenden, um den RFC einzureichen und zu überwachen. Bis Sie ihn abschicken, verbleibt der RFC im Bearbeitungszustand und startet nicht.

  • Dieser CT erstellt einen CloudFormation Stapel, der einen KMS-Schlüssel mit DeletionPolicy: Retain erstellt. Standardmäßig bleibt der erstellte KMS-Schlüssel auch nach dem Löschen des Stacks bestehen. Wenn Sie sicher sind, dass Sie den KMS-Schlüssel löschen möchten, erstellen Sie einen RFC mit dem Änderungstyp ct-2zxya20wmf5bf, Verwaltung | Erweiterte Stack-Komponenten | KMS-Schlüssel | Löschen (Überprüfung erforderlich).

  • Dieser Änderungstyp ist ExecutionMode =Automatisiert, daher erfordert dieser Änderungstyp keine manuelle Überprüfung durch AMS-Operationen und sollte schneller ausgeführt werden als KMS Key: Create (Überprüfung erforderlich). Wenn Sie jedoch eine ungewöhnliche Situation haben, ist die manuelle Version möglicherweise besser für Sie geeignet. Siehe KMS-Schlüssel | Erstellen (Überprüfung erforderlich).

  • Dieses CT hat einen neuen Parameter, AllowServiceRolesAccessKMSKeys, der den angegebenen AWS-Services Zugriff auf den KMS-Schlüssel ermöglicht. Die Änderung wurde vorgenommen, weil die Autoscaling-Gruppendienstrolle die EC2 Instances mit verschlüsselten EBS-Volumes aufgrund fehlender Berechtigungen für den KMS-Schlüssel nicht starten konnte.

  • Weitere Informationen zu AWS KMS KMS-Schlüsseln finden Sie unter AWS Key Management Service (KMS), AWS Key Management Service FAQs und AWS Key Management Service Concepts.

KMS Key Erstellen Sie die resultierenden Richtlinien

Je nachdem, wie Sie Ihren KMS-Schlüssel erstellt haben, haben Sie Richtlinien erstellt. Diese Beispielrichtlinien entsprechen den verschiedenen Szenarien zur Erstellung von KMS-Schlüsseln, die unter bereitgestellt werdenKMS-Schlüssel erstellen.

Erteilt einem IAM-Benutzer oder einer Rolle Berechtigungen zum Entschlüsseln mit der CML

Die daraus resultierende Beispielrichtlinie gewährt IAM-Benutzern, -Rollen oder Instanzprofilen die Berechtigung zum Entschlüsseln mithilfe des CMK:

{ "Sid": "Allow decrypt using the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::999999999999:user/userB", "arn:aws:iam::999999999999:role/instanceProfileA" ] }, "Action": [ "kms:DescribeKey", "kms:Decrypt" ], "Resource": "*" }

Die Ausführungsparameter für die Erstellung dieser Richtlinie mit dem KMS-Schlüssel Änderungstyp erstellen finden Sie unter KMS-Schlüssel erstellen

Erteilt einem IAM-Benutzer oder einer IAM-Rolle Berechtigungen zum Verschlüsseln mit der CML

Die daraus resultierende Beispielrichtlinie gewährt IAM-Benutzern, -Rollen oder Instanzprofilen die Erlaubnis, mithilfe des CMK zu verschlüsseln:

{ "Sid": "Allow encrypt using the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::999999999999:user/userB", "arn:aws:iam::999999999999:role/instanceProfileA" ] }, "Action": [ "kms:DescribeKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*" }

Die Ausführungsparameter für die Erstellung dieser Richtlinie mit dem KMS-Schlüssel Änderungstyp erstellen finden Sie unter KMS-Schlüssel erstellen

Gewährt Berechtigungen zum Erstellen von Zuschüssen mit dem CMK für einen IAM-Benutzer, eine IAM-Rolle oder ein IAM-Konto

Daraus resultierende Beispielrichtlinie:

{ "Sid": "Allow grants", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::888888888888:root" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*" }

Die Ausführungsparameter zum Erstellen dieser Richtlinie mit dem KMS-Schlüssel Create Change Type finden Sie unter KMS-Schlüssel erstellen

Erlauben Sie nur AWS-Services, die in AWS KMS integriert sind, den GRANT-Vorgang auszuführen

Daraus resultierende Beispielrichtlinie:

{ "Sid": "Allow grants", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::999999999999:role/roleA" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*" }, { "Sid": "Deny if grant is not for AWS resource", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "false" } } } } }

Die Ausführungsparameter zum Erstellen dieser Richtlinie mit dem KMS-Schlüssel Create Change Type finden Sie unter KMS-Schlüssel erstellen

Erzwingen Sie die Verwendung von Verschlüsselungskontextschlüsseln bei kryptografischen Vorgängen

Daraus resultierende Beispielrichtlinie:

{ "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt" ], "Resource": "*", "Condition": { "Null": { "kms:EncryptionContextKeys": "true" } } }

Die Ausführungsparameter zum Erstellen dieser Richtlinie mit dem KMS-Schlüssel Create Change Type finden Sie unter KMS-Schlüssel erstellen

Erzwingen Sie bei kryptografischen Vorgängen eine bestimmte Liste von Verschlüsselungskontextschlüsseln

Daraus resultierende Beispielrichtlinie:

{ "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContextKeys": [ "Name", "Application" ] } } }

Die Ausführungsparameter zum Erstellen dieser Richtlinie mit dem KMS-Schlüssel Create Change Type finden Sie unter KMS-Schlüssel erstellen

Erlauben Sie AWS-Services den Zugriff auf das erstellte CMK

Daraus resultierende Beispielrichtlinie:

{ "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:ListGrants", "kms:CreateGrant", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "ec2.us-west-2.amazonaws.com", "ecr.us-east-1.amazonaws.com" ], "kms:CallerAccount": "111122223333" } } }

Die Ausführungsparameter zum Erstellen dieser Richtlinie mit dem KMS-Schlüssel Create Change Type finden Sie unter KMS-Schlüssel erstellen

Eingabeparameter für die Ausführung

Ausführliche Informationen zu den Eingabeparametern der Ausführung finden Sie unterSchema für den Änderungstyp ct-1d84keiri1jhg.

Beispiel: Erforderliche Parameter

{ "Description" : "Test description", "VpcId" : "vpc-12345678901234567", "Name" : "TestStack", "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "Description" : "Test key" } }

Beispiel: Alle Parameter

{ "Description" : "Test description", "VpcId" : "vpc-12345678", "Name" : "TestStack", "Tags" : [ { "Key" : "foo", "Value" : "bar" } ], "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "Alias" : "testkey", "EnableKeyRotation" : "true", "Description" : "Test key", "PendingWindow" : 30, "IAMPrincipalsRequiringDecryptPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole" ], "IAMPrincipalsRequiringEncryptPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole" ], "IAMPrincipalsRequiringGrantsPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole", "987654321098" ], "LimitGrantsToAWSResources" : "true", "EnforceEncryptionContextKeys" : "true", "AllowedEncryptionContextKeys" : [ "App" ], "AllowServiceRolesAccessKMSKeys": [ "ec2.us-east-1.amazonaws.com" ] } }