Utilizzare GenerateDataKey con un o AWS SDK CLI - Esempi di codice dell'AWS SDK

Ci sono altri AWS SDK esempi disponibili nel repository AWS Doc SDK Examples GitHub .

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzare GenerateDataKey con un o AWS SDK CLI

I seguenti esempi di codice mostrano come utilizzareGenerateDataKey.

CLI
AWS CLI

Esempio 1: generare una chiave dati simmetrica a 256 bit

L'generate-data-keyesempio seguente richiede una chiave dati simmetrica a 256 bit da utilizzare all'esterno di. AWS Il comando restituisce una chiave di dati in testo semplice per l'uso e l'eliminazione immediati e una copia di tale chiave dati crittografata con la chiave specificata. KMS Puoi archiviare la chiave di dati crittografata in modo sicuro con i dati crittografati.

Per richiedere una chiave dati a 256 bit, utilizzate il key-spec parametro con un valore di. AES_256 Per richiedere una chiave dati a 128 bit, utilizzate il key-spec parametro con un valore di. AES_128 Per tutte le altre lunghezze delle chiavi dati, utilizzate il number-of-bytes parametro.

La KMS chiave specificata deve essere una chiave di crittografia simmetrica, ovvero una KMS chiave con un valore specifico della KMS chiave pari a _. SYMMETRIC DEFAULT

aws kms generate-data-key \ --key-id alias/ExampleAlias \ --key-spec AES_256

Output:

{ "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U=" }

La Plaintext (chiave dati in chiaro) e la CiphertextBlob (chiave dati crittografata) vengono restituite in formato con codifica base64.

Per ulteriori informazioni, consulta Data keys < https://docs.aws.amazon.com/kms/ latest/developerguide/concepts .html #data -keys nella Key Management Service Developer Guide.AWS

Esempio 2: generare una chiave dati simmetrica a 512 bit

L'generate-data-keyesempio seguente richiede una chiave dati simmetrica a 512 bit per la crittografia e la decrittografia. Il comando restituisce una chiave di dati in testo semplice per l'uso e l'eliminazione immediati e una copia di tale chiave dati crittografata con la chiave specificata. KMS Puoi archiviare la chiave di dati crittografata in modo sicuro con i dati crittografati.

Per richiedere una lunghezza di chiave diversa da 128 o 256 bit, utilizzate il parametro. number-of-bytes Per richiedere una chiave dati a 512 bit, l'esempio seguente utilizza il number-of-bytes parametro con un valore di 64 (byte).

La KMS chiave specificata deve essere una chiave di crittografia simmetrica, ovvero una KMS chiave con un valore specifico della KMS chiave pari a _. SYMMETRIC DEFAULT

NOTE: I valori nell'output di questo esempio vengono troncati per essere visualizzati.

aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --number-of-bytes 64

Output:

{ "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...", "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

Plaintext(chiave dati in chiaro) e CiphertextBlob (chiave dati crittografata) vengono restituite in formato con codifica base64.

Per ulteriori informazioni, consulta Data keys < https://docs.aws.amazon.com/kms/ latest/developerguide/concepts .html #data -keys nella Key Management Service Developer Guide.AWS

Python
SDKper Python (Boto3)
Nota

C'è di più su. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice AWS.

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)
  • Per API i dettagli, vedere GenerateDataKeyPython (Boto3) Reference.AWS SDK API

Rust
SDKper Rust
Nota

c'è altro da fare GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice AWS.

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(()) }