

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

# 使用记录 AWS KMS API 调用 AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

AWS KMS 与记录用户[AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)、角色和其他服务的所有呼叫 AWS KMS 的 AWS 服务集成。 CloudTrail 将对的所有 API 调用捕获 AWS KMS 为事件，包括来自 AWS KMS 控制台 AWS KMS APIs、 CloudFormation 模板、 AWS Command Line Interface (AWS CLI) 和 AWS Tools for PowerShell。

CloudTrail 记录所有 AWS KMS 操作，包括只读操作（例如[ListAliases](ct-listaliases.md)和）[GetKeyRotationStatus](ct-getkeyrotationstatus.md)、管理 KMS 密钥的操作（例如[CreateKey](ct-createkey.md)和 [PutKeyPolicy](ct-put-key-policy.md)）以及[加密操作](kms-cryptography.md#cryptographic-operations)（例如[GenerateDataKey](ct-generatedatakey.md)和[解](ct-decrypt.md)密）。它还会记录 AWS KMS 需要您的内部操作，例如[DeleteExpiredKeyMaterial](ct-deleteexpiredkeymaterial.md)、[DeleteKey[SynchronizeMultiRegionKey](ct-synchronize-multi-region-key.md)](ct-delete-key.md)、和[RotateKey](ct-rotatekey.md)。

CloudTrail 记录所有成功的操作，在某些情况下，还会记录失败的尝试调用，例如当呼叫者被拒绝访问资源时。[在 KMS 密钥上的跨账户操作](key-policy-modifying-external-accounts.md)将记录在调用方的账户和 KMS 密钥所有者账户中。但是，因访问被拒绝而被拒绝的跨账户 AWS KMS 请求仅记录在来电者的账户中。

出于安全考虑， AWS KMS 日志条目中省略了某些字段，例如 E [n](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) crypt 请求的`Plaintext`参数以及对[GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)任何加密操作的响应。为了便于搜索特定 KMS 密钥的 CloudTrail 日志条目，即使 API 操作未返回密[钥 ARN](concepts.md#key-id-key-ARN)，也要将受影响的 KMS 密钥的 AWS KMS 密钥 ARN AWS KMS 添加到某些密钥管理操作的日志条目的`responseElements`字段中。

尽管默认情况下，所有 AWS KMS 操作都记录为 CloudTrail 事件，但您可以从 CloudTrail 跟踪中排除 AWS KMS 操作。有关更多信息，请参阅 [从跟踪中排除 AWS KMS 事件](#filtering-kms-events)。

**了解更多：**
+ 有关经认证平台的 AWS KMS 操作 CloudTrail 日志示例，请参阅[监控认证请求](ct-attestation.md)。

**Topics**
+ [在中查找 AWS KMS 日志条目 CloudTrail](#searching-kms-ct)
+ [从跟踪中排除 AWS KMS 事件](#filtering-kms-events)
+ [AWS KMS 日志条目示例](understanding-kms-entries.md)

## 在中查找 AWS KMS 日志条目 CloudTrail
<a name="searching-kms-ct"></a>

要搜索 CloudTrail 日志条目，请使用[CloudTrail 控制台](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html)或[CloudTrail LookupEvents](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html)操作。 CloudTrail 支持用于筛选搜索的多种[属性值](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html#filtering-cloudtrail-events)，包括事件名称、用户名和事件源。

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

**注意**  
从 2022 年 12 月开始，在更改特定 KMS 密钥的所有管理操作中 AWS KMS 填充**资源类型****和资源名称**属性。在以下操作的旧 CloudTrail 条目中，这些属性值可能为空：[CreateAlias[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)、[DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html)、[DeleteImportedKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteImportedKeyMaterial.html)、[ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)、[ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)、[RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)、[RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)、[UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html)、和[UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)。


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

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

例如，成功调用该[DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html)操作不会在响应中返回任何值，但[DisableKey 日志条目](ct-disablekey.md)中的值不是空值，而是包含已禁用的 KMS 密钥的密钥 ARN。`responseElements.keyId`

此功能于 2022 年 12 月添加，会影响以下 CloudTrail 日志条目：[CreateAlias](ct-createalias.md)、[CreateGrant](ct-creategrant.md)、、[DeleteAlias](ct-deletealias.md)、[DeleteKey](ct-delete-key.md)、[DisableKey](ct-disablekey.md)、[EnableKey](ct-enablekey.md)、、[EnableKeyRotation](ct-enablekeyrotation.md)、[ImportKeyMaterial](ct-importkeymaterial.md)、[RotateKey](ct-rotatekey.md)、[SynchronizeMultiRegionKey](ct-synchronize-multi-region-key.md)、、[TagResource](ct-tagresource.md)、[UntagResource](ct-untagresource.md)、[UpdateAlias](ct-updatealias.md)、、和[UpdatePrimaryRegion](ct-update-primary-region.md)。

## 从跟踪中排除 AWS KMS 事件
<a name="filtering-kms-events"></a>

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

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

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

要从跟踪中排除 AWS KMS 事件，请执行以下操作：
+ 在 CloudTrail 控制台中，[创建跟踪或[更新](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-update-a-trail-console.html)跟踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-a-trail-using-the-console-first-time.html)时，请使用**日志密钥管理服务事件**设置。有关说明，请参阅《 AWS CloudTrail 用户指南》[AWS 管理控制台中的 “使用记录管理事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html)”。
+ 在 CloudTrail API 中，使用[PutEventSelectors](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_PutEventSelectors.html)操作。将 `ExcludeManagementEventSources` 属性添加到值为 `kms.amazonaws.com` 的事件选择器中。有关示例，请参阅《 AWS CloudTrail 用户指南》中的[示例：不记录 AWS Key Management Service 事件的跟踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-additional-cli-commands.html#configuring-event-selector-example-kms)。

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

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