跳至内容

如何查找我的 AWS KMS 密钥的过去使用情况?

1 分钟阅读
0

我想查找我的 AWS Key Management Service (AWS KMS) 密钥的过去使用情况。

解决方法

您无法直接识别非活动的 KMS 密钥。但是,您可以使用 AWS CloudTrail 和 Amazon Athena 来跟踪密钥使用情况。

使用 CloudTrail 事件历史记录

您可以使用 CloudTrail 控制台查看 AWS 区域中最近 90 天的管理事件。90 天后,事件历史记录中将不再显示这些事件。

完成以下步骤:

  1. 打开 CloudTrail 控制台
  2. 选择您的区域。
  3. 在导航窗格中,选择 Event history(事件历史记录)。
  4. Event history(事件历史记录)页面上,对于 Lookup attributes(查找属性),选择 Event source(事件源)。然后,在搜索字段中输入 kms.amazonaws.com 以查看 AWS KMS API 调用。
  5. Filter by date and time(按日期和时间筛选)字段中,选择一个时间范围以查看最近的活动。

您可以查看每个事件的 Event record(事件记录),以确定密钥 ARN、用户身份和调用服务。

**注意:**如果您有多个 AWS KMS 事件,则此选项可能需要很长时间。

使用 Athena 查询 CloudTrail 日志

完成以下步骤:

  1. 从 CloudTrail 日志创建 Athena 表
  2. 要检索 AWS KMS API 调用并按密钥 ARN 进行筛选,请运行以下 Athena 查询:
    SELECT
        eventName,
        COUNT(eventName) AS NumberOfChanges,
        eventSource,
        resources
    FROM
        "default"."your-table-name"
    WHERE
        eventSource = 'kms.amazonaws.com' AND
      ARRAY_JOIN(TRANSFORM(resources, x -> x.arn), '') LIKE '%kms-key-id%'
        OR CAST(requestParameters AS VARCHAR) LIKE '%kms-key-id%'
    GROUP BY
        eventName,
        eventSource,
        resources
    ORDER BY
        NumberOfChanges DESC

**注意:**在前面的代码示例中,请将这些值替换为您的 Athena 表名称和 KMS 密钥 ID 值。

要按特定时间段进行筛选,请在 WHERE 子句中添加一个条件:

AND eventtime >= 'YYYY-MM-DDT00:00:00Z' AND eventtime <= 'YYYY-MM-DDT00:00:00Z'

**注意:**对于 Athena,您需要为运行的查询进行付费。

相关信息

使用 AWS CloudTrail 记录 AWS KMS API 调用

LookupEvents

监控 AWS KMS 密钥

确定 KMS 密钥的过去使用情况

AWS 官方已更新 1 年前