Utilizzare GenerateDataKeyWithoutPlaintext con un SDK AWS o una CLI - Esempi di codice per SDK AWS

Sono disponibili altri esempi per SDK AWS nel repository GitHub della documentazione degli esempi per SDK AWS.

Utilizzare GenerateDataKeyWithoutPlaintext con un SDK AWS o una CLI

Gli esempi di codice seguenti mostrano come utilizzare GenerateDataKeyWithoutPlaintext.

CLI
AWS CLI

Come generare una chiave di dati simmetrica a 256 bit senza una chiave di testo non crittografato

L’esempio generate-data-key-without-plaintext seguente richiede una copia crittografata di una chiave dati simmetrica a 256 bit da utilizzare all’esterno di AWS. Puoi eseguire una chiamata ad AWS KMS per decrittografare la chiave di dati quando sei pronto per usarla.

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

La chiave KMS specificata deve essere una chiave KMS di crittografia simmetrica, ovvero una chiave KMS con un valore di KeySpec pari a SYMMETRIC_DEFAULT.

aws kms generate-data-key-without-plaintext \ --key-id "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --key-spec AES_256

Output:

{ "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" }

CiphertextBlob (chiave di dati crittografati) viene restituito codificato in formato Base64.

Per ulteriori informazioni, consulta Chiavi di dati nella Guida per gli sviluppatori del Servizio AWS di gestione delle chiavi.

Rust
SDK per Rust
Nota

Ulteriori informazioni su 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_without_plaintext() .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(()) }