Rotation des AWS KMS keys - AWS Key Management Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Rotation des AWS KMS keys

Pour créer de nouveaux éléments de chiffrement pour vos clés gérées par le client, 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 du matériel clé pour vos clés KMS sur Amazon CloudWatch etAWS 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 de détails, 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.

Note

Vous pouvez utiliser le AWS Cost Explorer Service pour consulter les détails de vos frais de stockage de clés. Par exemple, vous pouvez filtrer votre affichage pour voir le montant total des frais pour les clés facturées en tant que clés KMS actuelles ou ayant fait l'objet d'une rotation en spécifiant $REGION-KMS-Keys pour le type d'utilisation et en regroupant les données par opération d’API.

Vous pouvez toujours voir des instances de l'ancienne opération d’API Unknown pour les dates historiques.

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.

Pourquoi faire pivoter les clés KMS ?

Les meilleures pratiques cryptographiques découragent la réutilisation intensive des clés qui chiffrent directement les données, telles que les clés de données générées par AWS KMS. Lorsque des clés de données à 256 bits chiffrent des millions de messages, elles peuvent s'épuiser et commencer à produire du texte chiffré avec des motifs subtils que des acteurs intelligents peuvent exploiter pour découvrir les bits contenus dans la clé. Pour éviter cet épuisement des clés, il est préférable d'utiliser les clés de données une seule fois, ou seulement quelques fois, afin de faire pivoter efficacement le contenu clé.

Cependant, les clés KMS sont le plus souvent utilisées comme clés d'encapsulage, également appelées clés de chiffrement. Au lieu de chiffrer les données, les clés d'encapsulage chiffrent les clés de données qui chiffrent vos données. Elles sont donc beaucoup moins souvent utilisées que les clés de données et ne sont presque jamais suffisamment réutilisées pour risquer d'épuiser les clés.

Malgré ce très faible risque d'épuisement, vous devrez peut-être alterner vos clés KMS en raison de règles commerciales ou contractuelles ou de réglementations gouvernementales. Lorsque vous êtes obligé de faire pivoter les clés KMS, nous vous recommandons d'utiliser la rotation automatique des clés là où elle est prise en charge, et la rotation manuelle des clés lorsque la rotation automatique des clés n'est pas prise en charge.

Comment fonctionne la rotation automatique des clés

La rotation des clés dans AWS KMS est une pratique 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é.

Date de rotation

AWS KMS effectue une rotation de l’élément de clé un an (environ 365 jours) après l'activation de la rotation, puis chaque année (environ 365 jours) par la suite.

Clés gérées par le client

La rotation automatique des clés étant facultative sur les clés gérées par le client et pouvant être activée ou désactivée à tout moment, la date de rotation dépend de la date à laquelle la rotation a été activée pour la dernière fois. Cette date peut changer de nombreuses fois tout au long de la durée de vie de la clé.

Par exemple, si vous créez une clé gérée par le client le 1er janvier 2022 et que vous activez la rotation automatique des clés le 15 mars 2022, AWS KMS fait pivoter l’élément de clé le 15 mars 2023, le 15 mars 2024, puis tous les 365 jours par la suite.

Voici des cas particuliers :

  • Désactiver la rotation des clés : si vous désactivez la rotation automatique des clés à tout moment, la clé KMS continue d'utiliser la version de l’élément de clé qu'elle utilisait lorsque la rotation a été désactivée. Si vous activez à nouveau la rotation automatique des clés, AWS KMS soumet l’élément de clé à une rotation un an après la date d’activation de nouvelle rotation et chaque année (environ 365 jours) par la suite.

  • 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é.

  • Suppression en attente des clés KMS – 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 (environ 365 jours après la dernière rotation) 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 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.

L’élément de clé d'un Clé gérée par AWS est d'abord alterné un an après sa date de création, puis chaque année (environ 365 jours après la dernière rotation) par la suite.

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 de détails, veuillez consulter Rotation de clés multi-région.

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

Lorsqu'il fait AWS KMS automatiquement pivoter le contenu clé d'une clé Clé gérée par AWSou d'une clé gérée par le client, il écrit un KMS CMK Rotation événement sur Amazon EventBridge et un RotateKey autre dans votre AWS CloudTrail journal. 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 à AWS Management Console et ouvrez la console AWS Key Management Service (AWS KMS) à l'adresse https://console.aws.amazon.com/kms.

  2. Pour changer le paramètre 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'EnableKeyRotationopération active la rotation automatique des touches pour la clé KMS spécifiée. L'DisableKeyRotationopération le 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 active la rotation des clés sur la clé KMS de chiffrement symétrique spécifiée et utilise l'GetKeyRotationStatusopération 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, les clés KMS 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.

Lorsque vous faites tourner les clés KMS manuellement, vous devez également 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, au lieu de modifier le code de votre application, modifiez la clé KMS cible de l'alias. Pour plus de détails, consultez Utilisation d'alias dans vos applications.

Note

Les alias qui pointent vers la dernière version d'une clé KMS pivotée manuellement constituent une bonne solution pour les DescribeKeyopérations Encrypt,, GenerateDataKeyGenerateDataKeyPairGenerateMac, et Sign. Les alias ne sont pas autorisés dans les opérations qui gèrent les clés KMS, telles que DisableKeyou ScheduleKeyDeletion.

Lorsque vous appelez l'opération Decrypt sur les clés KMS de chiffrement symétriques à rotation manuelle, omettez le paramètre KeyId de la commande. AWS KMS utilise automatiquement la clé KMS qui a chiffré le texte chiffré.

Le KeyId paramètre est obligatoire lors d'un appel Decrypt ou d'une vérification avec une clé KMS asymétrique, ou lors d'un appel VerifyMacavec une clé KMS HMAC. Ces demandes échouent lorsque la valeur deKeyIdest un alias qui ne pointe plus vers la clé KMS qui a effectué l'opération cryptographique, par exemple lorsqu'une clé fait l'objet d'une rotation manuelle. Pour éviter cette erreur, vous devez spécifier et suivre la clé bonne KMS pour chaque opération.

Pour modifier la clé KMS cible d'un alias, utilisez UpdateAliasl'opération dans l'AWS KMSAPI. Par exemple, cette commande met à jour l'alias alias/TestKey pour pointer vers une nouvelle clé KMS. Comme l'opération ne renvoie aucune sortie, l'exemple utilise l'ListAliasesopération pour montrer que l'alias est désormais associé à une autre clé KMS et que le LastUpdatedDate champ est mis à jour. Les ListAliases commandes utilisent le queryparamètre du AWS CLI pour obtenir uniquement l'alias/TestKeyalias.

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