Erstellen Sie einen aktiven Filialschlüssel - AWS Datenbankverschlüsselung SDK

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 Sie einen aktiven Filialschlüssel

Ein Verzweigungsschlüssel ist ein Datenschlüssel AWS KMS key , der von einem abgeleitet ist und den der AWS KMS hierarchische Schlüsselbund verwendet, um die Anzahl der Aufrufe zu reduzieren. AWS KMS Der aktive Zweigschlüssel ist die neueste Version des Zweigschlüssels. Der hierarchische Schlüsselbund generiert für jede Verschlüsselungsanforderung einen eindeutigen Datenschlüssel und verschlüsselt jeden Datenschlüssel mit einem eindeutigen Umschließungsschlüssel, der vom aktiven Zweigschlüssel abgeleitet wird.

Um einen neuen aktiven Zweigschlüssel zu erstellen, müssen Sie Ihre Schlüsselspeicher-Aktionen statisch konfigurieren. CreateKeyist eine privilegierte Operation, die den in Ihrer Konfiguration für KMS Schlüsselspeicher-Aktionen ARN angegebenen Schlüssel zu Ihrer Schlüsselspeicher-Zulassungsliste hinzufügt. Anschließend wird der KMS Schlüssel verwendet, um den neuen aktiven Branch-Schlüssel zu generieren. Wir empfehlen, den Zugriff auf diesen Vorgang einzuschränken, da ein KMS einmal zum Schlüsselspeicher hinzugefügter Schlüssel nicht gelöscht werden kann.

Sie können einen KMS Schlüssel in Ihrem Schlüsselspeicher zulassen, oder Sie können mehrere Schlüssel zulassen, indem Sie den KMS Schlüssel, den Sie in Ihrer Konfiguration für KMS Schlüsselspeicher-Aktionen angegeben habenARN, aktualisieren und erneut aufrufenCreateKey. Wenn Sie mehrere KMS Schlüssel auf die Zulassungsliste setzen, sollten Ihre Schlüsselspeicher-Benutzer ihre Schlüsselspeicher-Aktionen für die Erkennung so konfigurieren, dass sie alle Schlüssel auf der Zulassungsliste im Schlüsselspeicher verwenden können, auf die sie Zugriff haben. Weitere Informationen finden Sie unter Schlüsselspeicheraktionen konfigurieren.

Erforderliche -Berechtigungen

Um Branch-Schlüssel zu erstellen, benötigen Sie die ReEncrypt Berechtigungen kms: GenerateDataKeyWithoutPlaintext und kms: für den Schlüssel, der in Ihren KMS Schlüsselspeicher-Aktionen angegeben ist.

Erstellen Sie einen Branch-Schlüssel

Der folgende Vorgang erstellt einen neuen aktiven Branch-Schlüssel unter Verwendung des KMS Schlüssels, den Sie in Ihrer Konfiguration für Schlüsselspeicher-Aktionen angegeben haben, und fügt den aktiven Branch-Schlüssel zur DynamoDB-Tabelle hinzu, die als Ihr Schlüsselspeicher dient.

Wenn Sie aufrufenCreateKey, können Sie wählen, ob Sie die folgenden optionalen Werte angeben möchten.

Java
final Map<String, String> additionalEncryptionContext = Collections.singletonMap("Additional Encryption Context for", "custom branch key id"); final String BranchKey = keystore.CreateKey( CreateKeyInput.builder() .branchKeyIdentifier(custom-branch-key-id) //OPTIONAL .encryptionContext(additionalEncryptionContext) //OPTIONAL .build()).branchKeyIdentifier();
C# / .NET
var additionalEncryptionContext = new Dictionary<string, string>(); additionalEncryptionContext.Add("Additional Encryption Context for", "custom branch key id"); var branchKeyId = keystore.CreateKey(new CreateKeyInput { BranchKeyIdentifier = "custom-branch-key-id", // OPTIONAL EncryptionContext = additionalEncryptionContext // OPTIONAL });

Zunächst generiert die CreateKey Operation die folgenden Werte.

Anschließend ruft der CreateKey Vorgang kms: GenerateDataKeyWithoutPlaintext mit der folgenden Anforderung auf.

{ "EncryptionContext": { "branch-key-id" : "branch-key-id", "type" : "type", "create-time" : "timestamp", "logical-key-store-name" : "the logical table name for your key store", "kms-arn" : the KMS key ARN, "hierarchy-version" : "1", "aws-crypto-ec:contextKey": "contextValue" }, "KeyId": "the KMS key ARN you specified in your key store actions", "NumberOfBytes": "32" }
Anmerkung

Der CreateKey Vorgang erstellt einen aktiven Branch-Schlüssel und einen Beacon-Schlüssel, auch wenn Sie Ihre Datenbank nicht für durchsuchbare Verschlüsselung konfiguriert haben. Beide Schlüssel werden in Ihrem Schlüsselspeicher gespeichert. Weitere Informationen finden Sie unter Verwenden des hierarchischen Schlüsselbundes für durchsuchbare Verschlüsselung.

Als Nächstes ruft der CreateKey Vorgang kms: ReEncrypt auf, um einen aktiven Datensatz für den Branch-Schlüssel zu erstellen, indem der Verschlüsselungskontext aktualisiert wird.

Zuletzt ruft der CreateKey Vorgang ddb: TransactWriteItems auf, um ein neues Element zu schreiben, das den Verzweigungsschlüssel in der Tabelle, die Sie in Schritt 2 erstellt haben, beibehält. Das Element hat die folgenden Attribute.

{ "branch-key-id" : branch-key-id, "type" : "branch:ACTIVE", "enc" : the branch key returned by the GenerateDataKeyWithoutPlaintext call, "version": "branch:version:the branch key version UUID", "create-time" : "timestamp", "kms-arn" : "the KMS key ARN you specified in Step 1", "hierarchy-version" : "1", "aws-crypto-ec:contextKey": "contextValue" }