使用 Amazon CloudTrail 记录 Amazon KMS API 调用 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon CloudTrail 记录 Amazon KMS API 调用

Amazon KMS与记录用户Amazon CloudTrail、角色和其他服务的所有呼叫Amazon KMS的Amazon服务集成。 CloudTrail 将对的所有 API 调用捕获Amazon KMS为事件,包括来自Amazon KMS控制台、Amazon KMS API、Amazon CloudFormation模板、Amazon Command Line Interface (Amazon CLI) 和的调用Amazon Tools for PowerShell。

CloudTrail 记录所有Amazon KMS操作,包括只读操作(例如ListAliases和)GetKeyRotationStatus、管理 KMS 密钥的操作(例如CreateKeyPutKeyPolicy)以及加密操作(例如GenerateDataKey密)。它还会记录Amazon KMS需要您的内部操作,例如DeleteExpiredKeyMaterialDeleteKeySynchronizeMultiRegionKey、和RotateKey

CloudTrail 记录成功的操作和失败的尝试调用,例如当呼叫者被拒绝访问资源时。在 KMS 密钥上的跨账户操作将记录在调用方的账户和 KMS 密钥所有者账户中。但是,因访问被拒绝而受到拒绝的跨账户 Amazon KMS 请求仅记录在发起人的账户中。

出于安全考虑,Amazon KMS日志条目中省略了某些字段,例如 E n crypt 请求的Plaintext参数以及对GetKeyPolicy任何加密操作的响应。为了便于搜索特定 KMS 密钥的 CloudTrail 日志条目,即使 API 操作未返回密钥 ARN,也要将受影响的 KMS 密钥的Amazon KMS密钥 ARN Amazon KMS 添加到某些密钥管理操作的日志条目的responseElements字段中。

尽管默认情况下,所有Amazon KMS操作都记录为 CloudTrail 事件,但您可以从 CloudTrail 跟踪中排除Amazon KMS操作。有关更多信息,请参阅 从跟踪中排除 Amazon KMS 事件

了解更多:

在中记录事件 CloudTrail

CloudTrail 在您创建账户Amazon Web Services 账户时已在您的账户上启用。当活动发生在中时Amazon KMS,该活动会与其他Amazon服务 CloudTrail 事件一起记录在事件历史记录中。您可以在 Amazon Web Services 账户 中查看、搜索和下载最新事件。有关更多信息,请参阅使用事件历史记录查看 CloudTrail 事件

对于 Amazon Web Services 账户中的事件的持续记录(包括 Amazon KMS 的事件),请创建跟踪记录。跟踪允许 CloudTrail 将日志文件传输到 Amazon S3 存储桶。默认情况下,在使用控制台创建跟踪时,此跟踪应用于所有 Amazon Web Services 区域。此跟踪记录在 Amazon 分区中记录所有区域中的事件,并将日志文件传送至您指定的 Amazon S3 桶。此外,您可以配置其他Amazon Web Services,以进一步分析和处理 CloudTrail 日志中收集的事件数据。有关更多信息,请参阅:

要了解更多信息 CloudTrail,请参阅Amazon CloudTrail用户指南。要了解监控 KMS 密钥使用情况的其他方式,请参阅 监控 Amazon KMS keys

每个事件或日记账条目都包含有关生成请求的人员信息。身份信息有助于您确定以下内容:

  • 如果请求是使用根凭证或 IAM 用户凭证发出的。

  • 请求是使用角色还是联合身份用户的临时安全凭证发出的。

  • 如果请求是由其他 Amazon Web Service发出的。

有关更多信息,请参阅 CloudTrail userIdentity 元素

在中搜索事件 CloudTrail

要搜索 CloudTrail 日志条目,请使用CloudTrail 控制台CloudTrail LookupEvents操作。 CloudTrail 支持用于筛选搜索的多种属性值,包括事件名称、用户名和事件源。

为了帮助您在中搜索Amazon KMS日志条目 CloudTrail,请Amazon KMS填充以下 CloudTrail 日志条目字段。

注意

从 2022 年 12 月开始,在更改特定 KMS 密钥的所有管理操作中,Amazon KMS 会填充资源类型资源名称属性。在以下操作的旧 CloudTrail 条目中,这些属性值可能为空:CreateAliasCreateGrantDeleteAliasDeleteImportedKeyMaterialImportKeyMaterialReplicateKeyRetireGrantRevokeGrantUpdateAlias、和UpdatePrimaryRegion

属性 日志条目
事件源(EventSource kms.amazonaws.com 全部操作。
资源类型(ResourceType AWS::KMS::Key 更改特定 KMS 密钥的管理操作,例如 CreateKeyEnableKey,而非 ListKeys
资源名称(ResourceName 密钥 ARN(或密钥 ID 和密钥 ARN) 更改特定 KMS 密钥的管理操作,例如 CreateKeyEnableKey,而非 ListKeys

为了帮助您查找对特定 KMS 密钥进行管理操作的日志条目,即使 Amazon KMS API 操作没有返回密钥 ARN,Amazon KMS 也会将受影响的 KMS 密钥的密钥 ARN 记录在日志条目的 responseElements.keyId 元素中。

例如,成功调用该DisableKey操作不会在响应中返回任何值,但DisableKey 日志条目中的值不是空值,而是包含已禁用的 KMS 密钥的密钥 ARN。responseElements.keyId

此功能于 2022 年 12 月添加,会影响以下 CloudTrail 日志条目:CreateAliasCreateGrantDeleteAliasDeleteKeyDisableKey、、EnableKeyEnableKeyRotationImportKeyMaterialRotateKey、、SynchronizeMultiRegionKeyTagResourceUntagResourceUpdateAlias、、和UpdatePrimaryRegion

从跟踪中排除 Amazon KMS 事件

为了记录其Amazon KMS资源的使用和管理情况,大多数Amazon KMS用户都依赖 CloudTrail 跟踪中的事件。跟踪可以成为审核关键事件的宝贵数据来源,例如,创建、禁用和删除 Amazon KMS keys,更改密钥策略以及 Amazon 服务代表您使用 KMS 密钥。在某些情况下, CloudTrail 日志条目中的元数据(例如加密操作中的加密上下文)可以帮助您避免或解决错误。

但是,由于 Amazon KMS 可以生成大量事件,因此 Amazon CloudTrail 允许您从跟踪中排除 Amazon KMS 事件。此按跟踪设置会排除所有 Amazon KMS 事件。您不能排除特定 Amazon KMS 事件。

警告

从 CloudTrail 日志中排除Amazon KMS事件可能会掩盖使用您的 KMS 密钥的操作。请谨慎赋予委托人执行此操作所需的 cloudtrail:PutEventSelectors 权限。

要从跟踪中排除 Amazon KMS 事件,请执行以下操作:

您可以随时更改控制台设置或跟踪的事件选择器,以禁用此排除。随后,跟踪将开始记录 Amazon KMS 事件。但是,它无法恢复在排除生效期间发生的 Amazon KMS 事件。

当您使用控制台或 API 排除Amazon KMS事件时,生成的 CloudTrail PutEventSelectors API 操作也会记录在您的 CloudTrail 日志中。如果Amazon KMS事件未出现在您的 CloudTrail 日志中,请查找ExcludeManagementEventSources属性设置为PutEventSelectors的事件kms.amazonaws.com