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à.
Generazione delle chiavi di dati
Gli utenti autorizzati possono utilizzare l' GenerateDataKey API (e relative APIs) per richiedere un tipo specifico di chiave dati o una chiave casuale di lunghezza arbitraria. In questo argomento viene fornita una vista semplificata di questa operazione API. Per i dettagli, consulta l' GenerateDataKey APIs AWS Key Management Service API Reference.
Di seguito è riportata la sintassi di una richiesta GenerateDataKey
.
{ “EncryptionContext”: {“string” : “string”}, “GrantTokens”: [“string”], “KeyId”: “string”, “NumberOfBytes”: “number” }
La richiesta accetta i seguenti dati in formato JSON.
- KeyId
-
Identificatore della chiave utilizzato per crittografare la chiave dati. Questo valore deve identificare una chiave KMS di crittografia simmetrica.
Questo parametro è obbligatorio.
- NumberOfBytes
-
Un numero intero che contiene il numero di byte da generare. Questo parametro è obbligatorio.
Il chiamante deve fornire
KeySpec
oNumberOfBytes
, ma non entrambi. - EncryptionContext
-
(Facoltativo) Coppia nome-valore che contiene dati aggiuntivi per l'autenticazione durante i processi di crittografia e decrittografia che utilizzano la chiave.
- GrantTokens
-
(Facoltativo) Un elenco dei token di concessione che rappresentano le concessioni che forniscono autorizzazioni per generare o utilizzare una chiave. Per ulteriori informazioni sulle concessioni e i token di concessione, consultare Autenticazione e controllo degli accessi per AWS KMS nella Guida per gli sviluppatori di AWS Key Management Service .
Dopo aver autenticato il comando AWS KMS, acquisisce l'EKT attualmente attivo associato alla chiave KMS. Passa l'EKT insieme alla richiesta fornita e a qualsiasi contesto di crittografia a un HSM tramite una sessione protetta tra l' AWS KMS host e un HSM nel dominio.
L'HSM completa le seguenti operazioni:
-
Genera il materiale segreto richiesto e lo conserva nella memoria volatile.
-
Decritta l'EKT corrispondente all'ID chiave della chiave KMS definito nella richiesta per ottenere HBK = Decrypt(DKi, EKT).
-
Genera un nonce casuale N.
-
Genera una chiave di crittografia derivata AES-GCM a 256 bit K da HBK e N.
-
Crittografa il materiale segreto ciphertext = Encrypt(K, context, secret).
GenerateDataKey
restituisce il materiale segreto in chiaro e il testo cifrato tramite il canale sicuro tra l'host e l'HSM. AWS KMS AWS KMS quindi te lo invia tramite la sessione TLS. AWS KMS non conserva il testo in chiaro o il testo cifrato. Senza il testo cifrato, il contesto di crittografia e l'autorizzazione a utilizzare la chiave KMS, il segreto non può essere restituito.
Di seguito è riportata la sintassi della risposta.
{ "CiphertextBlob": "blob", "KeyId": "string", "Plaintext": "blob" }
La gestione delle chiavi di dati è lasciata allo sviluppatore dell'applicazione. Per una crittografia lato client basata sulle migliori pratiche con chiavi di AWS KMS dati (ma non coppie di chiavi di dati), puoi utilizzare. AWS Encryption SDK
Le chiavi dati possono essere ruotate a qualsiasi frequenza. Inoltre, la chiave dati può essere crittografata nuovamente su una chiave KMS diversa o in una chiave KMS ruotata utilizzando l'operazione API ReEncrypt
. Per i dettagli, consulta l'AWS Key Management Service API ReEncryptReference.