Rotación de AWS KMS keys - 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.

Rotación de AWS KMS keys

Para crear nuevo material criptográfico para sus claves administradas por el cliente, puede crear nuevas claves KMS y, a continuación, cambiar sus aplicaciones o alias para que utilicen las claves. También puede activar la rotación automática de claves para una clave KMS existente.

Al habilitar la rotación automática de claves para una clave KMS, AWS KMS genera nuevo material criptográfico para la clave KMS cada año. AWS KMS guarda todas las versiones anteriores del material criptográfico a perpetuidad para que pueda utilizar para descifrar cualquier dato cifrado con esa clave KMS. AWS KMS no elimina ningún material de claves rotado hasta que se elimina la clave KMS. Puede realizar un seguimiento de la rotación del material clave de sus claves de KMS en Amazon CloudWatch yAWS CloudTrail.

Cuando se utiliza una clave KMS rotada para el cifrado, AWS KMS utiliza la el material de claves actual. Cuando se utiliza la clave KMS rotada para descifrar el texto cifrado, AWS KMS utiliza la misma versión del material de claves utilizado para cifrarlo. No puede solicitar una versión concreta del material de claves. Dado que AWS KMS se descifra de forma transparente con el material de claves adecuado, puede utilizar de forma segura una clave KMS rotada en aplicaciones y Servicios de AWS sin cambios de código.

Sin embargo, la rotación automática de claves no afecta a los datos que la clave KMS protege. No rota las claves de datos que ha generado la clave KMS ni vuelve a cifrar los datos protegidos por la clave KMS. Además, no mitiga el efecto de una clave de datos comprometida.

AWS KMS es compatible con la rotación automática de claves únicamente en el caso de las claves KMS de cifrado simétricas con material de claves creado por AWS KMS. La rotación automática es opcional para las claves KMS administradas por el cliente. AWS KMS siempre rota el material de claves para claves KMS administradas de AWS cada año. La rotación de las claves KMS propiedad de AWS varía.

nota

El intervalo de rotación de Claves administradas por AWS cambió en mayo de 2022. Para obtener más detalles, consulte Claves administradas por AWS.

La rotación de claves cambia únicamente el material de claves, que es el secreto criptográfico que se usa en las operaciones de cifrado. La clave KMS es el mismo recurso lógico, independientemente de si el material de claves cambie o de cuántas veces lo haga. Las propiedades de la clave KMS no cambian, tal y como se muestra en la siguiente imagen.

La rotación automática de claves tiene las siguientes ventajas:

  • Las propiedades de la clave KMS, incluido su ID de clave, ARN de clave, región, políticas y permisos, no cambian cuando se rota la clave.

  • No necesita cambiar las aplicaciones ni los alias que hacen referencia al ID o ARN de la clave KMS.

  • El material de claves de rotación no afecta al uso de la clave KMS en ningún Servicio de AWS.

  • Después de habilitar la rotación de claves, AWS KMS rota la clave KMS automáticamente cada año. No necesita recordar ni programar la actualización.

Podría optar por crear una nueva clave KMS y utilizarla en lugar de la clave KMS original. Esto tiene el mismo efecto que rotar el material de claves de una clave KMS existente, así que a menudo se considera una rotación manual de la clave. La rotación manual es una buena opción si desea controlar la programación de rotación de claves. También proporciona una manera de rotar las claves KMS que no cumplen los requisitos para la rotación automática de claves, incluidas las claves KMS asimétricas, las claves KMS HMAC, claves KMS en almacenes de claves personalizadas y claves KMS con material de claves importado.

Rotación de claves y precios

AWS KMS factura una cuota mensual por cada versión de material de claves que mantiene para su clave KMS. Consulte los Precios de AWS Key Management Service para obtener más información.

nota

Puedes usar AWS Cost Explorer Service para ver un desglose de los cargos por almacenamiento de claves. Por ejemplo, puede filtrar la vista para ver los cargos totales de las claves facturadas como claves de KMS actuales y rotadas especificando $REGION-KMS-Keys en Tipo de uso y agrupando los datos por Operación de la API.

Es posible que siga viendo instancias de la operación de la API Unknown heredada para fechas antiguas.

Rotación de claves y cuotas

Cada clave KMS cuenta como una clave para el cálculo de las cuotas de recursos clave, independientemente del número de versiones de material de claves rotadas.

Para obtener información detallada sobre el material de claves y la rotación, consulte los Detalles criptográficos de AWS Key Management Service.

¿Por qué rotar las claves de KMS?

Las prácticas recomendadas en materia de criptografía desaconsejan la reutilización extensiva de las claves que cifran los datos directamente, como las claves de datos que AWS KMS genera. Cuando las claves de datos de 256 bits cifran millones de mensajes, estas pueden fatigarse y empezar a producir texto cifrado con patrones sutiles que los actores inteligentes pueden aprovechar para descubrir los bits de la clave. Para evitar que las claves se fatiguen, lo mejor es utilizar las claves de datos una vez o solo unas cuantas veces, lo que permite rotar el material de la clave de forma eficaz.

Sin embargo, las claves de KMS se utilizan con mayor frecuencia como claves de encapsulamiento, también conocidas como claves de cifrado de claves. En lugar de cifrar los datos, las claves de encapsulamiento cifran las claves de datos que cifran los datos. Por lo tanto, se utilizan con mucha menos frecuencia que las claves de datos y casi nunca se reutilizan lo suficiente como para correr el riesgo de que se fatiguen las claves.

A pesar de que el riesgo de fatiga es muy bajo, es posible que tenga que cambiar sus claves de KMS debido a normas comerciales o contractuales o a normativas gubernamentales. Cuando se vea en la obligación de rotar las claves de KMS, le recomendamos que utilice la rotación automática de claves cuando se permita y la rotación manual de claves cuando no se admita la rotación automática de claves.

Funcionamiento de la rotación automática de claves

La rotación de claves en AWS KMS está diseñada para ser transparente y fácil de usar. AWS KMS admite la rotación automática de claves opcional solo para las claves administradas por el cliente.

Administración de material de claves

AWS KMS conserva todo el material de una clave KMS, incluso si la rotación de la clave está desactivada. AWS KMS elimina el material de la clave únicamente cuando se elimina la clave KMS.

Uso de material de claves

Cuando se utiliza una clave KMS rotada para el cifrado, AWS KMS utiliza la el material de claves actual. Cuando se utiliza la clave KMS rotada para descifrar el texto cifrado, AWS KMS utiliza la misma versión del material de claves utilizado para cifrarlo. No puede solicitar una versión concreta del material de claves.

Fecha de rotación

AWS KMS rota el material de claves un año (aproximadamente 365 días) después de habilitar la rotación y, posteriormente, cada año (aproximadamente 365 días).

Claves administradas por el cliente

Como la rotación automática de claves es opcional en las claves administradas por el cliente y se puede habilitar y deshabilitar en cualquier momento, la fecha de rotación depende de la fecha en que se habilitó la rotación por última vez. Esta fecha puede cambiar muchas veces durante la vida de la clave.

Por ejemplo, si crea una clave administrada por el cliente el 1 de enero de 2022 y habilita la rotación automática de claves el 15 de marzo de 2022, AWS KMS rota el material de claves el 15 de marzo de 2023, el 15 de marzo de 2024 y, a partir de entonces, cada 365 días.

Estos son algunos casos especiales:

  • Deshabilitar la rotación de claves: si deshabilita la rotación automática de claves en cualquier momento, la clave de KMS seguirá utilizando la versión del material de claves que utilizaba cuando la rotación estaba deshabilitada. Si habilita la rotación automática de claves de nuevo, AWS KMS rotará automáticamente la clave de KMS un año (aproximadamente 365 días) después de la fecha de habilitación y, posteriormente, cada año.

  • Claves de KMS deshabilitadas: cuando una clave de KMS esté deshabilitada, AWS KMS no la rotará. Sin embargo, el estado de rotación de clave no cambia y no puede cambiarlo mientras la clave KMS esté deshabilitada. Cuando la clave KMS se vuelve a habilitar, si el material de claves tiene una antigüedad superior a un año, AWS KMS la rota de forma inmediata y, posteriormente, cada un año. Si el material clave tiene una antigüedad inferior a un año, AWS KMS reanuda la programación original de rotación de claves.

  • Claves de KMS pendientes de eliminación: cuando una clave de KMS esté pendiente de eliminación, AWS KMS no la rotará. El estado de rotación de clave se establece en false y no puede cambiarla mientras su eliminación está pendiente. Si se cancela la eliminación, se restaura el estado de rotación de clave anterior. Si el material de claves tiene una antigüedad superior a un año, AWS KMS rotará la clave de forma inmediata y, posteriormente, cada año (aproximadamente 365 días después de la última rotación). Si el material clave tiene una antigüedad inferior a un año, AWS KMS reanuda la programación original de rotación de claves.

Claves administradas por AWS

AWS KMS rota automáticamente Claves administradas por AWS cada año (aproximadamente 365 días). No puede habilitar ni desactivar la rotación de claves de Claves administradas por AWS.

El material de claves de una Clave administrada de AWS se rota por primera vez un año después de su fecha de creación y, posteriormente, cada año (aproximadamente 365 días después de la última rotación).

nota

En mayo de 2022, AWS KMS ha cambiado la programación de rotación para Claves administradas por AWS de cada tres años (aproximadamente 1095 días) hasta cada año (aproximadamente 365 días).

Las nuevas Claves administradas por AWS rotan automáticamente un año después de su creación y, aproximadamente, cada año a partir de entonces.

Las Claves administradas por AWS existentes rotan automáticamente un año después de su rotación más reciente y cada año a partir de entonces.

Claves propiedad de AWS

No puede habilitar ni desactivar la rotación de claves para Claves propiedad de AWS. La estrategia de rotación de claves para una Clave propiedad de AWS se determina según el servicio de AWS que crea y administra la clave. Para obtener más detalles, consulte el tema Cifrado en reposo en la Guía del usuario o en la Guía para desarrolladores del servicio.

Tipos de claves KMS compatibles

La rotación automática de la clave es compatible únicamente con las claves KMS de cifrado simétricas con material de claves que AWS KMS genera (Origen = AWS_KMS).

La rotación automática de claves no es compatible en los siguientes tipos de claves KMS, pero puede rotar estas claves KMS de forma manual.

Claves de varias regiones

Puede habilitar y desactivar la rotación automática de claves paraClaves de varias regiones. La propiedad solo se establece en la clave principal. Cuando AWS KMS sincroniza las claves, copia el valor de la propiedad de la clave principal a sus claves de réplica. Cuando se rota el material de claves de la clave principal, AWS KMS copia automáticamente ese material de claves en todas sus claves de réplica. Para obtener más detalles, consulte Rotación de las claves de varias regiones .

Servicios de AWS

Puede habilitar la rotación automática de claves en las claves administradas por el cliente que utilice para el cifrado en el lado del servidor en los servicios de AWS. La rotación anual es transparente y compatible con los servicios de AWS.

Supervisión de la rotación de claves

Cuando rota AWS KMS automáticamente el material clave de una Clave administrada de AWSclave gestionada por el cliente, escribe un KMS CMK Rotation evento en Amazon EventBridge y otro RotateKey en tu AWS CloudTrail registro. Puede usar estos registros para comprobar que la clave KMS se ha rotado.

Consistencia final

La rotación automática de claves está sujeta a los mismos efectos de consistencia final que otras operaciones de administración de AWS KMS. Es posible que haya un ligero retraso antes de que el nuevo material de claves esté disponible en AWS KMS. Sin embargo, la rotación de material clave no causa ninguna interrupción o retraso en las operaciones criptográficas. El material clave actual se utiliza en operaciones criptográficas hasta que el nuevo material de claves esté disponible en toda la AWS KMS. Cuando el material de claves para una clave de varias regiones rota automáticamente, AWS KMS utiliza el material de claves actual hasta que el nuevo material de claves esté disponible en todas las regiones con una clave de varias regiones relacionada.

Cómo habilitar y desactivar la rotación automática de claves

Los usuarios autorizados pueden usar la consola de AWS KMS o la API de AWS KMS para habilitar y desactivar la rotación automática de claves y ver el estado de rotación de clave.

Al habilitar la rotación automática de claves, AWS KMS rota el material de claves de la clave KMS un año después de la fecha de habilitación y, posteriormente, cada un año.

Habilitar y desactivar la rotación de claves (consola)

  1. Inicie sesión en la AWS Management Console y abra la consola de AWS Key Management Service (AWS KMS) en https://console.aws.amazon.com/kms.

  2. Para cambiar la Región de AWS, utilice el Selector de regiones ubicado en la esquina superior derecha de la página.

  3. En el panel de navegación, elija Claves administradas por el cliente. (No puede habilitar o desactivar la rotación de Claves administradas por AWS. Estas rotan cada año de forma automática).

  4. Elija el alias o el ID de clave de una clave KMS.

  5. Seleccione la pestaña Key Rotation (Rotación de claves).

    La pestaña Key rotation (Rotación de claves) solo aparece en la página de detalles de las claves KMS de cifrado simétricas con el material de claves que AWS KMS genera (el Origen es AWS_KMS), incluidas las claves KMS de cifrado simétricas de varias regiones.

    No puede rotar de forma automática las claves KMS asimétricas, las claves KMS HMAC, las claves KMS con material de claves importado o las claves KMS en los almacenes de claves personalizados. Sin embargo, puede rotarlas manualmente.

  6. Seleccione o desmarque la casilla de verificación Automatically rotate this KMS key every year (Rotar esta clave KMS cada año de forma automática).

    nota

    Si una clave KMS está deshabilitada o pendiente de eliminación, la casilla de verificación Automatically rotate this KMS key every year (Rotar esta clave KMS cada año de forma automática) estará desmarcada y no podrá cambiarla. El estado de rotación de claves se restaura al volver a habilitar la clave KMS o al cancelar la eliminación. Para más detalles, consulte Funcionamiento de la rotación automática de claves y Estados de clave de de las claves AWS KMS.

  7. Seleccione Guardar.

Habilitar y desactivar la rotación de claves (API de AWS KMS)

Puede utilizar la API de AWS Key Management Service (AWS KMS) para habilitar y desactivar la rotación automática de claves y ver el estado actual de rotación de cualquier clave administrada por el cliente. En estos ejemplos, se utiliza la AWS Command Line Interface (AWS CLI), pero puede usar cualquier lenguaje de programación admitido.

La EnableKeyRotationoperación permite la rotación automática de claves para la clave KMS especificada. La DisableKeyRotationoperación la desactiva. Para identificar la clave KMS en estas operaciones, utilice el ID de la clave o el ARN de la clave. De forma predeterminada, la rotación de claves está desactivada para las claves KMS administradas por el cliente.

El siguiente ejemplo permite la rotación de claves en la clave KMS de cifrado simétrico especificada y utiliza la GetKeyRotationStatusoperación para ver el resultado. A continuación, se desactiva la rotación de claves y, de nuevo, se utiliza GetKeyRotationStatus para ver el cambio.

$ aws kms enable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab $ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyRotationEnabled": true } $ aws kms disable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab $ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyRotationEnabled": false }

Rotar manualmente las claves

Es posible que le interese crear una nueva clave KMS y utilizarla en sustitución de una clave KMS actual en lugar de activar la rotación automática de claves. Cuando la nueva clave KMS tiene diferente material criptográfico que la clave KMS actual, el uso de la nueva clave KMS tiene el mismo efecto que cambiar el material de claves de una clave KMS existente. El proceso de sustitución de una clave KMS por otra se denomina rotación manual de claves.

Tal vez prefiera rotar las claves manualmente para poder controlar la frecuencia de rotación. También es una buena solución para las claves KMS que no cumplen los requisitos para la rotación automática de claves, como las claves KMS asimétricas, las claves KMS HMAC y las claves KMS en almacenes de claves personalizados y las claves KMS con material de claves importado.

nota

Cuando empiece a utilizar la nueva clave KMS, asegúrese de mantener la clave KMS original habilitada para que AWS KMS pueda descifrar los datos que cifró la clave KMS original.

Cuando rota las claves KMS de forma manual, también debe actualizar las referencias al ID de la clave KMS o al ARN de la clave en sus aplicaciones. Los alias, que asocian un nombre descriptivo a una clave KMS, pueden facilitar este proceso. Utilice un alias para hacer referencia a una clave KMS en sus aplicaciones. Después, cuando desee cambiar la clave KMS que utiliza la aplicación, en lugar editar su código de aplicación, cambie la clave KMS de destino del alias. Para obtener más detalles, consulte Usar alias en las aplicaciones.

nota

Los alias que apuntan a la última versión de una clave KMS girada manualmente son una buena solución para las operaciones de cifrado DescribeKey, GenerateDataKeyGenerateDataKeyPairGenerateMac, y firma. Los alias no están permitidos en las operaciones que administran claves de KMS, como o. DisableKeyScheduleKeyDeletion

Al llamar al la operación Decrypt en claves KMS de cifrado giradas de forma manual, omita el parámetro KeyId del comando. AWS KMS usa automáticamente la clave de KMS que cifró el texto cifrado.

El KeyId parámetro es obligatorio cuando se llama Decrypt o se verifica con una clave KMS asimétrica, o cuando se llama VerifyMaccon una clave HMAC KMS. Estas solicitudes fallan cuando el valor del parámetro KeyId es un alias que ya no apunta a la clave de KMS que realizó la operación criptográfica, por ejemplo, cuando se rota una clave de forma manual. Para evitar este error, debe realizar un seguimiento y especificar la clave de KMS correcta para cada operación.

Para cambiar la clave KMS de destino de un alias, usa la UpdateAliasoperación en la AWS KMS API. Por ejemplo, este comando actualiza el alias alias/TestKey para apuntar hacia una nueva clave KMS. Como la operación no devuelve ningún resultado, en el ejemplo se usa la ListAliasesoperación para mostrar que el alias ahora está asociado a una clave de KMS diferente y que el LastUpdatedDate campo está actualizado. Los ListAliases comandos utilizan el queryparámetro de AWS CLI para obtener únicamente el alias/TestKey alias.

$ aws kms list-aliases --query 'Aliases[?AliasName==`alias/TestKey`]' { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestKey", "AliasName": "alias/TestKey", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1521097200.123, "LastUpdatedDate": 1521097200.123 }, ] } $ aws kms update-alias --alias-name alias/TestKey --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 $ aws kms list-aliases --query 'Aliases[?AliasName==`alias/TestKey`]' { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestKey", "AliasName": "alias/TestKey", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1521097200.123, "LastUpdatedDate": 1604958290.722 }, ] }