Arbeiten mit Schlüsseln - 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.

Arbeiten mit Schlüsseln

Die Beispiele in diesem Thema nutzen die AWS KMS-API zum Erstellen, Anzeigen, Aktivieren und Deaktivieren von AWS KMS AWS KMS keys und zum Generieren von Datenschlüsseln.

Erstellen eines KMS-Schlüssels

Verwenden Sie die -CreateKeyOperation, um einen AWS KMS key (KMS-Schlüssel) zu erstellen. In den Beispielen in diesem Abschnitt wird ein KMS-Schlüssel mit symmetrischer Verschlüsselung erstellt. Der in diesen Beispielen verwendete Description-Parameter ist optional.

In Sprachen, für die ein Client-Objekt erforderlich ist, verwenden diese Beispiele das AWS KMS-Client-Objekt, das Sie in Erstellen eines Clients erstellt haben.

Hilfestellung beim Erstellen von KMS-Schlüsseln in der AWS KMS-Konsole finden Sie unter Erstellen von Schlüsseln.

Java

Weitere Informationen finden Sie in der Beschreibung der createKey-Methode in der AWS SDK for Java-API-Referenz.

// Create a KMS key // String desc = "Key for protecting critical data"; CreateKeyRequest req = new CreateKeyRequest().withDescription(desc); CreateKeyResult result = kmsClient.createKey(req);
C#

Weitere Informationen finden Sie in der Beschreibung der CreateKey encrypt-Methode im AWS SDK for .NET.

// Create a KMS key // String desc = "Key for protecting critical data"; CreateKeyRequest req = new CreateKeyRequest() { Description = desc }; CreateKeyResponse response = kmsClient.CreateKey(req);
Python

Weitere Informationen finden Sie in der Beschreibung der create_keyencrypt-Methode im AWS SDK for Python (Boto3).

# Create a KMS key desc = 'Key for protecting critical data' response = kms_client.create_key( Description=desc )
Ruby

Weitere Informationen finden Sie unter der create_key-Instance-Methode encrypt im AWS SDK for Ruby.

# Create a KMS key desc = 'Key for protecting critical data' response = kmsClient.create_key({ description: desc })
PHP

Weitere Informationen finden Sie in der Beschreibung der CreateKeyencrypt-Methode im AWS SDK for PHP.

// Create a KMS key // $desc = "Key for protecting critical data"; $result = $KmsClient->createKey([ 'Description' => $desc ]);
Node.js

Weitere Informationen finden Sie in der createKey-Eigenschaft im AWS -SDK für JavaScript in Node.js.

// Create a KMS key // const Description = 'Key for protecting critical data'; kmsClient.createKey({ Description }, (err, data) => { ... });
PowerShell

Um einen KMS-Schlüssel in zu erstellen PowerShell, verwenden Sie das Cmdlet New-KmsKey.

# Create a KMS key $desc = 'Key for protecting critical data' New-KmsKey -Description $desc

Um die AWS KMS PowerShell Cmdlets zu verwenden, installieren Sie das AWS.Tools.KeyManagementService-Modul. Weitere Informationen finden Sie im AWS Tools for Windows PowerShell-Benutzerhandbuch.

Generieren eines Datenschlüssels

Um einen symmetrischen Datenschlüssel zu generieren, verwenden Sie die -GenerateDataKeyOperation. Diese Operation gibt einen Klartext-Datenschlüssel und eine Kopie dieses Datenschlüssels zurück, der mit dem von Ihnen angegebenen KMS-Schlüssel mit symmetrischer Verschlüsselung verschlüsselt wurde. Sie müssen entweder eine KeySpec oder NumberOfBytes (aber nicht beide) in jedem Befehl angeben.

Hilfe zur Verwendung des Datenschlüssels für die Datenverschlüsselung finden Sie im AWS Encryption SDK. Sie können den Datenschlüssel auch in HMAC-Operationen verwenden.

In Sprachen, für die ein Client-Objekt erforderlich ist, verwenden diese Beispiele das AWS KMS-Client-Objekt, das Sie in Erstellen eines Clients erstellt haben.

Java

Weitere Informationen finden Sie in der -generateDataKey Methode in der APIAWS SDK for Java-Referenz zu .

// Generate a data key // // Replace the following example key ARN with any valid key identfier String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; GenerateDataKeyRequest dataKeyRequest = new GenerateDataKeyRequest(); dataKeyRequest.setKeyId(keyId); dataKeyRequest.setKeySpec("AES_256"); GenerateDataKeyResult dataKeyResult = kmsClient.generateDataKey(dataKeyRequest); ByteBuffer plaintextKey = dataKeyResult.getPlaintext(); ByteBuffer encryptedKey = dataKeyResult.getCiphertextBlob();
C#

Weitere Informationen finden Sie in der Beschreibung der GenerateDataKey encrypt-Methode im AWS SDK for .NET.

// Generate a data key // // Replace the following example key ARN with any valid key identfier String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; GenerateDataKeyRequest dataKeyRequest = new GenerateDataKeyRequest() { KeyId = keyId, KeySpec = DataKeySpec.AES_256 }; GenerateDataKeyResponse dataKeyResponse = kmsClient.GenerateDataKey(dataKeyRequest); MemoryStream plaintextKey = dataKeyResponse.Plaintext; MemoryStream encryptedKey = dataKeyResponse.CiphertextBlob;
Python

Weitere Informationen finden Sie in der Beschreibung der generate_data_keyencrypt-Methode im AWS SDK for Python (Boto3).

# Generate a data key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.generate_data_key( KeyId=key_id, KeySpec='AES_256' ) plaintext_key = response['Plaintext'] encrypted_key = response['CiphertextBlob']
Ruby

Weitere Informationen finden Sie unter der generate_data_key-Instance-Methode encrypt im AWS SDK for Ruby.

# Generate a data key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.generate_data_key({ key_id: key_id, key_spec: 'AES_256' }) plaintext_key = response.plaintext encrypted_key = response.ciphertext_blob
PHP

Weitere Informationen finden Sie in der Beschreibung der GenerateDataKeyencrypt-Methode im AWS SDK for PHP.

// Generate a data key // // Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $keySpec = 'AES_256'; $result = $KmsClient->generateDataKey([ 'KeyId' => $keyId, 'KeySpec' => $keySpec, ]); $plaintextKey = $result['Plaintext']; $encryptedKey = $result['CiphertextBlob'];
Node.js

Weitere Informationen finden Sie unter der -generateDataKey Eigenschaft im AWS -SDK für JavaScript in Node.js .

// Generate a data key // // Replace the following example key ARN with any valid key identfier const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; const KeySpec = 'AES_256'; kmsClient.generateDataKey({ KeyId, KeySpec }, (err, data) => { if (err) console.log(err, err.stack); else { const { CiphertextBlob, Plaintext } = data; ... } });
PowerShell

Verwenden Sie das New-KMS-DataKeyCmdlet, um einen symmetrischen Datenschlüssel zu generieren.

In der Ausgabe sind der Klartextschlüssel (in der -PlaintextEigenschaft) und der verschlüsselte Schlüssel (in der -CiphertextBlobEigenschaft) MemoryStream Objekte. Um sie in Zeichenfolgen zu konvertieren, verwenden Sie die Methoden der MemoryStream Klasse oder ein Cmdlet oder eine Funktion, die MemoryStream Objekte in Zeichenfolgen konvertiert, z. B. die Funktionen ConvertFrom-MemoryStream und ConvertFrom-Base64 im Modul Konvertieren.

# Generate a data key # Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' $keySpec = 'AES_256' $response = New-KmsDataKey -KeyId $keyId -KeySpec $keySpec $plaintextKey = $response.Plaintext $encryptedKey = $response.CiphertextBlob

Um die AWS KMS PowerShell Cmdlets zu verwenden, installieren Sie das AWS.Tools.KeyManagementService-Modul. Weitere Informationen finden Sie im AWS Tools for Windows PowerShell-Benutzerhandbuch.

Anzeigen eines AWS KMS key

Um detaillierte Informationen zu einem AWS KMS key, einschließlich des KMS-Schlüssel-ARN und des Schlüsselstatus, zu erhalten, verwenden Sie die -DescribeKeyOperation.

Mit DescribeKey können keine Aliasnamen abgerufen werden. Um Aliase abzurufen, verwenden Sie die -ListAliasesOperation. Beispiele finden Sie unter Arbeiten mit Aliasen.

In Sprachen, für die ein Client-Objekt erforderlich ist, verwenden diese Beispiele das AWS KMS-Client-Objekt, das Sie in Erstellen eines Clients erstellt haben.

Hilfestellung beim Anzeigen von KMS-Schlüsseln in der AWS KMS-Konsole finden Sie unter Anzeigen von Schlüsseln.

Java

Weitere Informationen finden Sie in der Beschreibung der describeKey-Methode in der AWS SDK for Java-API-Referenz.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DescribeKeyRequest req = new DescribeKeyRequest().withKeyId(keyId); DescribeKeyResult result = kmsClient.describeKey(req);
C#

Weitere Informationen finden Sie in der Beschreibung der DescribeKey encrypt-Methode im AWS SDK for .NET.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DescribeKeyRequest describeKeyRequest = new DescribeKeyRequest() { KeyId = keyId }; DescribeKeyResponse describeKeyResponse = kmsClient.DescribeKey(describeKeyRequest);
Python

Weitere Informationen finden Sie in der Beschreibung der describe_keyencrypt-Methode im AWS SDK for Python (Boto3).

# Describe a KMS key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.describe_key( KeyId=key_id )
Ruby

Weitere Informationen finden Sie unter der describe_key-Instance-Methode encrypt im AWS SDK for Ruby.

# Describe a KMS key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.describe_key({ key_id: key_id })
PHP

Weitere Informationen finden Sie in der Beschreibung der DescribeKeyencrypt-Methode im AWS SDK for PHP.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->describeKey([ 'KeyId' => $keyId, ]);
Node.js

Weitere Informationen finden Sie in der describeKey-Eigenschaft im AWS -SDK für JavaScript in Node.js.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.describeKey({ KeyId }, (err, data) => { ... });
PowerShell

Um detaillierte Informationen zu einem KMS-Schlüssel zu erhalten, verwenden Sie das Get---KmsKeyCmdlet.

# Describe a KMS key # Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Get-KmsKey -KeyId $keyId

Um die AWS KMS PowerShell Cmdlets zu verwenden, installieren Sie das AWS.Tools.KeyManagementService-Modul. Weitere Informationen finden Sie im AWS Tools for Windows PowerShell-Benutzerhandbuch.

Abruf von Schlüssel-IDs und Schlüssel-ARNs von KMS-Schlüsseln

Um die Schlüssel-IDs und Schlüssel-ARNs des abzurufenAWS KMS keys, verwenden Sie die -ListKeysOperation. In diesen Beispielen wird der optionale Limit-Parameter verwendet, der die maximale Anzahl von KMS-Schlüsseln festlegt, die bei jedem Aufruf zurückgegeben werden. Informationen zur Identifizierung eines KMS-Schlüssels in einer AWS KMS-Operation finden Sie unter Schlüsselkennungen () KeyId.

In Sprachen, für die ein Client-Objekt erforderlich ist, verwenden diese Beispiele das AWS KMS-Client-Objekt, das Sie in Erstellen eines Clients erstellt haben.

Hilfestellung beim Suchen von Schlüssel-IDs und Schlüssel-ARNs in der AWS KMS-Konsole finden Sie unter Finden der Schlüssel-ID und des Schlüssel-ARN.

Java

Weitere Informationen finden Sie in der Beschreibung der listKeys-Methode in der AWS SDK for Java-API-Referenz.

// List KMS keys in this account // Integer limit = 10; ListKeysRequest req = new ListKeysRequest().withLimit(limit); ListKeysResult result = kmsClient.listKeys(req);
C#

Weitere Informationen finden Sie in der Beschreibung der ListKeys encrypt-Methode im AWS SDK for .NET.

// List KMS keys in this account // int limit = 10; ListKeysRequest listKeysRequest = new ListKeysRequest() { Limit = limit }; ListKeysResponse listKeysResponse = kmsClient.ListKeys(listKeysRequest);
Python

Weitere Informationen finden Sie in der Beschreibung der list_keysencrypt-Methode im AWS SDK for Python (Boto3).

# List KMS keys in this account response = kms_client.list_keys( Limit=10 )
Ruby

Weitere Informationen finden Sie unter der list_keys-Instance-Methode encrypt im AWS SDK for Ruby.

# List KMS keys in this account response = kmsClient.list_keys({ limit: 10 })
PHP

Weitere Informationen finden Sie in der Beschreibung der ListKeys encrypt-Methode im AWS SDK for PHP.

// List KMS keys in this account // $limit = 10; $result = $KmsClient->listKeys([ 'Limit' => $limit, ]);
Node.js

Weitere Informationen finden Sie in der listKeys-Eigenschaft im AWS -SDK für JavaScript in Node.js.

// List KMS keys in this account // const Limit = 10; kmsClient.listKeys({ Limit }, (err, data) => { ... });
PowerShell

Um die Schlüssel-ID und den Schlüssel-ARN aller KMS-Schlüssel im Konto und in der Region abzurufen, verwenden Sie das Get--KmsKeyList-Cmdlet.

Um die maximale Anzahl der Ausgabeobjekte zu begrenzen, verwendet dieses Beispiel das Select-Object-cmdlet anstelle des Limit-Parameters, der in Listen-cmdlets veraltet ist. Hilfe zum Paginieren der Ausgabe in AWS Tools for PowerShell finden Sie unter Ausgabepaginierung mit AWS Tools for PowerShell.

# List KMS keys in this account $limit = 10 Get-KmsKeyList | Select-Object -First $limit

Um die AWS KMS PowerShell Cmdlets zu verwenden, installieren Sie das AWS.Tools.KeyManagementService-Modul. Weitere Informationen finden Sie im AWS Tools for Windows PowerShell-Benutzerhandbuch.

Aktivieren von AWS KMS keys

Um eine deaktivierte zu aktivierenAWS KMS key, verwenden Sie die -EnableKeyOperation.

In Sprachen, für die ein Client-Objekt erforderlich ist, verwenden diese Beispiele das AWS KMS-Client-Objekt, das Sie in Erstellen eines Clients erstellt haben.

Hilfestellung beim Aktivieren und Deaktivieren von KMS-Schlüssel in der AWS KMS-Konsole finden Sie unter Aktivieren und Deaktivieren von Schlüsseln.

Java

Weitere Informationen zur Java-Implementierung finden Sie in der Beschreibung der enableKey-Methode in der AWS SDK for Java-API-Referenz.

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; EnableKeyRequest req = new EnableKeyRequest().withKeyId(keyId); kmsClient.enableKey(req);
C#

Weitere Informationen finden Sie in der Beschreibung der EnableKey encrypt-Methode im AWS SDK for .NET.

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; EnableKeyRequest enableKeyRequest = new EnableKeyRequest() { KeyId = keyId }; kmsClient.EnableKey(enableKeyRequest);
Python

Weitere Informationen finden Sie in der Beschreibung der enable_keyencrypt-Methode im AWS SDK for Python (Boto3).

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.enable_key( KeyId=key_id )
Ruby

Weitere Informationen finden Sie unter der enable_key-Instance-Methode encrypt im AWS SDK for Ruby.

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.enable_key({ key_id: key_id })
PHP

Weitere Informationen finden Sie in der Beschreibung der EnableKeyencrypt-Methode im AWS SDK for PHP.

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->enableKey([ 'KeyId' => $keyId, ]);
Node.js

Weitere Informationen finden Sie unter der enableKey-Eigenschaft im AWS -SDK für JavaScript in Node.js .

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.enableKey({ KeyId }, (err, data) => { ... });
PowerShell

Um einen KMS-Schlüssel zu aktivieren, verwenden Sie das Cmdlet Enable-KmsKey.

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Enable-KmsKey -KeyId $keyId

Um die AWS KMS PowerShell Cmdlets zu verwenden, installieren Sie das AWS.Tools.KeyManagementService-Modul. Weitere Informationen finden Sie im AWS Tools for Windows PowerShell-Benutzerhandbuch.

Deaktivieren von AWS KMS key

Um einen KMS-Schlüssel zu deaktivieren, verwenden Sie die -DisableKeyOperation. Das Deaktivieren eines KMS-Schlüssels verhindert, dass er in kryptografischen Operationen verwendet wird.

In Sprachen, für die ein Client-Objekt erforderlich ist, verwenden diese Beispiele das AWS KMS-Client-Objekt, das Sie in Erstellen eines Clients erstellt haben.

Hilfestellung beim Aktivieren und Deaktivieren von KMS-Schlüsseln in der AWS KMS-Konsole finden Sie unter Aktivieren und Deaktivieren von Schlüsseln.

Java

Weitere Informationen finden Sie in der Beschreibung der disableKey-Methode in der AWS SDK for Java-API-Referenz.

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DisableKeyRequest req = new DisableKeyRequest().withKeyId(keyId); kmsClient.disableKey(req);
C#

Weitere Informationen finden Sie in der Beschreibung der DisableKey encrypt-Methode im AWS SDK for .NET.

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DisableKeyRequest disableKeyRequest = new DisableKeyRequest() { KeyId = keyId }; kmsClient.DisableKey(disableKeyRequest);
Python

Weitere Informationen finden Sie in der Beschreibung der disable_keyencrypt-Methode im AWS SDK for Python (Boto3).

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.disable_key( KeyId=key_id )
Ruby

Weitere Informationen finden Sie unter der disable_key-Instance-Methode encrypt im AWS SDK for Ruby.

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.disable_key({ key_id: key_id })
PHP

Weitere Informationen finden Sie in der Beschreibung der DisableKeyencrypt-Methode im AWS SDK for PHP.

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->disableKey([ 'KeyId' => $keyId, ]);
Node.js

Weitere Informationen finden Sie unter der disableKey-Eigenschaft im AWS -SDK für JavaScript in Node.js .

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.disableKey({ KeyId }, (err, data) => { ... });
PowerShell

Um einen KMS-Schlüssel zu deaktivieren, verwenden Sie das Cmdlet Disable-KmsKey cmdlet.

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Disable-KmsKey -KeyId $keyId

Um die AWS KMS PowerShell Cmdlets zu verwenden, installieren Sie das AWS.Tools.KeyManagementService-Modul. Weitere Informationen finden Sie im AWS Tools for Windows PowerShell-Benutzerhandbuch.