Genera una clave de datos en texto plano y su contraparte cifrada mediante una clave de KMS.
Notas de uso
Descripción general
GenerateDataKey utiliza un generador de números aleatorios para crear una clave de datos, la cifra con la versión inicial de una clave de Key Management Service (KMS) y devuelve tanto la clave de datos en texto plano como la cifrada. Use la clave de datos en texto plano para cifrar información fuera de KMS. Después del cifrado, almacene la clave de datos cifrada (CiphertextBlob), el vector inicial (Iv), el algoritmo de cifrado (Algorithm) y los datos autenticados adicionales (Aad); estos cuatro valores son obligatorios para descifrar la información posteriormente.
Para obtener más información sobre las especificaciones de claves y los modos de cifrado, consulte Key types and specifications.
Solo se admite el modo Galois/Counter Mode (GCM) al cifrar una clave de datos.
KMS emplea un generador de números aleatorios de alta calidad para producir la clave de datos. Este generador funciona de manera independiente del material de la clave de KMS que se usa para cifrar dicha clave.
Diferencias entre GenerateDataKey y AdvanceGenerateDataKey
Tanto GenerateDataKey como AdvanceGenerateDataKey generan una clave de datos. A continuación se describen las principales diferencias:
|
GenerateDataKey |
AdvanceGenerateDataKey |
|
|
Versión de clave utilizada |
Versión inicial |
Versión principal |
|
Tipo de clave compatible |
Cualquier clave compatible |
Solo claves simétricas en instancias de KMS con gestión de claves por software |
|
Valores que deben almacenarse tras el cifrado |
CiphertextBlob, Iv, Algorithm, Aad |
CiphertextBlob, Aad |
|
Operaciones de descifrado |
Únicamente AdvanceDecrypt |
Si usa una clave simétrica en una instancia de KMS con gestión de claves por software que tenga habilitada la rotación automática, invoque AdvanceGenerateDataKey en lugar de GenerateDataKey. El uso de GenerateDataKey bajo esta configuración provoca que la función de rotación de claves deje de funcionar. Para obtener más información, consulte Configure key rotation.
Parámetros de solicitud
|
Parámetro |
Tipo |
Obligatorio |
Ejemplo |
Descripción |
|
KeyId |
string |
Sí |
key-hzz62f1cb66fa42qo**** |
El identificador único global de la clave de KMS. También puede especificar un alias vinculado a la clave. |
|
NumberOfBytes |
int |
Sí |
32 |
La longitud de la clave de datos por generar. |
|
Aad |
binary |
No |
Datos binarios |
Los datos autenticados adicionales (Aad) que se utilizan para autenticar la clave de datos durante el cifrado. El modo GCM es el único modo de cifrado compatible. Si especifica este parámetro, pase el mismo valor al invocar la operación Decrypt. |
Parámetros de respuesta
|
Parámetro |
Tipo |
Ejemplo |
Descripción |
|
KeyId |
string |
key-hzz62f1cb66fa42qo**** |
El identificador único global de la clave de KMS. Si la solicitud especificó un alias, este campo devuelve el identificador de la clave a la que está vinculado dicho alias. |
|
Iv |
bytes |
Datos binarios |
El vector inicial utilizado al cifrar la clave de datos. Al invocar la operación Decrypt para descifrar la clave de datos, debe especificar un valor válido para Iv. |
|
Plaintext |
bytes |
Texto plano binario |
La clave de datos en texto plano. |
|
CiphertextBlob |
bytes |
Texto cifrado binario |
La clave de datos cifrada. |
|
Algorithm |
string |
AES_GCM |
El algoritmo de cifrado. |
|
RequestId |
string |
475f1620-b9d3-4d35-b5c6-3fbdd941423d |
El identificador de la solicitud. |
Códigos de error
Para consultar la lista de códigos de error, consulte Códigos de error del servicio.