Verwendung von kundenverwalteten Schlüsseln in Amazon QLDB - Amazon Quantum Ledger-Datenbank (AmazonQLDB)

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.

Verwendung von kundenverwalteten Schlüsseln in Amazon QLDB

Sie können das AWS Management Console, das AWS Command Line Interface (AWS CLI) oder das verwenden, QLDB API um das AWS KMS key für neue Ledger und bestehende Ledger in Amazon anzugeben. QLDB In den folgenden Themen wird beschrieben, wie Sie die Verwendung Ihrer vom Kunden verwalteten Schlüssel in verwalten und überwachen können. QLDB

Voraussetzungen

Bevor Sie ein QLDB Ledger mit einem vom Kunden verwalteten Schlüssel schützen können, müssen Sie zuerst den Schlüssel in AWS Key Management Service (AWS KMS) erstellen. Sie müssen auch eine wichtige Richtlinie angeben, die es Ihnen ermöglicht, QLDB in Ihrem Namen Zuschüsse für dieses AWS KMS key Dokument zu vergeben.

Einen vom Kunden verwalteten Schlüssel erstellen

Um einen vom Kunden verwalteten Schlüssel zu erstellen, folgen Sie den Schritten unter Erstellen symmetrischer KMS Verschlüsselungsschlüssel im AWS Key Management Service Entwicklerhandbuch. QLDBunterstützt keine asymmetrischen Schlüssel.

Einstellen einer Schlüsselrichtlinie

Schlüsselrichtlinien sind die wichtigste Methode zur Steuerung des Zugriffs auf vom Kunden verwaltete Schlüssel in AWS KMS. Jeder vom Kunden verwaltete Schlüssel muss genau eine Schlüsselrichtlinie haben. Die Aussagen im Dokument mit den wichtigsten Richtlinien legen fest, wer berechtigt ist, den KMS Schlüssel zu verwenden, und wie er verwendet werden kann. Weitere Informationen finden Sie unter Verwenden wichtiger Richtlinien in AWS KMS.

Sie können eine wichtige Richtlinie angeben, wenn Sie Ihren vom Kunden verwalteten Schlüssel erstellen. Informationen zum Ändern einer Schlüsselrichtlinie für einen vorhandenen, vom Kunden verwalteten Schlüssel finden Sie unter Schlüsselrichtlinie ändern.

Damit Sie QLDB Ihren vom Kunden verwalteten Schlüssel verwenden können, muss die Schlüsselrichtlinie Berechtigungen für die folgenden AWS KMS Aktionen enthalten:

  • kms: CreateGrant — Fügt einem vom Kunden verwalteten Schlüssel einen Zuschuss hinzu. Gewährt Kontrollzugriff auf einen bestimmten KMS Schlüssel.

    Wenn Sie ein Hauptbuch mit einem bestimmten, vom Kunden verwalteten Schlüssel erstellen oder aktualisieren, QLDB erstellt es Zuweisungen, die den Zugriff auf die erforderlichen Zuschussvorgänge ermöglichen. Die Zuschussoperationen umfassen Folgendes:

  • kms: DescribeKey — Gibt detaillierte Informationen zu einem vom Kunden verwalteten Schlüssel zurück. QLDBverwendet diese Informationen, um den Schlüssel zu validieren.

Beispiel für eine wichtige Richtlinie

Im Folgenden finden Sie ein Beispiel für eine wichtige Richtlinie, das Sie verwenden könnenQLDB. Diese Richtlinie ermöglicht es Prinzipalen, die autorisiert sind, QLDB vom Konto 111122223333 aus die CreateGrant AND-Operationen für die DescribeKey Ressource arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab aufzurufen.

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1, 111122223333, und 1234abcd-12ab-34cd-56ef-1234567890ab im Beispiel mit Ihren eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid" : "Allow access to principals authorized to use Amazon QLDB", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant" ], "Resource" : "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition" : { "StringEquals" : { "kms:ViaService" : "qldb.us-east-1.amazonaws.com", "kms:CallerAccount" : "111122223333" } } } ] }

Angabe des AWS KMS key für ein neues Hauptbuch

Gehen Sie wie folgt vor, um einen KMS Schlüssel anzugeben, wenn Sie ein neues Hauptbuch mit der QLDB Konsole oder dem erstellen. AWS CLI

Sie können einen vom Kunden verwalteten Schlüssel mithilfe einer ID, eines Alias oder eines Amazon-Ressourcennamens (ARN) angeben. Weitere Informationen finden Sie unter Schlüsselkennungen (KeyId) im AWS Key Management Service Entwicklerhandbuch.

Anmerkung

Regionsübergreifende Schlüssel werden nicht unterstützt. Der angegebene KMS Schlüssel muss sich in demselben Verzeichnis befinden AWS-Region wie Ihr Hauptbuch.

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die QLDB Amazon-Konsole unter https://console.aws.amazon.com/qldb.

  2. Wählen Sie Create Ledger (Ledger erstellen) aus.

  3. Gehen Sie auf der Seite Create Ledger (Ledger erstellen) wie folgt vor:

    • Ledger-Informationen — Geben Sie einen Ledger-Namen ein, der für alle Ledger in der aktuellen und der Region eindeutig ist. AWS-Konto

    • Berechtigungsmodus — Wählen Sie einen Berechtigungsmodus, der dem Ledger zugewiesen werden soll:

      • Alle zulassen

      • Standard (empfohlen)

    • Daten im Ruhezustand verschlüsseln — Wählen Sie den KMS Schlüsseltyp aus, der für die Verschlüsselung im Ruhezustand verwendet werden soll:

      • AWS Eigenen KMS Schlüssel verwenden — Verwenden Sie einen KMS Schlüssel, der in Ihrem Namen gehört und von AWS diesem verwaltet wird. Dies ist die Standardoption und erfordert keine zusätzliche Einrichtung.

      • Wählen Sie einen anderen AWS KMS Schlüssel — Verwenden Sie einen symmetrischen KMS Verschlüsselungsschlüssel in Ihrem Konto, das Sie erstellen, besitzen und verwalten.

        Um mithilfe der AWS KMS Konsole einen neuen Schlüssel zu erstellen, wählen Sie Create an AWS KMS Key. Weitere Informationen finden Sie im AWS Key Management Service Entwicklerhandbuch unter Erstellen symmetrischer KMS Verschlüsselungsschlüssel.

        Um einen vorhandenen KMS Schlüssel zu verwenden, wählen Sie einen aus der Dropdownliste aus oder geben Sie einen KMS Schlüssel an. ARN

  4. Wenn Sie die gewünschten Einstellungen vorgenommen haben, wählen Sie Create ledger (Ledger erstellen) aus.

    Sie können auf Ihr QLDB Ledger zugreifen, wenn sein Status Aktiv wird. Dies kann mehrere Minuten dauern.

Verwenden Sie den AWS CLI , um ein Ledger QLDB mit dem Standard AWS-eigener Schlüssel - oder einem vom Kunden verwalteten Schlüssel zu erstellen.

Beispiel — Um ein Ledger mit dem Standard zu erstellen AWS-eigener Schlüssel
aws qldb create-ledger --name my-example-ledger --permissions-mode STANDARD
Beispiel — Um ein Ledger mit einem vom Kunden verwalteten Schlüssel zu erstellen
aws qldb create-ledger \ --name my-example-ledger \ --permissions-mode STANDARD \ --kms-key arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Aktualisierung AWS KMS key eines vorhandenen Ledgers

Sie können auch jederzeit die QLDB Konsole oder die verwenden AWS CLI , um den KMS Schlüssel eines vorhandenen Ledgers auf einen AWS-eigener Schlüssel oder einen vom Kunden verwalteten Schlüssel zu aktualisieren.

Anmerkung

Amazon QLDB hat AWS KMS keys am 22. Juli 2021 den Support für Customer Managed eingeführt. Alle Ledger, die vor dem Start erstellt wurden, sind AWS-eigene Schlüssel standardmäßig geschützt, kommen aber derzeit nicht für die Verschlüsselung im Ruhezustand mit vom Kunden verwalteten Schlüsseln in Frage.

Sie können die Erstellungszeit Ihres Ledgers auf der QLDB Konsole einsehen.

Die wichtigsten Änderungen in QLDB erfolgen asynchron. Während der Bearbeitung der Schlüsseländerung kann vollständig auf das Hauptbuch zugegriffen werden, ohne dass die Leistung beeinträchtigt wird. Die Zeit, die für die Aktualisierung eines Schlüssels benötigt wird, hängt von der Größe des Hauptbuchs ab.

Sie können einen vom Kunden verwalteten Schlüssel mithilfe einer ID, eines Alias oder eines Amazon-Ressourcennamens (ARN) angeben. Weitere Informationen finden Sie unter Schlüsselkennungen (KeyId) im AWS Key Management Service Entwicklerhandbuch.

Anmerkung

Regionsübergreifende Schlüssel werden nicht unterstützt. Der angegebene KMS Schlüssel muss sich in demselben Verzeichnis befinden AWS-Region wie Ihr Hauptbuch.

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die QLDB Amazon-Konsole unter https://console.aws.amazon.com/qldb.

  2. Wählen Sie im Navigationsbereich Ledgers aus.

  3. Wählen Sie in der Liste der Ledger das Ledger aus, das Sie aktualisieren möchten, und wählen Sie dann Ledger bearbeiten.

  4. Wählen Sie auf der Seite „Hauptbuch bearbeiten“ den KMS Schlüsseltyp aus, der für die Verschlüsselung im Ruhezustand verwendet werden soll:

    • AWS Eigenen KMS Schlüssel verwenden — Verwenden Sie einen KMS Schlüssel, der in Ihrem Namen gehört und von AWS diesem verwaltet wird. Dies ist die Standardoption und erfordert keine zusätzliche Einrichtung.

    • Wählen Sie einen anderen AWS KMS Schlüssel — Verwenden Sie einen symmetrischen KMS Verschlüsselungsschlüssel in Ihrem Konto, das Sie erstellen, besitzen und verwalten.

      Um mithilfe der AWS KMS Konsole einen neuen Schlüssel zu erstellen, wählen Sie Create an AWS KMS Key. Weitere Informationen finden Sie im AWS Key Management Service Entwicklerhandbuch unter Erstellen symmetrischer KMS Verschlüsselungsschlüssel.

      Um einen vorhandenen KMS Schlüssel zu verwenden, wählen Sie einen aus der Dropdownliste aus oder geben Sie einen KMS Schlüssel an. ARN

  5. Wählen Sie Änderungen bestätigen.

Verwenden Sie den AWS CLI , um ein vorhandenes Ledger QLDB mit dem Standard AWS-eigener Schlüssel - oder einem vom Kunden verwalteten Schlüssel zu aktualisieren.

Beispiel — Um ein Ledger mit dem Standard zu aktualisieren AWS-eigener Schlüssel
aws qldb update-ledger --name my-example-ledger --kms-key AWS_OWNED_KMS_KEY
Beispiel — Um ein Ledger mit einem vom Kunden verwalteten Schlüssel zu aktualisieren
aws qldb update-ledger \ --name my-example-ledger \ --kms-key arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Überwachung Ihrer AWS KMS keys

Wenn Sie einen vom Kunden verwalteten Schlüssel zum Schutz Ihrer QLDB Amazon-Ledger verwenden, können Sie Amazon CloudWatch Logs verwenden AWS CloudTrail, um die Anfragen zu verfolgen, die in AWS KMS Ihrem Namen QLDB gesendet werden. Weitere Informationen finden Sie unter Überwachung AWS KMS keys im AWS Key Management Service Entwicklerhandbuch.

Die folgenden Beispiele sind CloudTrail Protokolleinträge für die Operationen CreateGrantGenerateDataKey,Decrypt,Encrypt, undDescribeKey.

CreateGrant

Wenn Sie zum Schutz Ihres Ledgers einen vom Kunden verwalteten Schlüssel angeben, QLDB sendet er in Ihrem Namen CreateGrant Anfragen an, um Zugriff AWS KMS auf Ihren KMS Schlüssel zu gewähren. QLDBVerwendet den RetireGrant Vorgang außerdem zum Entfernen von Zuschüssen, wenn Sie ein Hauptbuch löschen.

Die Zuschüsse, die QLDB erstellt werden, sind für ein Hauptbuch spezifisch. Der Principal in der CreateGrant Anfrage ist der Benutzer, der die Tabelle erstellt hat.

Das Ereignis, das die CreateGrant-Operation aufzeichnet, ähnelt dem folgenden Beispielereignis. Zu den Parametern gehören der Amazon-Ressourcenname (ARN) des vom Kunden verwalteten Schlüssels, der Principal und der ausscheidende Principal (der QLDB Service) sowie die Operationen, die durch den Zuschuss abgedeckt werden.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:sample-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/sample-user", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-06-04T21:37:11Z" } }, "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:00Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "granteePrincipal": "qldb.us-west-2.amazonaws.com", "operations": [ "DescribeKey", "GenerateDataKey", "Decrypt", "Encrypt" ], "retiringPrincipal": "qldb.us-west-2.amazonaws.com" }, "responseElements": { "grantId": "b3c83f999187ccc0979ef2ff86a1572237b6bba309c0ebce098c34761f86038a" }, "requestID": "e99188d7-3b82-424e-b63e-e086d848ed60", "eventID": "88dc7ba5-4952-4d36-9ca8-9ab5d9598bab", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }
GenerateDataKey

Wenn Sie zum Schutz Ihres Hauptbuchs einen vom Kunden verwalteten Schlüssel angeben, QLDB wird ein eindeutiger Datenschlüssel erstellt. Es sendet eine GenerateDataKey Anfrage an AWS KMS , in der der vom Kunden verwaltete Schlüssel für das Hauptbuch angegeben wird.

Das Ereignis, das die GenerateDataKey-Operation aufzeichnet, ähnelt dem folgenden Beispielereignis. Der Benutzer ist das QLDB Dienstkonto. Zu den Parametern gehören ARN der vom Kunden verwaltete Schlüssel, ein Datenschlüsselspezifizierer, der eine Länge von 32 Byte erfordert, und der Verschlüsselungskontext, der den internen Schlüsselhierarchieknoten identifiziert.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:01Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "numberOfBytes": 32, "encryptionContext": { "key-hierarchy-node-id": "LY4HWMnkeZWKYi6MlitVJC", "key-hierarchy-node-version": "1" } }, "responseElements": null, "requestID": "786977c9-e77c-467a-bff5-9ad5124a4462", "eventID": "b3f082cb-3e75-454e-bf0a-64be13075436", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "26688de5-0b1c-43d3-bc4f-a18029b08446" }
Decrypt

QLDBRuft beim Zugriff auf ein Ledger den Decrypt Vorgang zum Entschlüsseln des gespeicherten Datenschlüssels des Ledgers auf, sodass es auf die verschlüsselten Daten im Ledger zugreifen kann.

Das Ereignis, das die Decrypt-Operation aufzeichnet, ähnelt dem folgenden Beispielereignis. Der Benutzer ist das Dienstkonto. QLDB Zu den Parametern gehören ARN der vom Kunden verwaltete Schlüssel und der Verschlüsselungskontext, der den internen Schlüsselhierarchieknoten identifiziert.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:56Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "encryptionContext": { "key-hierarchy-node-id": "LY4HWMnkeZWKYi6MlitVJC", "key-hierarchy-node-version": "1" } }, "responseElements": null, "requestID": "28f2dd18-3cc1-4fe2-82f7-5154f4933ebf", "eventID": "603ad5d4-4744-4505-9c21-bd4a6cbd4b20", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "7b6ce3e3-a764-42ec-8f90-5418c97ec411" }
Encrypt

QLDBruft den Encrypt Vorgang auf, um Klartext mithilfe Ihres vom Kunden verwalteten Schlüssels in Chiffretext zu verschlüsseln.

Das Ereignis, das die Encrypt-Operation aufzeichnet, ähnelt dem folgenden Beispielereignis. Der Benutzer ist das Dienstkonto. QLDB Zu den Parametern gehören ARN der vom Kunden verwaltete Schlüssel und der Verschlüsselungskontext, der die interne eindeutige ID des Ledgers angibt.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:01Z", "eventSource": "kms.amazonaws.com", "eventName": "Encrypt", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionContext": { "LedgerId": "F6qRNziJLUXA4Vy2ZUv8YY" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "b2daca7d-4606-4302-a2d7-5b3c8d30c64d", "eventID": "b8aace05-2e37-4fed-ae6f-a45a1c6098df", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "ce420ab0-288e-4b4f-aee8-541e18a28aa5" }
DescribeKey

QLDBruft den DescribeKey Vorgang auf, um festzustellen, ob der von Ihnen angegebene KMS Schlüssel in der Region AWS-Konto und existiert.

Das Ereignis, das die DescribeKey-Operation aufzeichnet, ähnelt dem folgenden Beispielereignis. Der Principal ist der Benutzer in Ihrem System AWS-Konto , der den KMS Schlüssel angegeben hat. Zu den Parametern gehört der ARN des vom Kunden verwalteten Schlüssels.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:sample-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/sample-user", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-06-04T21:37:11Z" } }, "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:00Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "a30586af-c783-4d25-8fda-33152c816c36", "eventID": "7a9caf07-2b27-44ab-afe4-b259533ebb88", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }