

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 記錄 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) 和 [Decrypt](ct-decrypt.md)。它也會記錄 為您 AWS KMS 呼叫的內部操作，例如 [DeleteExpiredKeyMaterial](ct-deleteexpiredkeymaterial.md)、[DeleteKey](ct-delete-key.md)、[SynchronizeMultiRegionKey](ct-synchronize-multi-region-key.md) 和 [RotateKey](ct-rotatekey.md)。

CloudTrail 會記錄所有成功的操作，在某些情況下會嘗試失敗的呼叫，例如當呼叫者無法存取資源時。[對 KMS 金鑰的跨帳戶操作](key-policy-modifying-external-accounts.md)會同時記入呼叫者帳戶和 KMS 金鑰擁有者帳戶。不過，因為存取遭拒而遭到拒絕的跨帳戶 AWS KMS 請求只會記錄在發起人的帳戶中。

基於安全考量， AWS KMS 日誌項目會省略某些欄位，例如 [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) 請求的 `Plaintext` 參數，以及對 [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html) 或任何密碼編譯操作的回應。為了更輕鬆地搜尋特定 KMS 金鑰的 CloudTrail 日誌項目， 會將受影響 KMS 金鑰的[金鑰 ARN](concepts.md#key-id-key-ARN) AWS KMS 新增至某些 AWS KMS 金鑰管理操作日誌項目中的 `responseElements` 欄位，即使 API 操作未傳回金鑰 ARN。

雖然預設會將所有 AWS KMS 動作記錄為 CloudTrail 事件，但您可以從 CloudTrail 追蹤中排除 AWS KMS 動作。如需詳細資訊，請參閱[從線索排除 AWS KMS 事件](#filtering-kms-events)。

**進一步了解**：
+ 如需已驗證平台 AWS KMS 操作的 CloudTrail 日誌範例，請參閱 [監控已驗證的請求](ct-attestation.md)。

**Topics**
+ [在 CloudTrail 中尋找 AWS KMS 日誌項目](#searching-kms-ct)
+ [從線索排除 AWS KMS 事件](#filtering-kms-events)
+ [AWS KMS 日誌項目的範例](understanding-kms-entries.md)

## 在 CloudTrail 中尋找 AWS KMS 日誌項目
<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)來篩選搜尋，包括事件名稱、使用者名稱和事件來源。

為了協助您在 CloudTrail 中搜尋 AWS KMS 日誌項目， 會 AWS KMS 填入下列 CloudTrail 日誌項目欄位。

**注意**  
從 2022 年 12 月開始， 會在變更特定 KMS 金鑰的所有管理操作中 AWS KMS 填入**資源類型****和資源名稱**屬性。對於下列操作，較舊 CloudTrail 項目中的這些屬性值可能為空值：[CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)、[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.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)。


| 屬性 | Value | 日誌項目 | 
| --- | --- | --- | 
| 事件來源 (EventSource) | kms.amazonaws.com | 所有操作。 | 
| 資源類型 (ResourceType) | AWS::KMS::Key | 可變更特定 KMS 金鑰的管理操作，例如 CreateKey 和 EnableKey，但不包括 ListKeys。 | 
| 資源名稱 (ResourceName) | 金鑰 ARN (或金鑰 ID 和金鑰 ARN) | 可變更特定 KMS 金鑰的管理操作，例如 CreateKey 和 EnableKey，但不包括 ListKeys。 | 

為了協助您在特定 KMS 金鑰上尋找管理操作的日誌項目， AWS KMS 會在日誌項目的 `responseElements.keyId`元素中記錄受影響 KMS 金鑰的金鑰 ARN，即使 AWS KMS API 操作未傳回金鑰 ARN。

例如，對 [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html) 操作的成功呼叫不會在回應中傳回任何值，而是傳回空值，[DisableKey 日誌項目](ct-disablekey.md)中的 `responseElements.keyId` 值包含停用的 KMS 金鑰的金鑰 ARN。

此功能於 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 Log 排除 AWS KMS 事件可能會隱藏使用您的 KMS 金鑰的動作。授予委託人執行此操作所需的 `cloudtrail:PutEventSelectors` 許可時時，請務必小心。

若要從追蹤中排除 AWS KMS 事件：
+ 在 CloudTrail 主控台中，當您[建立追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-a-trail-using-the-console-first-time.html)或[更新追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-update-a-trail-console.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 Logs 中，請尋找 `ExcludeManagementEventSources` 屬性設為 `kms.amazonaws.com` 的 `PutEventSelectors` 事件。