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à.
Utilizzo GenerateDataKey con un AWS SDK o una CLI
Gli esempi di codice seguenti mostrano come utilizzare GenerateDataKey.
- CLI
-
- AWS CLI
-
Esempio 1: come 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 dati in testo normale per l’utilizzo e l’eliminazione immediati e una copia di tale chiave dati crittografata sotto la chiave KMS specificata. Puoi archiviare la chiave di dati crittografata in modo sicuro con i dati crittografati.Per richiedere una chiave dati a 256 bit, utilizza il parametro
key-speccon il valoreAES_256. Per richiedere una chiave dati a 128 bit, utilizza il parametrokey-speccon il valoreAES_128. Per tutte le altre lunghezze di chiavi dati, utilizza il parametronumber-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 \ --key-idalias/ExampleAlias\ --key-specAES_256Output:
{ "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=" }I valori
Plaintext(chiave dati in testo normale)CiphertextBlobe (chiave dati crittografata) vengono restituiti crittografati in formato Base64.Per ulteriori informazioni, consulta Chiavi di dati nella Guida per gli sviluppatori del Servizio AWS di gestione delle chiavi. Esempio 2: come generare una chiave dati simmetrica a 512 bit
L’esempio
generate-data-keyseguente richiede una chiave dati simmetrica a 512 bit per la crittografia e la decrittografia. Il comando restituisce una chiave dati in testo normale per l’utilizzo e l’eliminazione immediati e una copia di tale chiave dati crittografata sotto la chiave KMS specificata. 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, utilizza il parametro
number-of-bytes. Per richiedere una chiave dati a 512 bit, l’esempio seguente utilizza il parametronumber-of-bytescon il valore 64 (byte).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.
NOTA: i valori nell’output di questo esempio vengono troncati ai fini della visualizzazione.
aws kms generate-data-key \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --number-of-bytes64Output:
{ "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" }I valori
Plaintext(chiave di dati in testo normale) eCiphertextBlob(chiave di dati crittografati) vengono restituiti crittografati in formato Base64.Per ulteriori informazioni, consulta Chiavi di dati nella Guida per gli sviluppatori del Servizio AWS di gestione delle chiavi.
-
Per i dettagli sull'API, consulta GenerateDataKey
Command Reference.AWS CLI
-
- Python
-
- SDK per Python (Boto3)
-
Nota
C'è altro 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 i dettagli sull'API, consulta GenerateDataKey AWSSDK for Python (Boto3) API Reference.
-
- Rust
-
- SDK per 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(()) }-
Per i dettagli sulle API, consulta la GenerateDataKey
guida di riferimento all'API AWS SDK for Rust.
-
Per un elenco completo delle guide per sviluppatori AWS SDK e degli esempi di codice, consulta. Utilizzo di questo servizio con un AWS SDK Questo argomento include anche informazioni su come iniziare e dettagli sulle versioni precedenti dell'SDK.