Rotation des AWS KMS keys - AWS Key Management Service

Rotation des AWS KMS keys

Les bonnes pratiques de chiffrement décourage la réutilisation étendue des clés de chiffrement. Pour créer de nouveaux éléments de chiffrement pour vos clés KMS, vous pouvez créer de nouvelles clés KMS, puis modifier vos applications ou alias pour utiliser les nouvelles clés KMS. Sinon, vous pouvez activer la rotation automatique des clés pour une clé KMS existante.

Lorsque vous activez la rotation automatique des clés pour une clé KMS, AWS KMS génère pour cette dernière de nouveaux éléments de chiffrement chaque année. AWS KMS enregistre à perpétuité toutes les versions précédentes des éléments de chiffrement afin que vous puissiez déchiffrer toutes les données chiffrées avec cette clé KMS. AWS KMS ne supprime pas les éléments de clé ayant fait l'objet d'une rotation tant que vous n'avez pas supprimé la clé KMS. Vous pouvez suivre la rotation des éléments de clé pour vos clés KMS dans Amazon CloudWatch et AWS CloudTrail.

Lorsque vous utilisez une clé KMS qui a fait l'objet d'une rotation pour chiffrer des données, AWS KMS utilise les éléments de clé actuels. Lorsque vous utilisez la clé KMS qui a fait l'objet d'une rotation pour déchiffrer le texte chiffré, AWS KMS utilise la version des éléments de clé qui a été utilisée pour les chiffrer. Vous ne pouvez pas demander de version spécifique des éléments de clé. Étant donné que AWS KMS déchiffre de manière transparente avec les éléments de clé appropriés, vous pouvez utiliser en toute sécurité une clé KMS tournée dans les applications et Services AWS sans changement de code.

Toutefois, la rotation automatique des clés n'a aucun effet sur les données protégées par la clé KMS. La rotation n'est pas appliquée aux clés de données générées par la clé KMS, les données protégées par la clé KMS ne sont pas rechiffrées et l'effet d'une clé de données compromise n'est pas atténué.

AWS KMS prend en charge la rotation automatique des clés uniquement pour les clés KMS de chiffrement symétriques avec les éléments de clé créés par AWS KMS. La rotation automatique est facultative pour les clés KMS gérées par le client. AWS KMS effectue toujours une rotation des éléments de clé pour les clés KMS gérées par AWS tous les ans. La rotation des clés KMS appartenant à AWS varie.

Note

Intervalle de rotation pour Clés gérées par AWS modifié en mai 2022. Pour plus d'informations, consultez Clés gérées par AWS.

La rotation des clés change uniquement les éléments de clé, qui correspondent au secret de chiffrement utilisé dans les opérations de chiffrement. La clé KMS est la même ressource logique, indépendamment du fait que ses éléments de clé changent ou du nombre de fois où ils changent. Les propriétés de la clé KMS ne changent pas, comme illustré dans l'image suivante.

La rotation automatique des clés offre les avantages suivants :

  • Les propriétés de la clé KMS, y compris son ID de clé, son ARN de clé, sa région, ses politiques et ses autorisations, ne changent pas lorsque la clé est l'objet d'une rotation.

  • Vous n'avez pas besoin de modifier les applications ou les alias qui font référence à l'ID ou à l'ARN de la clé KMS.

  • La rotation des éléments de clé n'affecte pas l'utilisation de la clé KMS dans Service AWS.

  • Après avoir activé la rotation des clés, AWS KMS soumet la clé KMS à une rotation automatique chaque année. Vous n'avez pas besoin de vous souvenir de la mise à jour ou de la planifier.

Vous pouvez décider de créer une nouvelle clé KMS et de l'utiliser à la place de la clé KMS d'origine. L'effet est le même que celui obtenu par la rotation des éléments de clé dans une clé KMS existante. Ainsi, on parle souvent à ce sujet de rotation manuelle de la clé. La rotation manuelle est un bon choix lorsque vous souhaitez contrôler la planification de la rotation des clés. Elle permet également de soumettre à une rotation les clés KMS qui ne sont pas éligibles à la rotation automatique des clés, y compris les clés KMS asymétriques, les clés KMS HMAC, les clés KMS dans les magasins de clés personnalisés et les clés KMS avec des éléments de clé importés.

Rotation des clés et tarification

AWS KMS facture des frais mensuels pour chaque version des éléments de clé maintenus pour votre clé KMS. Pour plus d'informations, consultez Tarification AWS Key Management Service.

Rotation des clés et quotas

Chaque clé KMS compte comme une clé lors du calcul des quotas de ressources de clés, quel que soit le nombre de versions d'éléments de clé qui ont fait l'objet d'une rotation.

Pour plus d'informations sur les éléments de clé et la rotation, veuillez consulter le livre blanc Détails cryptographiques de AWS Key Management Service.

Comment fonctionne la rotation automatique des clés

La rotation des clés dans AWS KMS est une bonne pratique de chiffrement conçue pour être transparente et facile à utiliser. AWS KMS prend en charge la rotation automatique des clés facultative uniquement pour les clés gérées par le client.

Gestion des éléments de clé

AWS KMS conserve tous les éléments d'une clé KMS, même si la rotation des clés est désactivée. AWS KMS ne supprime les éléments de clé que lorsque vous supprimez la clé KMS.

Utilisation des éléments de clé

Lorsque vous utilisez une clé KMS qui a fait l'objet d'une rotation pour chiffrer des données, AWS KMS utilise les éléments de clé actuels. Lorsque vous utilisez la clé KMS qui a fait l'objet d'une rotation pour déchiffrer le texte chiffré, AWS KMS utilise la même version des éléments de clé qui a été utilisée pour les chiffrer. Vous ne pouvez pas demander de version spécifique des éléments de clé.

Différences entre les gestionnaires de clés

Les options de rotation automatique des clés varient selon le gestionnaire de clés.

Clés gérées par le client

La rotation automatique des clés est désactivée par défaut sur les clés gérées par le client, mais les utilisateurs autorisés peuvent l'activer et la désactiver. Lorsque vous activez (ou réactivez) la rotation automatique des clés, AWS KMS soumet la clé KMS à une rotation automatique un an (environ 365 jours) après la date d'activation, puis tous les ans par la suite.

Clés gérées par AWS

AWS KMS soumet automatiquement les Clés gérées par AWS à une rotation chaque année (environ 365 jours). Vous ne pouvez pas activer ou désactiver la rotation des clés pour Clés gérées par AWS.

Note

En mai 2022, AWS KMS a modifié le calendrier de rotation pour les Clés gérées par AWS de tous les trois ans (environ 1 095 jours) à tous les ans (environ 365 jours).

Les nouvelles Clés gérées par AWS sont automatiquement soumises à une rotation un an après leur création, puis environ chaque année par la suite.

Les Clés gérées par AWS existantes sont automatiquement soumises à une rotation un an après leur rotation la plus récente, puis chaque année par la suite.

Clés détenues par AWS

Vous ne pouvez pas activer ou désactiver la rotation des clés pour Clés détenues par AWS. La stratégie de rotation des clés d'une Clé détenue par AWS est déterminée par le service AWS qui crée et gère la clé. Pour plus de détails, reportez-vous à la rubrique Chiffrement au repos dans le Guide de l'utilisateur ou le guide du développeur du service.

Types de clés KMS non pris en charge

La rotation automatique des clés est prise en charge uniquement sur les clés KMS de chiffrement symétriques avec les éléments de clé que AWS KMS génère (Origine = AWS_KMS).

La rotation automatique des clés n'est pas prise en charge sur les types de clés KMS suivants, mais vous pouvez soumettre ces clés KMS à la rotation manuellement.

Clés multi-région

Vous pouvez activer et désactiver la rotation automatique des clés pour les clés multi-région. Vous définissez la propriété uniquement sur la clé principale. Quand AWS KMS synchronise les clés, il copie le paramètre de propriété de la clé principale vers ses clés de réplica. Lorsque les éléments de clé de la clé principale sont soumis à une rotation, AWS KMS les copie automatiquement sur toutes ses clés de réplica. Pour plus d'informations, consultez Rotation de clés multi-région.

Clés KMS désactivées

Lorsqu'une clé KMS est désactivée, AWS KMS ne la soumet pas à une rotation. Toutefois, l'état de rotation de la clé ne change pas et vous ne pouvez pas le modifier tant que la clé KMS est désactivée. Lorsque la clé KMS est réactivée, si les éléments de clé ont plus d'un an, AWS KMS les soumet immédiatement à une rotation, puis chaque année par la suite. Si les éléments de clé ont moins d'un an, AWS KMS reprend la planification initiale de la rotation de la clé.

Clés KMS en attente de suppression

Tant qu'une clé KMS est en attente de suppression, AWS KMS ne la soumet pas à une rotation. L'état de rotation de la clé est défini sur false et vous ne pouvez pas le modifier tant que la suppression est en attente. Si la suppression est annulée, l'état précédent de rotation de la clé est restauré. Si les éléments de clé ont plus d'un an, AWS KMS les soumet immédiatement à une rotation, puis chaque année par la suite. Si les éléments de clé ont moins d'un an, AWS KMS reprend la planification initiale de la rotation de la clé.

Services AWS

Vous pouvez activer la rotation automatique des clés sur les clés gérées par le client que vous utilisez pour le chiffrement côté serveur dans les services AWS. La rotation annuelle est transparente et compatible avec les services AWS.

Surveillance de la rotation des clés

Quand AWS KMS soumet les éléments de clé d'une Clé gérée par AWS ou d'une clé gérée par le client à une rotation automatique, il écrit un événement KMS CMK Rotation dans Amazon CloudWatch Events et un événement RotateKey dans votre journal AWS CloudTrail. Vous pouvez utiliser ces registres pour vérifier que la clé KMS a fait l'objet d'une rotation.

Cohérence à terme

La rotation automatique des clés est soumise aux mêmes effets de cohérence éventuelle que les autres opérations de gestion AWS KMS. Il peut y avoir un léger retard avant que les nouveaux éléments de clé ne soient disponibles dans AWS KMS. Toutefois, la rotation des éléments de clé n'entraîne aucune interruption ou aucun retard dans les opérations cryptographiques. Les éléments de clé actuels sont utilisés dans les opérations cryptographiques jusqu'à ce que les nouveaux éléments de clé soient disponibles dans AWS KMS. Lorsque les éléments de clé d'une clé multi-région sont automatiquement soumis à une rotation, AWS KMSutilise les éléments de clé actuels jusqu'à ce que les nouveaux éléments soient disponibles dans toutes les régions avec une clé multi-région associée.

Activation et désactivation de la rotation automatique des clés

Les utilisateurs autorisés peuvent utiliser la console AWS KMS et l'API AWS KMS pour activer et désactiver la rotation automatique des clés et afficher l'état de rotation des clés.

Lorsque vous activez la rotation automatique des clés, AWS KMS soumet les éléments de clé de la clé KMS à une rotation un an après la date d'activation, puis chaque année par la suite.

Activation et désactivation de la rotation des clés (console)

  1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Key Management Service (AWS KMS) à l'adresse https://console.aws.amazon.com/kms

  2. Pour changer de Région AWS, utilisez le sélecteur de région dans l'angle supérieur droit de la page.

  3. Dans le volet de navigation, choisissez Clés gérées par le client. (Vous ne pouvez pas activer ou désactiver la rotation des Clés gérées par AWS. Elles sont automatiquement soumises à la rotation tous ans.)

  4. Choisissez l'alias ou l'ID d'une clé KMS.

  5. Choisissez l'onglet Rotation des clés d'accès.

    L'onglet Key rotation (Rotation des clés) apparaît uniquement sur la page détaillée des clés KMS de chiffrement symétriques avec les éléments de clé générés par AWS KMS (l'Origin (Origine) est AWS_KMS), y compris les clés KMS de chiffrement symétriques multi-région.

    Vous ne pouvez pas soumettre automatiquement à la rotation les clés KMS asymétriques, les clés KMS HMAC, les clés KMS avec des éléments de clé importés, ou les clés KMS dans les magasins de clé personnalisés. Cependant, vous pouvez les faire pivoter manuellement.

  6. Activez ou désactivez la case Automatically rotate this KMS key every year (Effectuer une rotation automatique de cette clé KMS chaque année).

    Note

    Si une clé KMS est désactivée ou en attente de suppression, la case Automatically rotate this KMS key every year (Effectuer une rotation automatique de cette clé KMS chaque année) est décochée et vous ne pouvez pas la modifier. L'état de rotation des clés est restauré lorsque vous activez la clé KMS ou annulez la suppression. Pour plus de détails, veuillez consulter Comment fonctionne la rotation automatique des clés et Principaux états des clés AWS KMS.

  7. Choisissez Enregistrer.

Activation et désactivation de la rotation de clés (API AWS KMS)

Vous pouvez utiliser l'API AWS Key Management Service (AWS KMS) pour activer ou désactiver la rotation automatique des clés et afficher l'état de rotation actuel des clés gérées par les clients. Ces exemples utilisent l'AWS Command Line Interface (AWS CLI), mais vous pouvez utiliser tout langage de programmation pris en charge.

L'opération EnableKeyRotation permet la rotation automatique des clés pour la clé KMS spécifiée. L'opération DisableKeyRotation la désactive. Pour identifier la clé KMS dans ces opérations, utilisez son ID de clé ou son ARN de clé. Par défaut, la rotation des clés est désactivée pour les clés gérées par le client.

L'exemple suivant permet d'effectuer une rotation des clés sur la clé KMS de chiffrement symétrique spécifiée et utilise l'opération GetKeyRotationStatus pour voir le résultat. Ensuite, il désactive la rotation des clés et, à nouveau, utilise GetKeyRotationStatus pour afficher la modification.

$ 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 }

Rotation manuelle des clés

Vous pouvez vouloir créer une clé KMS et l'utiliser à la place d'une clé KMS actuelle au lieu d'activer la rotation automatique des clés. Lorsque la nouvelle clé KMS possède des éléments de chiffrement différents de ceux de la clé KMS actuelle, l'utilisation de la nouvelle clé KMS a le même effet que la modification des éléments de clé d'une clé KMS existante. Le processus de remplacement d'une cléKMS par une autre est connu sous le nom de rotation manuelle de clés.

Si vous préférez, vous pouvez effectuer une rotation manuelle des clés afin de pouvoir contrôler la fréquence de rotation. Il s'agit également d'une bonne solution pour les clés KMS qui ne sont pas éligibles à la rotation automatique des clés, comme les clés KMS asymétriques, les clés KMS HMAC des magasins de clés personnalisés ou les clés KMS avec des éléments de clé importés.

Note

Lorsque vous commencez à utiliser la nouvelle clé KMS, assurez-vous de conserver la clé KMS originale activée de telle sorte que AWS KMS puisse déchiffrer les données que la clé KMS originale a chiffrées.

Dans la mesure où la nouvelle clé KMS est une ressource différente de la clé KMS actuelle, elle a un ID de clé et un ARN différents. Lorsque vous modifiez les clés KMS, vous devez mettre à jour les références à l'ID ou l'ARN de la clé KMS dans vos applications. Les alias, qui associent un nom convivial à une clé KMS, facilitent ce processus. Utilisez un alias pour faire référence à une clé KMS dans vos applications. Ensuite, lorsque vous souhaitez modifier la clé KMS que l'application utilise, modifiez la clé KMS cible de l'alias. Pour plus de détails, veuillez consulter Utilisation d'alias dans vos applications.

Pour mettre à jour la clé KMS cible d'un alias, utilisez l'opération UpdateAlias de l'API AWS KMS. Par exemple, cette commande met à jour l'alias TestKey pour pointer vers une nouvelle clé KMS. Étant donné que l'opération ne renvoie aucune sortie, l'exemple utilise l'opération ListAliases pour montrer que l'alias est désormais associé à une autre clé KMS et que le champ LastUpdatedDate a été mis à jour.

$ 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 }, ] }