使用记录 AWS KMS API 调用 AWS CloudTrail - AWS Key Management Service

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

使用记录 AWS KMS API 调用 AWS CloudTrail

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

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

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

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

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

了解更多:

在中记录事件 CloudTrail

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

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

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

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

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

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

  • 如果请求是由其他人提出的 AWS 服务。

有关更多信息,请参阅CloudTrail 用户身份元素

在中搜索事件 CloudTrail

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

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

注意

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

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

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

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

此功能于 2022 年 12 月添加,会影响以下 CloudTrail 日志条目:CreateAliasCreateGrant、、DeleteAliasDeleteKeyDisableKeyEnableKey、、EnableKeyRotationImportKeyMaterialRotateKeySynchronizeMultiRegionKey、、TagResourceUntagResourceUpdateAlias、、和UpdatePrimaryRegion

从跟踪中排除 AWS KMS 事件

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

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

警告

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

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

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

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