Schlüsselspeicheraktionen konfigurieren - AWS SDK für Datenbankverschlüsselung

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.

Schlüsselspeicheraktionen konfigurieren

Schlüsselspeicher-Aktionen bestimmen, welche Operationen Ihre Benutzer ausführen können und wie ihr AWS KMS hierarchischer Schlüsselbund die KMS-Schlüssel verwendet, die in Ihrem Schlüsselspeicher zugelassen sind. Das AWS Database Encryption SDK unterstützt die folgenden Konfigurationen für Schlüsselspeicher-Aktionen.

Statisch

Wenn Sie Ihren Schlüsselspeicher statisch konfigurieren, kann der Schlüsselspeicher nur den KMS-Schlüssel verwenden, der dem KMS-Schlüssel-ARN zugeordnet ist, den Sie kmsConfiguration bei der Konfiguration Ihrer Schlüsselspeicheraktionen angeben. Eine Ausnahme wird ausgelöst, wenn beim Erstellen, Versionieren oder Abrufen eines Zweigschlüssels auf einen anderen KMS-Schlüssel-ARN gestoßen wird.

Sie können einen KMS-Schlüssel für mehrere Regionen in Ihrem angebenkmsConfiguration, aber der gesamte ARN des Schlüssels, einschließlich der Region, wird in den vom KMS-Schlüssel abgeleiteten Zweigschlüsseln beibehalten. Sie können keinen Schlüssel in einer anderen Region angeben. Sie müssen exakt denselben Schlüssel für mehrere Regionen angeben, damit die Werte übereinstimmen.

Wenn Sie Ihre Schlüsselspeicher-Aktionen statisch konfigurieren, können Sie Verwendungsvorgänge (GetActiveBranchKeyGetBranchKeyVersion,GetBeaconKey) und Verwaltungsvorgänge (CreateKeyundVersionKey) ausführen. CreateKeyist eine privilegierte Operation, die Ihrer Schlüsselspeicher-Zulassungsliste einen neuen KMS-Schlüssel-ARN hinzufügen kann. Mit diesem KMS-Schlüssel können neue aktive Zweigschlüssel erstellt werden. Wir empfehlen, den Zugriff auf diesen Vorgang einzuschränken, da ein KMS-Schlüssel, der einmal dem Schlüsselspeicher hinzugefügt wurde, nicht gelöscht werden kann.

Erkennung

Wenn Sie Ihre Schlüsselspeicheraktionen für die Erkennung konfigurieren, kann der Schlüsselspeicher jeden AWS KMS key ARN verwenden, der in Ihrem Schlüsselspeicher zugelassen ist. Es wird jedoch eine Ausnahme ausgelöst, wenn ein KMS-Schlüssel mit mehreren Regionen gefunden wird und die Region im ARN des Schlüssels nicht mit der Region des verwendeten AWS KMS Clients übereinstimmt.

Wenn Sie Ihren Schlüsselspeicher für die Erkennung konfigurieren, können Sie keine administrativen Operationen wie CreateKey und VersionKey ausführen. Sie können nur die Verwendungsvorgänge ausführen, die Verschlüsselungs-, Entschlüsselungs-, Signierungs- und Überprüfungsvorgänge ermöglichen. Weitere Informationen finden Sie unter Implementieren der geringsten Berechtigungen.

Konfigurieren Sie Ihre Schlüsselspeicher-Aktionen

Bevor Sie Ihre Schlüsselspeicher-Aktionen konfigurieren, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind.

  • Ermitteln Sie, welche Operationen Sie ausführen müssen. Weitere Informationen finden Sie unter Implementieren der geringsten Berechtigungen.

  • Wählen Sie einen Namen für den logischen Schlüsselspeicher

    Es muss eine one-to-one Zuordnung zwischen dem DynamoDB-Tabellennamen und dem Namen des logischen Schlüsselspeichers bestehen. Der Name des logischen Schlüsselspeichers ist kryptografisch an alle in der Tabelle gespeicherten Daten gebunden, um DynamoDB-Wiederherstellungsvorgänge zu vereinfachen. Er kann nicht geändert werden, nachdem er ursprünglich vom ersten Benutzer definiert wurde. Sie müssen in Ihren Schlüsselspeicheraktionen immer denselben logischen Schlüsselspeicher-Namen angeben. Weitere Informationen finden Sie unter logical key store name.

Im folgenden Beispiel werden Schlüsselspeicheraktionen statisch konfiguriert. Sie müssen den Namen der DynamoDB-Tabelle angeben, die als Ihr Schlüsselspeicher dient, einen logischen Namen für den Schlüsselspeicher und den KMS-Schlüssel-ARN, der einen KMS-Schlüssel mit symmetrischer Verschlüsselung identifiziert.

Anmerkung

Berücksichtigen Sie sorgfältig den KMS-Schlüssel-ARN, den Sie bei der statischen Konfiguration Ihres Schlüsselspeicherdienstes angeben. Der CreateKey Vorgang fügt den KMS-Schlüssel ARN zu Ihrer Zulassungsliste für den Branch Key Store hinzu. Sobald ein KMS-Schlüssel dem Branch-Schlüsselspeicher hinzugefügt wurde, kann er nicht gelöscht werden.

Java
final KeyStore keystore = KeyStore.builder().KeyStoreConfig( KeyStoreConfig.builder() .ddbClient(DynamoDbClient.create()) .ddbTableName(keyStoreName) .logicalKeyStoreName(logicalKeyStoreName) .kmsClient(KmsClient.create()) .kmsConfiguration(KMSConfiguration.builder() .kmsKeyArn(kmsKeyArn) .build()) .build()).build();
C# / .NET
var kmsConfig = new KMSConfiguration { KmsKeyArn = kmsKeyArn }; var keystoreConfig = new KeyStoreConfig { KmsClient = new AmazonKeyManagementServiceClient(), KmsConfiguration = kmsConfig, DdbTableName = keyStoreName, DdbClient = new AmazonDynamoDBClient(), LogicalKeyStoreName = logicalKeyStoreName }; var keystore = new KeyStore(keystoreConfig);
Rust
let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let key_store_config = KeyStoreConfig::builder() .kms_client(aws_sdk_kms::Client::new(&sdk_config)) .ddb_client(aws_sdk_dynamodb::Client::new(&sdk_config)) .ddb_table_name(key_store_name) .logical_key_store_name(logical_key_store_name) .kms_configuration(KmsConfiguration::KmsKeyArn(kms_key_arn.to_string())) .build()?; let keystore = keystore_client::Client::from_conf(key_store_config)?;

Im folgenden Beispiel werden Schlüsselspeicheraktionen für die Erkennung konfiguriert. Sie müssen den Namen der DynamoDB-Tabelle, die als Ihr Schlüsselspeicher dient, und einen logischen Schlüsselspeicher-Namen angeben.

Java
final KeyStore keystore = KeyStore.builder().KeyStoreConfig( KeyStoreConfig.builder() .ddbClient(DynamoDbClient.create()) .ddbTableName(keyStoreName) .logicalKeyStoreName(logicalKeyStoreName) .kmsClient(KmsClient.create()) .kmsConfiguration(KMSConfiguration.builder() .discovery(Discovery.builder().build()) .build()) .build()).build();
C# / .NET
var keystoreConfig = new KeyStoreConfig { KmsClient = new AmazonKeyManagementServiceClient(), KmsConfiguration = new KMSConfiguration {Discovery = new Discovery()}, DdbTableName = keyStoreName, DdbClient = new AmazonDynamoDBClient(), LogicalKeyStoreName = logicalKeyStoreName }; var keystore = new KeyStore(keystoreConfig);
Rust
let key_store_config = KeyStoreConfig::builder() .kms_client(kms_client) .ddb_client(ddb_client) .ddb_table_name(key_store_name) .logical_key_store_name(logical_key_store_name) .kms_configuration(KmsConfiguration::Discovery(Discovery::builder().build()?)) .build()?;