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 GenerateDataKey mit einem AWS SDK oder CLI
Die folgenden Code-Beispiele zeigen, wie GenerateDataKey verwendet wird.
- CLI
-
- AWS CLI
-
Beispiel 1: Um einen symmetrischen 256-Bit-Datenschlüssel zu generieren
Im folgenden
generate-data-keyBeispiel wird ein symmetrischer 256-Bit-Datenschlüssel zur Verwendung außerhalb von angefordert. AWS Der Befehl gibt einen Klartext-Datenschlüssel zur sofortigen Verwendung und Löschung sowie eine Kopie dieses Datenschlüssels zurück, die unter dem angegebenen KMS-Schlüssel verschlüsselt wurde. Sie können den verschlüsselten Datenschlüssel sicher neben den verschlüsselten Daten speichern.Um einen 256-Bit-Datenschlüssel anzufordern, verwenden Sie den
key-specParameter mit dem Wert.AES_256Um einen 128-Bit-Datenschlüssel anzufordern, verwenden Sie denkey-specParameter mit dem Wert.AES_128Verwenden Sie für alle anderen Datenschlüssellängen dennumber-of-bytesParameter.Bei dem von Ihnen angegebenen KMS-Schlüssel muss es sich um einen KMS-Schlüssel mit symmetrischer Verschlüsselung handeln, d. h. um einen KMS-Schlüssel mit dem Schlüsselspezifikationswert SYMMETRIC_DEFAULT.
aws kms generate-data-key \ --key-idalias/ExampleAlias\ --key-specAES_256Ausgabe:
{ "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U=" }Der
Plaintext(Klartext-Datenschlüssel) und derCiphertextBlob(verschlüsselte Datenschlüssel) werden im Base64-codierten Format zurückgegeben.Weitere Informationen finden Sie unter Datenschlüssel im AWS Key Management Service Developer Guide. Beispiel 2: So generieren Sie einen symmetrischen 512-Bit-Datenschlüssel
Im folgenden
generate-data-keyBeispiel wird ein symmetrischer 512-Bit-Datenschlüssel für die Verschlüsselung und Entschlüsselung angefordert. Der Befehl gibt einen Klartext-Datenschlüssel zur sofortigen Verwendung und Löschung sowie eine Kopie dieses Datenschlüssels zurück, die unter dem angegebenen KMS-Schlüssel verschlüsselt wurde. Sie können den verschlüsselten Datenschlüssel sicher neben den verschlüsselten Daten speichern.Verwenden Sie den
number-of-bytesParameter, um eine andere Schlüssellänge als 128 oder 256 Bit anzufordern. Um einen 512-Bit-Datenschlüssel anzufordern, verwendet das folgende Beispiel dennumber-of-bytesParameter mit einem Wert von 64 (Byte).Bei dem von Ihnen angegebenen KMS-Schlüssel muss es sich um einen KMS-Schlüssel mit symmetrischer Verschlüsselung handeln, d. h. um einen KMS-Schlüssel mit dem Schlüsselspezifikationswert SYMMETRIC_DEFAULT.
HINWEIS: Die Werte in der Ausgabe dieses Beispiels sind zur Anzeige gekürzt.
aws kms generate-data-key \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --number-of-bytes64Ausgabe:
{ "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...", "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" }Plaintext(Klartext-Datenschlüssel) undCiphertextBlob(verschlüsselter Datenschlüssel) werden im Base64-codierten Format zurückgegeben.Weitere Informationen finden Sie unter Datenschlüssel im AWS Key Management Service Developer Guide.
-
Einzelheiten zur API finden Sie GenerateDataKey
unter AWS CLI Befehlsreferenz.
-
- Python
-
- SDK für Python (Boto3)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-
einrichten und ausführen. class KeyManager: def __init__(self, kms_client): self.kms_client = kms_client self.created_keys = [] @classmethod def from_client(cls) -> "KeyManager": """ Creates a KeyManager instance with a default KMS client. :return: An instance of KeyManager initialized with the default KMS client. """ kms_client = boto3.client("kms") return cls(kms_client) def generate_data_key(self, key_id): """ Generates a symmetric data key that can be used for client-side encryption. """ answer = input( f"Do you want to generate a symmetric data key from key {key_id} (y/n)? " ) if answer.lower() == "y": try: data_key = self.kms_client.generate_data_key( KeyId=key_id, KeySpec="AES_256" ) except ClientError as err: logger.error( "Couldn't generate a data key for key %s. Here's why: %s", key_id, err.response["Error"]["Message"], ) else: pprint(data_key)-
Einzelheiten zur API finden Sie GenerateDataKeyin AWS SDK for Python (Boto3) API Reference.
-
- Rust
-
- SDK für Rust
-
Anmerkung
Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-
einrichten und ausführen. async fn make_key(client: &Client, key: &str) -> Result<(), Error> { let resp = client .generate_data_key() .key_id(key) .key_spec(DataKeySpec::Aes256) .send() .await?; // Did we get an encrypted blob? let blob = resp.ciphertext_blob.expect("Could not get encrypted text"); let bytes = blob.as_ref(); let s = base64::encode(bytes); println!(); println!("Data key:"); println!("{}", s); Ok(()) }-
Einzelheiten zur API finden Sie GenerateDataKey
in der API-Referenz zum AWS SDK für Rust.
-
Eine vollständige Liste der AWS SDK-Entwicklerhandbücher und Codebeispiele finden Sie unterVerwenden dieses Dienstes mit einem AWS SDK. Dieses Thema enthält auch Informationen zu den ersten Schritten und Details zu früheren SDK-Versionen.