Rotación de AWS KMS keys - AWS Key Management Service

Rotación de AWS KMS keys

Las prácticas criptográficas recomendadas desaconsejan la reutilización generalizada de claves de cifrado. Para crear nuevo material criptográfico para sus claves KMS, 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 el seguimiento de la rotación de material de clave para sus claves KMS en Amazon CloudWatch y AWS 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 clave 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 clave 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 información, consulte Claves administradas por AWS.

La rotación de claves cambia únicamente el material de clave, 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 clave 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 clave rotatoria 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.

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.

Funcionamiento de la rotación automática de claves

La rotación de claves en AWS KMS es una práctica criptográfica recomendada que 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 de 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.

Diferencias de administración clave

Las opciones de rotación automática de claves varían según el administrador de claves.

Claves administradas por el cliente

La rotación automática de claves está desactivada de forma predeterminada en claves administradas por el cliente pero los usuarios autorizados pueden habilitarlo y desactivarlo. Al habilitar (o volver a habilitar) la rotación automática de claves, AWS KMS rota automáticamente la clave KMS un año (aproximadamente 365 días) después de la fecha de habilitación y, posteriormente, cada un año.

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.

nota

En mayo de 2022, AWS KMS ha cambiado la programación de rotación para Claves administradas por AWS desde 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 información, consulte Rotación de las claves de varias regiones .

Claves KMS deshabilitadas

Mientras una clave KMS está deshabilitada, AWS KMS no la rota. 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 clave 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 KMS pendientes de eliminación

Mientras una clave KMS está pendiente de eliminación, AWS KMS no la rota. 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 clave 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.

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 AWS KMS rota automáticamente el material de claves para una Clave administrada por AWS o clave administrada por el cliente, escribe un evento KMS CMK Rotation en Amazon CloudWatch Events y un evento RotateKey en su registro AWS CloudTrail. 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 clave 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 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 Save.

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 operación EnableKeyRotation activa la rotación automática de claves para la clave KMS especificada. La operación DisableKeyRotation la deshabilita. 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.

En el siguiente ejemplo, se activa la rotación de claves en la clave KMS de cifrado simétrica y especificada, y se utiliza la operación GetKeyRotationStatus 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 clave 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 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.

Como la nueva clave KMS es un recurso diferente de la clave KMS actual, tiene un ID de clave y un ARN diferentes. Cuando cambia las claves KMS, debe actualizar las referencias al ID o al ARN de la clave KMS en sus aplicaciones. Los alias, que asocian un nombre descriptivo a una clave KMS, facilitarán 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, cambie la clave KMS de destino del alias. Para obtener más información, consulte Usar alias en las aplicaciones.

Para actualizar la clave KMS de destino de un alias, utilice la operación UpdateAlias en la API de AWS KMS. Por ejemplo, este comando actualiza el alias TestKey para apuntar hacia una nueva clave KMS. Como la operación no devuelve ningún resultado, en el ejemplo se utiliza la operación ListAliases para comprobar que el alias está asociado ahora a otra clave KMS y el campo LastUpdatedDate se actualiza.

$ aws kms list-aliases { "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 { "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 }, ] }