

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

# 判斷 KMS 金鑰的過去用量
<a name="deleting-keys-determining-usage"></a>

在刪除 KMS 金鑰之前，您可能想知道在該金鑰下有多少加密文字。 AWS KMS 不會儲存此資訊，也不會儲存任何加密文字。了解 KMS 金鑰的過去使用情形，可能有助您決定將來是否需要它。本主題會建議幾項策略，協助您判斷 KMS 金鑰的過去使用情形。

**警告**  
這些用於確定過去和實際用量的策略僅適用於 AWS 使用者和 AWS KMS 操作。他們偵測不到在 AWS KMS外部對非對稱 KMS 金鑰之公有金鑰的使用。如需刪除用於公有金鑰密碼編譯之非對稱 KMS 金鑰特殊風險的詳細資訊，包括建立無法解密的加密文字，請參閱 [Deleting asymmetric KMS keys](deleting-keys.md#deleting-asymmetric-cmks)。

**Topics**
+ [檢查 KMS 金鑰許可，以判斷潛在用量的範圍](#deleting-keys-usage-key-permissions)
+ [檢查 AWS CloudTrail 日誌以判斷實際用量](#deleting-keys-usage-cloudtrail)

## 檢查 KMS 金鑰許可，以判斷潛在用量的範圍
<a name="deleting-keys-usage-key-permissions"></a>

判斷何人或何物目前可存取 KMS 金鑰，可能有助您判斷 KMS 金鑰的使用範圍以及是否仍然需要它。若要了解如何判斷何人或何物目前可以存取 KMS 金鑰，請前往 [判斷對 的存取 AWS KMS keys](determining-access.md)。

## 檢查 AWS CloudTrail 日誌以判斷實際用量
<a name="deleting-keys-usage-cloudtrail"></a>

您可以使用 KMS 金鑰使用歷史記錄來協助您判斷是否擁有在特定 KMS 金鑰下加密的加密文字。

所有 AWS KMS API 活動都會記錄在 AWS CloudTrail 日誌檔案中。如果您已在 KMS 金鑰所在的區域中[建立 CloudTrail 追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)，您可以檢查 CloudTrail 日誌檔案，以檢視特定 KMS 金鑰的所有 AWS KMS API 活動歷史記錄。即使沒有追蹤，您依然可以在 [CloudTrail 事件歷史記錄](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)中檢視最新事件。如需如何使用 AWS KMS CloudTrail 的詳細資訊，請參閱 [使用 記錄 AWS KMS API 呼叫 AWS CloudTrail](logging-using-cloudtrail.md)。

以下範例會顯示 KMS 金鑰用來保護存放在 Amazon Simple Storage Service (Amazon S3) 中的物件時，所產生的 CloudTrail 日誌項目。在此範例中，物件會使用[透過含有 KMS 金鑰的伺服器端加密 (SSE-KMS) 來保護資料](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) 上傳至 Simple Storage Service (Amazon S3)。當您使用 SSE-KMS 將物件上傳到 Amazon S3 時，請指定用於保護物件的 KMS 金鑰。Amazon S3 使用 AWS KMS [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)操作來請求物件的唯一資料金鑰，而此請求事件會以類似如下的項目記錄在 CloudTrail 中：

```
{
  "eventVersion": "1.02",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROACKCEVSQ6C2EXAMPLE:example-user",
    "arn": "arn:aws:sts::111122223333:assumed-role/Admins/example-user",
    "accountId": "111122223333",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2015-09-10T23:12:48Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROACKCEVSQ6C2EXAMPLE",
        "arn": "arn:aws:iam::111122223333:role/Admins",
        "accountId": "111122223333",
        "userName": "Admins"
      }
    },
    "invokedBy": "internal.amazonaws.com"
  },
  "eventTime": "2015-09-10T23:58:18Z",
  "eventSource": "kms.amazonaws.com",
  "eventName": "GenerateDataKey",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "internal.amazonaws.com",
  "userAgent": "internal.amazonaws.com",
  "requestParameters": {
    "encryptionContext": {"aws:s3:arn": "arn:aws:s3:::example_bucket/example_object"},
    "keySpec": "AES_256",
    "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
  },
  "responseElements": null,
  "requestID": "cea04450-5817-11e5-85aa-97ce46071236",
  "eventID": "80721262-21a5-49b9-8b63-28740e7ce9c9",
  "readOnly": true,
  "resources": [{
    "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "accountId": "111122223333"
  }],
  "eventType": "AwsApiCall",
  "recipientAccountId": "111122223333"
}
```

當您稍後從 Amazon S3 下載此物件時，Amazon S3 會傳送`Decrypt`請求至 AWS KMS ，以使用指定的 KMS 金鑰解密物件的資料金鑰。當您執行此操作，您的 CloudTrail 日誌檔案會包含類似以下內容的項目：

```
{
  "eventVersion": "1.02",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROACKCEVSQ6C2EXAMPLE:example-user",
    "arn": "arn:aws:sts::111122223333:assumed-role/Admins/example-user",
    "accountId": "111122223333",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2015-09-10T23:12:48Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROACKCEVSQ6C2EXAMPLE",
        "arn": "arn:aws:iam::111122223333:role/Admins",
        "accountId": "111122223333",
        "userName": "Admins"
      }
    },
    "invokedBy": "internal.amazonaws.com"
  },
  "eventTime": "2015-09-10T23:58:39Z",
  "eventSource": "kms.amazonaws.com",
  "eventName": "Decrypt",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "internal.amazonaws.com",
  "userAgent": "internal.amazonaws.com",
  "requestParameters": {
    "encryptionContext": {"aws:s3:arn": "arn:aws:s3:::example_bucket/example_object"}},
  "responseElements": null,
  "requestID": "db750745-5817-11e5-93a6-5b87e27d91a0",
  "eventID": "ae551b19-8a09-4cfc-a249-205ddba330e3",
  "readOnly": true,
  "resources": [{
    "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "accountId": "111122223333"
  }],
  "eventType": "AwsApiCall",
  "recipientAccountId": "111122223333"
}
```

CloudTrail 會記錄所有 AWS KMS API 活動。透過評估這些日誌項目，您或許可以確定特定 KMS 金鑰的過去使用情形，這可能有助於您確定是否要刪除它。

若要查看 AWS KMS API 活動如何出現在 CloudTrail 日誌檔案中的更多範例，請前往 [使用 記錄 AWS KMS API 呼叫 AWS CloudTrail](logging-using-cloudtrail.md)。如需 CloudTrail 的詳細資訊，請參閱《[AWS CloudTrail 使用者指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)》。