Genera una clave de datos para el cifrado de sobre mediante Key Management Service (KMS). La operación devuelve tanto la clave de datos en texto sin formato como la clave de datos cifrada. Use la clave de datos en texto sin formato para cifrar datos fuera de KMS y, posteriormente, almacene la clave de datos cifrada junto con los datos de autenticación (Aad) para su descifrado futuro.
Funcionamiento
La operación emplea un generador de números aleatorios de alta calidad para producir una clave de datos, independiente del material de clave de KMS. A continuación, cifra dicha clave de datos mediante la versión principal de la clave de KMS especificada en modo Galois/Counter (GCM).
Si la rotación automática de claves está habilitada, invoque AdvanceGenerateDataKey (no GenerateDataKey) para generar claves de datos. El uso de GenerateDataKey cuando la rotación de claves está habilitada provoca que la función de rotación deje de funcionar. Para obtener más información, consulte Configure key rotation.
Diferencias entre AdvanceGenerateDataKey y GenerateDataKey
Ambas operaciones generan una clave de datos, pero difieren en la versión de clave que se usa para el cifrado y en los datos que debe almacenar después.
|
Aspecto |
AdvanceGenerateDataKey |
GenerateDataKey |
|
Versión de clave usada para el cifrado |
Versión principal de la clave |
Versión inicial de la clave |
|
Datos que se deben almacenar tras el cifrado |
CiphertextBlob, Aad |
CiphertextBlob, Iv, Algorithm, Aad |
|
Operación de descifrado compatible |
Límites
Esta operación solo admite claves simétricas en instancias de KMS del tipo de gestión de claves por software. Para consultar las especificaciones de clave compatibles, consulte Key types and specifications.
Solo se admite el modo GCM para el cifrado de claves de datos.
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 o un alias vinculado a la clave. La clave debe ser simétrica y pertenecer a una instancia de KMS del tipo de gestión de claves por software. |
|
NumberOfBytes |
int |
Sí |
32 |
La longitud de la clave de datos por generar. |
|
Aad |
binary |
No |
Datos binarios |
Los datos de autenticación para el cifrado en modo GCM. Si se especifica este valor, también debe pasar el mismo valor de Aad al invocar AdvanceDecrypt. |
Elementos de respuesta
|
Parámetro |
Tipo |
Ejemplo |
Descripción |
|
CiphertextBlob |
bytes |
Texto cifrado binario |
La clave de datos cifrada. Este campo codifica el identificador de clave (KeyId), el algoritmo de cifrado (Algorithm) y el vector inicial (Iv) usados durante el cifrado. Para descifrar, pase únicamente CiphertextBlob y Aad a AdvanceDecrypt. |
|
Plaintext |
bytes |
Texto sin formato binario |
La clave de datos en texto sin formato. Úsela para cifrar datos fuera de KMS. |
|
KeyId |
string |
key-hzz62f1cb66fa42qo**** |
El identificador único global de la clave de KMS. Si el KeyId de la solicitud era un alias, este campo devuelve el identificador de la clave a la que está vinculado dicho alias. |
|
KeyVersionId |
string |
key-hzz62f1cb66fa42qo**-17kedv** |
El identificador de la versión de clave usada para cifrar la clave de datos. |
|
Algorithm |
string |
AES_GCM |
El algoritmo de cifrado usado para cifrar la clave de datos. |
|
Iv |
bytes |
Datos binarios |
El vector inicial usado para cifrar la clave de datos. |
|
RequestId |
string |
c0065a6d-7784-4ef2-a692-288fdcbc7b9d |
El identificador de la solicitud. |
Códigos de error
|
Código de estado HTTP |
Código de error |
Mensaje de error |
Descripción |
|
404 |
Forbidden.OnlySymmetricKeySupported |
The key %s is not a symmetric key. The API only supports symmetric keys. |
Solo se admiten claves simétricas. |
Para consultar la lista completa de códigos de error, consulte Service error codes.