Crear de una clave de KMS. - AWS Key Management Service

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.

Crear de una clave de KMS.

Puede crear AWS KMS keys en la AWS Management Console, o mediante la operación CreateKey o el recurso AWS CloudFormation AWS::KMS::Key. Durante este proceso, establece la política de claves para la clave KMS, que puede cambiar en cualquier momento. También puede seleccionar los siguientes valores que definen el tipo de clave KMS que va a crear. No puede cambiar estas propiedades después de que se cree la clave de KMS.

Tipo de clave KMS

El tipo de clave es una propiedad que determina el tipo de clave criptográfica que se crea. AWS KMS ofrece tres tipos de claves para proteger los datos:

  • Claves simétricas del estándar de cifrado avanzado (AES)

    Claves de 256 bits que se utilizan en el modo de contador Galois (GCM) del AES para proporcionar el cifrado o descifrado autenticado de datos de un tamaño inferior a 4 KB. Este es el tipo de clave más común y se utiliza para proteger otras claves de cifrado de datos utilizadas en sus aplicaciones y por Servicios de AWS para cifrar los datos en su nombre.

  • Claves asimétricas de RSA, curva elíptica o SM2 (solo en regiones de China)

    Estas claves están disponibles en varios tamaños y admiten muchos algoritmos. Se pueden usar para cifrar y descifrar, firmar y verificar u obtener operaciones de secretos compartidos según el algoritmo elegido.

  • Claves simétricas para realizar operaciones de códigos de autenticación de mensajes basados en hash (HMAC)

    Estas claves son claves de 256 bits que se utilizan para las operaciones de firma y verificación.

    Las claves KMS no se pueden exportar desde el servicio en texto sin formato. Las generan los módulos de seguridad de hardware (HSM) que utiliza el servicio y solo se pueden utilizar en estos módulos. Esta es la propiedad de seguridad fundamental de AWS KMS para garantizar que las claves no se vean comprometidas.

Uso de clave

El uso de la clave es una propiedad que determina las operaciones criptográficas que esta admite. Las claves KMS pueden tener los siguientes usos de clave: ENCRYPT_DECRYPT, SIGN_VERIFY, GENERATE_VERIFY_MAC o KEY_AGREEMENT. Cada clave de KMS solo puede tener un uso. El uso de una clave KMS para más de un tipo de operaciones hace que el producto de ambas operaciones sea más vulnerable a ataques.

Especificación de clave

La especificación de clave es una propiedad que representa la configuración criptográfica de la clave. El significado de la especificación de clave difiere con el tipo de clave.

Para las claves KMS, la especificación de clave determina si la clave KMS es simétrica o asimétrica. También determina el tipo de su material de clave y los algoritmos que admite.

La especificación de clave predeterminada, SYMMETRIC_DEFAULT, representa una clave de cifrado simétrico de 256 bits. Para obtener una descripción detallada de todas las especificaciones de clave compatibles, consulte Referencia de especificaciones de clave.

Origen del material de claves

El origen del material de claves es una propiedad de la clave KMS que identifica el origen del material de claves en la clave KMS. Usted elija el origen del material de claves cuando crea la clave KMS y no se puede cambiar. La fuente del material de clave afecta a las características de seguridad, durabilidad, disponibilidad, latencia y rendimiento de la clave de KMS.

Cada clave KMS incluye una referencia al material de clave en los metadatos. El origen del material de claves de cifrado simétrico, las claves KMS pueden variar. Puede utilizar el material de claves que genera AWS KMS, el material de claves que se genera en un almacén de claves personalizado, o bien importar su propio material de claves.

De forma predeterminada, cada clave KMS tiene un material de claves único. Sin embargo, puede crear un conjunto de claves de varias regiones con el mismo material de claves.

Las claves KMS pueden tener uno de los siguientes valores de origen del material de claves: AWS_KMS, EXTERNAL (material de claves importado), AWS_CLOUDHSM (clave KMS en un almacén de claves de AWS CloudHSM) o EXTERNAL_KEY_STORE (clave KMS en un almacén de claves externo).

Permisos para crear claves KMS

Para crear una clave KMS en la consola o mediante las API, debe tener el permiso siguiente en una política de IAM. Siempre que sea posible, use claves de condición para limitar los permisos. Por ejemplo, puede utilizar la clave de condición kms:KeySpec en una política de IAM para permitir a las principales entidades crear solo claves de cifrado simétricas.

Para obtener un ejemplo de una política de IAM para las principales entidades que crean claves, consulte Permitir a un usuario crear claves KMS.

nota

Tenga cuidado al dar permiso a las entidades principales para administrar etiquetas y alias. El cambio de etiqueta o alias puede permitir o denegar permiso a la clave administrada por el cliente. Para obtener más información, consulte ABAC para AWS KMS.

El permiso kms:PutKeyPolicy no es necesario para crear la clave KMS. El permiso kms:CreateKey incluye permiso para establecer la política de clave inicial. Pero debe agregar este permiso a la política de clave mientras crea la clave KMS para asegurarse de que puede controlar el acceso a la clave KMS. La alternativa es usar el parámetro BypassLockoutSafetyCheck, que no se recomienda.

Las claves KMS pertenecen a la cuenta de AWS en la que se crearon. El usuario de IAM que crea una clave KMS no se considera el propietario de la clave y no tiene permiso automáticamente para usar o administrar la clave KMS que creó. Al igual que cualquier otra entidad principal, el creador de la clave necesita obtener permiso a través de una política de claves, una política de IAM o una concesión. Sin embargo, las entidades principales que tienen el permiso de kms:CreateKey pueden establecer la política de clave inicial y darse permiso a ellas mismas para usar o administrar la clave.

Elección del tipo de clave KMS que se va a crear

El tipo de clave KMS que crea varía en gran medida en función de cómo tiene previsto utilizar la clave KMS, los requisitos de seguridad y los requisitos de autorización. El tipo de clave y el uso de la clave de una clave KMS determinan qué operaciones criptográficas puede realizar dicha clave. Cada clave KMS tiene solo un uso de claves. El uso de una clave KMS para más de un tipo de operaciones hace que el producto de todas las operaciones sea más vulnerable a ataques.

Para permitir a las entidades principales crear claves KMS solo para un uso de claves en particular, utilice la clave de condición kms:KeyUsage. También puede utilizar la clave de condición kms:KeyUsage para permitir que las entidades principales llamen a las operaciones de la API para una clave KMS basada en su uso de claves. Por ejemplo, puede permitir un permiso que deshabilite una clave KMS solo si su uso de clave es SIGN_VERIFY.

Utilice las siguientes directrices para determinar qué tipo de clave KMS necesita en función de su caso de uso.

Cifrar y descifrar datos

Utilice una clave KMS simétrica para la mayoría de los casos de uso que requieren cifrar y descifrar datos. El algoritmo de cifrado simétrico que utiliza AWS KMS es rápido, eficaz y asegura la confidencialidad y la autenticidad de los datos. Admite el cifrado autenticado con datos autenticados adicionales (AAD), definidos como un contexto de cifrado. Este tipo de clave KMS requiere que tanto el remitente como el destinatario de los datos cifrados tengan las credenciales válidas de AWS para llamar a AWS KMS.

Si su caso de uso requiere que los usuarios que no pueden llamar a AWS KMS realicen el cifrado fuera de AWS, las claves KMS asimétricas son una buena opción. Puede distribuir la parte pública de la clave KMS asimétrica para permitir que estos usuarios cifren los datos. Las aplicaciones que necesitan descifrar estos datos pueden utilizar la parte privada de la clave KMS asimétrica en AWS KMS.

Firmar mensajes y verificar firmas

Para firmar mensajes y verificar firmas, tiene que utilizar una clave KMS asimétrica. Puede utilizar una clave KMS con una especificación de clave que representa un par de claves de RSA, un par de claves de curva elíptica (ECC) o un par de claves SM2 (solo en las regiones de China). La especificación de clave que seleccione la determina el algoritmo de firma que desea utilizar. Se recomiendan los algoritmos de firma ECDSA que admiten los pares de claves ECC en lugar de los algoritmos de firma RSA. Sin embargo, es posible que necesite utilizar una especificación clave y un algoritmo de firma específicos para ayudar a los usuarios a verificar las firmas fuera de AWS.

Cifrado con pares de claves asimétricas

Para cifrar datos con un par de claves asimétricas, tiene que utilizar una clave KMS asimétrica con una especificación de clave de RSA, o una especificación de clave de SM2 (solo en las regiones de China). Para cifrar los datos de AWS KMS con la clave pública de un par de claves KMS, utilice la operación Encrypt (Cifrar). También puede descargar la clave pública y compartirla con las partes que necesitan cifrar los datos fuera de AWS KMS.

Cuando descarga la clave pública de una clave KMS asimétrica, puede utilizarla fuera de AWS KMS. No obstante, ya no está sujeto a los controles de seguridad que protegen la clave KMS en AWS KMS. Por ejemplo, no puede utilizar las concesiones o las políticas de claves AWS KMS para controlar el uso de la clave pública. Tampoco puede controlar si la clave se utiliza únicamente para el cifrado y descifrado mediante los algoritmos de cifrado que admite AWS KMS. Para obtener más información, consulte Consideraciones especiales para la descarga de claves públicas.

Para descifrar los datos que se han cifrado con la clave pública fuera de AWS KMS, llame a la operación Decrypt (Descifrar). La operación Decrypt falla si los datos se cifran con una clave pública de una clave KMS con un uso de la clave de SIGN_VERIFY. También fallará si se cifran mediante un algoritmo que AWS KMS no admite para las especificaciones de clave que se seleccionaron. Para obtener más información sobre las especificaciones de claves y los algoritmos compatibles, consulte Referencia de especificaciones de clave.

Para evitar estos errores, cualquier persona que utilice una clave pública fuera de AWS KMS debe almacenar la configuración de la clave. La consola de AWS KMS y la respuesta GetPublicKey proporcionan la información que debe incluir cuando comparta la clave pública.

Obtención de secretos compartidos

Para obtener secretos compartidos, utilice una clave KMS con una curva elíptica recomendada por el NIST o material de claves de SM2 (solo para regiones de China). AWS KMS utiliza el cofactor criptográfico de curva elíptica primitivo Diffie-Hellman (ECDH) para establecer un acuerdo de claves entre dos homólogos mediante la obtención de un secreto compartido a partir de sus pares de claves pública-privada de curva elíptica. Puede utilizar el secreto compartido sin procesar que devuelve la operación DeriveSharedSecret para obtener una clave simétrica que pueda cifrar y descifrar los datos que se envían entre dos partes, o generar y verificar los HMAC. AWS KMS recomienda seguir las recomendaciones del NIST para la derivación de claves cuando se utilice el secreto compartido sin procesar para obtener una clave simétrica.

Generación y verificación de códigos HMAC

Para generar y verificar códigos de autenticación de mensajes basados en hash, utilice una clave KMS HMAC. Al crear una clave HMAC en AWS KMS, AWS KMS crea y protege el material clave y se asegura de que se utilicen los algoritmos MAC correctos para su clave. Los códigos HMAC también se pueden utilizar como números pseudoaleatorios y, en ciertos escenarios, para la firma simétrica y la tokenización.

Las claves KMS HMAC son claves simétricas. Al crear una clave KMS HMAC en la consola de AWS KMS, elija el tipo de clave Symmetric.

Uso con servicios de AWS

Para crear una clave KMS para utilizarla con un servicio de AWS que está integrado con AWS KMS, consulte la documentación correspondiente al servicio. Los servicios de AWS que cifran sus datos requieren una clave KMS de cifrado simétrica..

Además de estas consideraciones, las operaciones criptográficas en las claves KMS con diferentes especificaciones de clave tienen diferentes precios y diferentes cuotas de solicitud. Para obtener más información acerca de los precios de AWS KMS, consulte Precios de AWS Key Management Service. Para obtener más información acerca de las cuotas de solicitud, consulte Cuotas de solicitudes.