Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Generar claves de datos
Los usuarios autorizados pueden usar la GenerateDataKey API (y otras relacionadas APIs) para solicitar un tipo específico de clave de datos o una clave aleatoria de longitud arbitraria. En este tema se proporciona una vista simplificada de esta operación de API. Para obtener más información, consulta GenerateDataKey APIs la referencia de la AWS Key Management Service API.
A continuación se presenta la sintaxis de la solicitud GenerateDataKey
.
{ “EncryptionContext”: {“string” : “string”}, “GrantTokens”: [“string”], “KeyId”: “string”, “NumberOfBytes”: “number” }
La solicitud acepta los siguientes datos en formato JSON.
- KeyId
-
Identificador de clave de la clave utilizada para cifrar la clave de datos. Este valor debe identificar una clave KMS de cifrado simétrica.
Este parámetro es obligatorio.
- NumberOfBytes
-
Un número entero que contiene el número de bytes que se generará. Este parámetro es obligatorio.
La persona que llama debe proporcionar
KeySpec
oNumberOfBytes
, pero no ambos. - EncryptionContext
-
(Opcional) Par de nombre-valor que contiene datos adicionales para autenticarse durante los procesos de cifrado y descifrado que utilizan la clave.
- GrantTokens
-
(Opcional) Una lista de tokens de concesión que representan concesiones que proporcionan permisos para generar o utilizar una clave. Para obtener más información sobre las concesiones y los tokens de concesión, consulte Autenticación y control de acceso de AWS KMS en la Guía para desarrolladores de AWS Key Management Service .
Tras autenticar el comando AWS KMS, adquiere el EKT activo actual asociado a la clave KMS. Transfiere el EKT junto con la solicitud proporcionada y cualquier contexto de cifrado a un HSM a través de una sesión protegida entre el AWS KMS host y un HSM del dominio.
El HSM realiza lo siguiente:
-
Genera el material secreto solicitado y lo mantiene en la memoria volátil.
-
Descifra el EKT que coincide con el ID de clave de la clave de KMS que se define en la solicitud para obtener el HBK = Decrypt(DKi, EKT) activo.
-
Genera un nonce N aleatorio.
-
Genera una clave de cifrado K derivada de AES-GCM de 256 bits desde HBK y N.
-
Cifra el material secreto ciphertext = Encrypt(K, context, secret).
GenerateDataKey
le devuelve el texto simple del material secreto y el texto cifrado a través del canal seguro entre el anfitrión y el HSM. AWS KMS AWS KMS a continuación, se lo envía a través de la sesión TLS. AWS KMS no conserva el texto sin formato ni el texto cifrado. Sin tener el texto cifrado, el contexto de cifrado y la autorización para utilizar la clave de KMS, no se puede devolver el secreto subyacente.
A continuación, se muestra la sintaxis de respuesta.
{ "CiphertextBlob": "blob", "KeyId": "string", "Plaintext": "blob" }
La gestión de claves de datos queda a su cargo como desarrollador de aplicaciones. Para obtener las mejores prácticas de cifrado del lado del cliente con claves de AWS KMS datos (pero no pares de claves de datos), puede utilizar el. AWS Encryption SDK
Las claves de datos se pueden rotar a cualquier frecuencia. Además, la clave de datos se puede volver a cifrar en una clave de KMS diferente o en una clave de KMS rotada mediante la operación de API ReEncrypt
. Para obtener más información, consulte la ReEncryptreferencia de la AWS Key Management Service API.