View a markdown version of this page

Déterminer l'utilisation passée d'une clé KMS - 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.

Déterminer l'utilisation passée d'une clé KMS

À des fins de surveillance et d'audit, vous souhaiterez peut-être savoir comment une clé KMS a été utilisée dans le passé. Par exemple, vous souhaiterez peut-être déterminer si une clé KMS est toujours activement utilisée avant de la désactiver ou de planifier sa suppression, ou identifier les clés non utilisées dans votre compte. Les stratégies suivantes peuvent vous aider à déterminer l'utilisation passée d'une clé KMS.

Avertissement

Ces stratégies visant à déterminer l'utilisation passée ne sont efficaces que pour les AWS directeurs et les AWS KMS opérations. Ils ne peuvent pas détecter l'utilisation de la clé qui n'implique pas d'appels d'API à AWS KMS. Une fois qu'une clé de données est générée à partir d'une clé KMS symétrique, son utilisation ultérieure pour le chiffrement local ou le déchiffrement en dehors de celle-ci n' AWS KMS est pas reflétée dans les dernières informations d'utilisation. De même, ces stratégies ne peuvent pas détecter l'utilisation de la clé publique d'une clé KMS asymétrique en dehors de AWS KMS. Pour plus de détails sur les risques particuliers liés à la suppression de clés KMS asymétriques utilisées pour le chiffrement de la clé publique, en particulier la création de textes chiffrés qui ne peuvent pas être déchiffrés, veuillez consulter Deleting asymmetric KMS keys.

Examinez les autorisations clés KMS pour déterminer l'étendue de l'utilisation potentielle

Déterminer qui ou quoi a actuellement accès à une clé KMS peut vous aider à déterminer dans quelle mesure la clé KMS est utilisée et si elle est toujours nécessaire. Pour déterminer qui ou quoi a actuellement accès à une clé KMS, consultezDéterminer l'accès à AWS KMS keys.

Examiner la dernière opération cryptographique effectuée avec une clé KMS

AWS KMS fournit des informations d'utilisation sur la dernière opération cryptographique réussie effectuée avec chaque clé KMS ainsi que l'ID d' CloudTrail événement associé. Cela peut faciliter le processus d'identification des clés KMS non utilisées. Vous pouvez également utiliser la clé de TrailingDaysWithoutKeyUsage condition kms : dans les politiques clés pour empêcher que les clés récemment utilisées ne soient désactivées accidentellement ou que leur suppression soit planifiée.

Vous pouvez consulter la dernière opération cryptographique réussie réalisée avec une clé KMS à l'aide de l' AWS KMS API AWS Management Console AWS CLI, ou.

Note

Certains AWS services créent des ressources qui dépendent d'une clé KMS pour la protection des données, mais n'invoquent pas fréquemment d'opérations cryptographiques sur cette clé. Par exemple, le service Amazon EC2 appelle AWS KMS pour déchiffrer la clé de données d'un volume Amazon EBS chiffré uniquement lorsque le volume est attaché à une instance. Dans ces cas, vous ne devez pas vous fier uniquement aux dernières informations d'utilisation pour déterminer si une clé KMS peut être supprimée. Si la clé KMS protégeant un volume Amazon EBS est supprimée, le volume Amazon EBS déjà attaché ne sera pas perturbé, mais les tentatives ultérieures d'attachement de ce volume Amazon EBS chiffré à une autre instance Amazon EC2 échoueront.

Comprendre la période de suivi de l'utilisation

AWS KMS suit uniquement la dernière opération cryptographique réussie effectuée avec chaque clé KMS. Il peut y avoir un délai allant jusqu'à une heure entre le moment où une opération cryptographique a lieu et le moment où l'utilisation est enregistrée.

Lorsque vous vérifiez les dernières informations d'utilisation d'une clé KMS, la réponse inclut une date de début de suivi. TrackingStartDateIl s'agit de la date à partir de laquelle l'activité cryptographique AWS KMS a commencé à être enregistrée pour cette clé. Utilisez cette date ainsi que la date de création de la clé pour déterminer son historique d'utilisation en comparant la date de création de la clé avec la date de début du suivi :

  • Si les dernières informations d'utilisation sont présentes, la clé a été utilisée pour une opération cryptographique depuis le début du suivi. La réponse inclut le type d'opération, l'horodatage et l'ID d' AWS CloudTrail événement associé.

  • Si les informations relatives à la dernière utilisation sont vides, aucune opération cryptographique n'a été enregistrée sur la clé depuis le début du suivi. Comparez la date de création de la clé avec la TrackingStartDate pour déterminer ce que cela signifie :

    • Si la clé a été créée le ou aprèsTrackingStartDate, elle n'a pas été utilisée pour une opération cryptographique depuis sa création.

    • Si la clé a été créée avant leTrackingStartDate, il n'existe aucune trace de l'utilisation de la clé depuis le début du suivi. Cependant, la clé a peut-être été utilisée avant le début du suivi. Pour déterminer si la clé a déjà été utilisée, examinez vos anciens AWS CloudTrail journaux.

Avertissement

Ne vous fiez pas uniquement aux informations relatives à la dernière utilisation lorsque vous supprimez des clés inutilisées. Au lieu de cela, désactivez d'abord la clé et surveillez AWS CloudTrail les DisabledException entrées indiquant des tentatives d'utilisation de la clé alors qu'elle est désactivée. Cela permet d'identifier les dépendances potentielles et les défaillances de charge de travail.

Opérations cryptographiques suivies

Seules les opérations cryptographiques réussies suivantes sont suivies et enregistrées pour rapporter les dernières informations d'utilisation. Les opérations non cryptographiques sont exclues.

  • Decrypt

  • DeriveSharedSecret

  • Encrypt

  • GenerateDataKey

  • GenerateDataKeyPair

  • GenerateDataKeyPairWithoutPlaintext

  • GenerateDataKeyWithoutPlaintext

  • GenerateMac

  • ReEncrypt

  • Sign

  • Verify

  • VerifyMac

Autres considérations

Tenez compte des points suivants lorsque vous utilisez les informations d'utilisation :

  • Clés KMS multirégionales : pour les clés KMS multirégionales, les clés principales et répliques suivent indépendamment les dernières informations d'utilisation. Chaque clé d'un jeu de clés multirégional conserve ses propres informations de dernière utilisation.

  • ReEncrypt opérations — L'ReEncryptopération utilise deux clés : une clé source pour le déchiffrement et une clé de destination pour le chiffrement. Les informations relatives à la dernière utilisation sont enregistrées pour les deux clés indépendamment, chacune avec l'identifiant d' CloudTrail événement du compte du propriétaire de la clé concerné.

Vous pouvez consulter les dernières informations d'utilisation en utilisant les méthodes suivantes :

Vous pouvez consulter la dernière opération cryptographique réussie réalisée avec une clé KMS sur la page de détails de chaque clé KMS. Pour les procédures relatives à l'affichage de la page de détails d'une clé KMS, reportez-vous àAccédez aux informations clés du KMS et listez-les.

L'GetKeyLastUsageopération renvoie des informations d'utilisation relatives à la dernière opération cryptographique effectuée avec la clé KMS spécifiée. Pour identifier la clé KMS, utilisez l'ID de clé ou l'ARN de la clé.

Par exemple, l'appel suivant GetKeyLastUsage permet de récupérer les informations d'utilisation relatives à une clé KMS avec l'ID 1234abcd-12ab-34cd-56ef-1234567890ab de clé.

$ aws kms get-key-last-usage --key-id "1234abcd-12ab-34cd-56ef-1234567890ab" { "KeyCreationDate": 1773253425.56, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "TrackingStartDate": 1773253425.56, "KeyLastUsage": { "Timestamp": 1773253497.0, "Operation": "Encrypt", "KmsRequestId": "040cce3e-9ef3-4651-b8cf-e47c9bafdc9b", "CloudTrailEventId": "2cfd5892-ea8c-4342-ad49-4b9594b06a8b" } }

En revanche, l'appel suivant à ne GetKeyLastUsage révèle aucune information d'utilisation pour une clé KMS avec l'ID de clé0987dcba-09fe-87dc-65ba-ab0987654321.

$ aws kms get-key-last-usage --key-id "0987dcba-09fe-87dc-65ba-ab0987654321" { "KeyCreationDate": 1672531200.0, "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "TrackingStartDate": 1773253425.56, "KeyLastUsage": {} }

Examiner AWS CloudTrail les journaux pour vérifier l'utilisation passée

Vous pouvez utiliser l'historique d'utilisation d'une clé KMS pour déterminer si des textes chiffrés sont chiffrés sous une clé KMS particulière.

Toutes les activités de l' AWS KMS API sont enregistrées dans des fichiers AWS CloudTrail journaux. Si vous avez créé un suivi CloudTrail dans la région où se trouve votre clé KMS, vous pouvez examiner vos fichiers CloudTrail journaux pour consulter l'historique de toutes les activités d' AWS KMS API relatives à une clé KMS en particulier. Si vous n'avez pas de parcours, vous pouvez toujours consulter les événements récents dans l'historique de vos CloudTrail événements. Pour plus de détails sur la façon dont AWS KMS les utilisations sont CloudTrail utilisées, voirJournalisation des appels d' AWS KMS API avec AWS CloudTrail.

Les exemples suivants montrent les entrées de CloudTrail journal générées lorsqu'une clé KMS est utilisée pour protéger un objet stocké dans Amazon Simple Storage Service (Amazon S3). Dans cet exemple, l'objet est chargé vers Simple Storage Service (Amazon S3) au moyen de la Protection des données à l'aide du chiffrement côté serveur avec des clés KMS (SSE-KMS). Lorsque vous chargez un objet sur Amazon S3 avec SSE-KMS, vous spécifiez la clé KMS à utiliser pour protéger l'objet. Amazon S3 utilise l' AWS KMS GenerateDataKeyopération pour demander une clé de données unique pour l'objet, et cet événement de demande est enregistré CloudTrail avec une entrée similaire à la suivante :

{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AROACKCEVSQ6C2EXAMPLE:example-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admins/example-user", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-09-10T23:12:48Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admins", "accountId": "111122223333", "userName": "Admins" } }, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-09-10T23:58:18Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": {"aws:s3:arn": "arn:aws:s3:::example_bucket/example_object"}, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "cea04450-5817-11e5-85aa-97ce46071236", "eventID": "80721262-21a5-49b9-8b63-28740e7ce9c9", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }

Lorsque vous téléchargerez ultérieurement cet objet depuis Amazon S3, Amazon S3 envoie une Decrypt demande AWS KMS pour déchiffrer la clé de données de l'objet à l'aide de la clé KMS spécifiée. Dans ce cas, vos fichiers CloudTrail journaux incluent une entrée similaire à la suivante :

{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AROACKCEVSQ6C2EXAMPLE:example-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admins/example-user", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-09-10T23:12:48Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admins", "accountId": "111122223333", "userName": "Admins" } }, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-09-10T23:58:39Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": {"aws:s3:arn": "arn:aws:s3:::example_bucket/example_object"}}, "responseElements": null, "requestID": "db750745-5817-11e5-93a6-5b87e27d91a0", "eventID": "ae551b19-8a09-4cfc-a249-205ddba330e3", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }

En évaluant ces entrées de journal, vous pouvez éventuellement déterminer l'utilisation passée d'une clé KMS particulière et cela peut vous aider à déterminer si vous souhaitez la supprimer ou non.

Pour voir d'autres exemples illustrant la façon dont l'activité des AWS KMS API apparaît dans vos fichiers CloudTrail journaux, rendez-vous surJournalisation des appels d' AWS KMS API avec AWS CloudTrail. Pour plus d'informations à ce sujet, CloudTrail consultez le guide de AWS CloudTrail l'utilisateur.