本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
确定KMS密钥的过去使用情况
在删除KMS密钥之前,您可能想知道在该密钥下加密了多少密文。 AWS KMS 不存储此信息,也不存储任何密文。了解过去如何使用KMS密钥可能有助于你决定将来是否需要它。本主题建议了几种策略,可以帮助您确定KMS密钥的过去使用情况。
警告
这些确定过去和实际使用情况的策略仅对 AWS 用户和 AWS KMS 操作有效。他们无法检测到外部使用非对称密钥的 AWS KMS公KMS钥。有关删除用于公钥加密的非对称KMS密钥(包括创建无法解密的密文)的特殊风险的详细信息,请参阅。Deleting asymmetric KMS keys
检查KMS密钥权限以确定潜在使用范围
确定谁或什么人当前有权访问KMS密钥可能有助于您确定KMS密钥的使用范围以及是否仍然需要该密钥。要了解如何确定谁或什么当前有权访问KMS密钥,请访问确定对 AWS KMS keys 的访问权限。
检查 AWS CloudTrail 日志以确定实际使用情况
您可以使用KMS密钥使用历史记录来帮助您确定是否在特定KMS密钥下加密了密文。
所有 AWS KMS API活动都记录在 AWS CloudTrail 日志文件中。如果您在KMS密钥所在的区域创建了 CloudTrail 跟踪,则可以检查 CloudTrail 日志文件以查看特定KMS密钥的所有 AWS KMS API活动的历史记录。如果您没有跟踪,您仍然可以在活动历史记录中查看最近的事件。CloudTrail 有关如何 AWS KMS 使用的详细信息 CloudTrail,请参阅使用记录 AWS KMS API通话 AWS CloudTrail。
以下示例显示了使用KMS密钥保护存储在亚马逊简单存储服务 (Amazon S3) 中的对象时生成的 CloudTrail 日志条目。在此示例中,使用使用KMS密钥 (SSE-KMS) 的服务器端加密保护数据,将对象上传到 Amazon S3。使用 SSE-将对象上传到 Amazon S3 时KMS,您可以指定用于保护该对象的KMS密钥。亚马逊 S3 使用 AWS KMS GenerateDataKey操作来请求对象的唯一数据密钥,此请求事件使用类似于以下内容 CloudTrail 的条目登录:
{ "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" }
稍后您从 Amazon S3 下载此对象时,Amazon S3 会向发送Decrypt
请求,要求使用指定的KMS密钥解密该对象的数据密钥。 AWS KMS 执行此操作时,您的 CloudTrail 日志文件将包含类似于以下内容的条目:
{ "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" }
所有 AWS KMS API活动都由记录 CloudTrail。通过评估这些日志条目,您可以确定特定KMS密钥的过去使用情况,这可能有助于您确定是否要将其删除。
要查看更多有关 AWS KMS API活动如何在 CloudTrail 日志文件中显示的示例,请转至使用记录 AWS KMS API通话 AWS CloudTrail。有关更多信息, CloudTrail 请访问AWS CloudTrail 用户指南。