

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS KMS キーを使用した CloudTrail ログファイル、ダイジェストファイル、イベントデータストアの暗号化 (SSE-KMS)
<a name="encrypting-cloudtrail-log-files-with-aws-kms"></a>

デフォルトでは、CloudTrail から バケットに配信されるログファイルとダイジェストファイルは、[KMS キーによるサーバー側の暗号化 (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) を使用して暗号化されます。SSE-KMS 暗号化を有効にしない場合、ログファイルとダイジェストファイルは [SSE-S3 暗号化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)を使用して暗号化されます。

**注記**  
既存の S3 バケットと [S3 バケットキー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)を使用している場合、 AWS KMS アクション `GenerateDataKey`および を使用するには、CloudTrail にキーポリシーでアクセス許可を付与する必要があります`DescribeKey`。もし `cloudtrail.amazonaws.com` にキーポリシーの許可が与えられていない場合、証跡の作成や更新は行なえません。

CloudTrail で SSE-KMS を使用するには、[AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) を作成して管理します。CloudTrail のログファイルとダイジェストファイルの暗号化と復号化に、どのユーザーがキーを使用できるかを決定するポリシーをキーにアタッチします。復号は、S3 を通じてシームレスです。キーの承認されたユーザーが CloudTrail のログファイルまたはダイジェストファイルを読み取ると、S3 は復号を管理し、許可されたユーザーは暗号化されていない形式でそのファイルを読み取ることができます。

このアプローチには以下の利点があります。
+ お客様自身で KMS キー を作成および管理できます。
+ 単一の KMS キーを使用して、すべてのリージョンの複数のアカウントのログファイルとダイジェストファイルを暗号化および復号化できます。
+ CloudTrail ログファイルとダイジェストファイルを暗号化および復号化するためにキーを使用できるユーザーを制御できます。要件に応じて、組織のユーザーにキーのアクセス権限を割り当てることができます。
+ セキュリティが強化されました。この機能では、ログファイルまたはダイジェストファイルを読み取るために、次のアクセス許可が必要です。
  + ユーザーには、ログファイルとダイジェストファイルを含むバケットに対する S3 の読み取り権限が必要です。
  + ユーザーには、KMS キーポリシーによるアクセス許可の復号化を許可するポリシーまたは役割も適用する必要があります。
+ S3 では、KMS キーの使用を許可されたユーザーからの要求に対してログファイルとダイジェストファイルが自動的に復号されるため、そのファイルの SSE-KMS 暗号化は、CloudTrail ログデータを読み取るアプリケーションとの下位互換性があります。

**注記**  
選択した KMS キーは、ログファイルとダイジェストファイルを受信する Amazon S3 バケットと同じ AWS リージョンに作成する必要があります。例えば、ログファイルとダイジェストファイルが 米国東部 (オハイオ) リージョンのバケットに保存される場合は、そのリージョンで作成された KMS キーを作成または選択する必要があります。Amazon S3 バケットのリージョンを確認するには、Amazon S3 コンソールでそのプロパティを調べます。

デフォルトでは、イベントデータストアは CloudTrail によって暗号化されます。イベントデータストアを作成または更新するときに、暗号化に独自の KMS キーを使用するオプションがあります。

## ログファイルの暗号化を有効にする
<a name="encrypting-cloudtrail-log-files-with-aws-kms-enabling"></a>

**注記**  
CloudTrail コンソールで KMS キーを作成すると、CloudTrail により必要な KMS キーポリシーセクションが追加されます。IAM コンソールまたは でキーを作成し AWS CLI 、必要なポリシーセクションを手動で追加する必要がある場合は、次の手順に従います。

CloudTrail ログファイルに対して SSE-KMS 暗号化を有効にするには、次の必要な手順を実行します。

1. KMS キーを作成します。
   + を使用して KMS キーを作成する方法については AWS マネジメントコンソール、「 *AWS Key Management Service デベロッパーガイド*」の[「キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)」を参照してください。
   + を使用して KMS キーを作成する方法については AWS CLI、[「create-key](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html)」を参照してください。
**注記**  
選択する KMS キーは、ログファイルとダイジェストファイルを受け取る S3 バケットと同じリージョンにある必要があります。S3 バケットのリージョンを確認するには、S3 コンソールでバケットのプロパティを調べます。

1. CloudTrail で暗号化を有効にし、ユーザーがログファイルとダイジェストファイルを復号化できるようにするポリシーセクションをキーに追加します。
   + ポリシーに含める内容の詳細については、「[CloudTrail の AWS KMS キーポリシーを設定する](create-kms-key-policy-for-cloudtrail.md)」を参照してください。
**警告**  
ログファイルまたはダイジェストファイルを読み取る必要があるすべてのユーザーに対して、ポリシーに復号のアクセス権限を含めるようにしてください。証跡の設定にキーを追加する前にこの手順を実行しない場合、復号のアクセス権限のないユーザーは、それらにアクセス権限を付与するまで暗号化されたファイルを読み取ることができません。
   + IAM コンソールを使用したポリシーの編集の詳細については、*AWS Key Management Service デベロッパーガイド*の「[キーポリシーの編集](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-editing)」を参照してください。
   + を使用して KMS キーにポリシーをアタッチする方法については AWS CLI、[put-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html)」を参照してください。

1. CloudTrail 用にポリシーを変更した KMS キーを使用するために証跡またはイベントデータストアを更新します。
   + CloudTrail コンソールを使用して証跡またはイベントデータストアを更新するには、「[コンソールで KMS キーを使用するようにリソースを更新する](create-kms-key-policy-for-cloudtrail-update-trail.md)」を参照してください。
   + を使用して証跡またはイベントデータストアを更新するには AWS CLI、「」を参照してください[を使用した CloudTrail ログファイル、ダイジェストファイル、イベントデータストアの暗号化の有効化と無効化 AWS CLI](cloudtrail-log-file-encryption-cli.md)。

CloudTrail は AWS KMS マルチリージョンキーもサポートしています。マルチリージョンキーの詳細については、*AWS Key Management Service デベロッパーガイド*の「[マルチリージョンキーを使用する](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)」を参照してください。

次のセクションでは、CloudTrail で使用するために KMS キーポリシーが必要とするポリシーセクションについて説明します。

# KMS キーを作成するためのアクセス許可の付与
<a name="granting-kms-permissions"></a>

[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSKeyManagementServicePowerUser.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSKeyManagementServicePowerUser.html) ポリシー AWS KMS key を使用して を作成するアクセス許可をユーザーに付与できます。

**KMS キーを作成するためのアクセス許可を付与するには**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. 権限を付与するグループまたはユーザーを選択します。

1. **[アクセス許可]** タブを選択します。

1.  **[アクセス許可を追加]** リストから **[ポリシーをアタッチ]** を選択します。

1. **AWSKeyManagementServicePowerUser** を検索し、ポリシーを選択して、[**ポリシーをアタッチ**] を選択します。

   これで、ユーザーは KMS キーを作成するアクセス許可を持つようになりました。ポリシーを作成するための詳細については、「*IAM ユーザーガイド*」の「[IAM ポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。

# CloudTrail の AWS KMS キーポリシーを設定する
<a name="create-kms-key-policy-for-cloudtrail"></a>

は、次の 3 つの AWS KMS key 方法で作成できます。
+ CloudTrail コンソール
+  AWS マネジメントコンソール
+  AWS CLI「��

**注記**  
CloudTrail コンソールで KMS キーを作成すると、CloudTrail により必要な KMS キーポリシーが追加されます。ポリシーステートメントを手動で追加する必要はありません。「[CloudTrail コンソールで作成されたデフォルトの KMS キーポリシー](default-kms-key-policy.md)」を参照してください。

 AWS マネジメントコンソール または で KMS キーを作成する場合は AWS CLI、CloudTrail で使用できるようにキーにポリシーセクションを追加する必要があります。このポリシーは、CloudTrail がキーを使用してログファイル、ダイジェストファイル、およびイベントデータストアを暗号化し、指定したユーザーが暗号化されていない形式でログファイルとダイジェストファイルを読み取れるようにする必要があります。

以下のリソースを参照してください。
+ を使用して KMS キーを作成するには AWS CLI、[「create-key](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html)」を参照してください。
+ CloudTrail の KMS キーポリシーを編集するには、*AWS Key Management Service デベロッパーガイド*の「[キーポリシーの編集](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-editing)」を参照してください。
+ CloudTrail の使用方法に関する技術的な詳細については AWS KMS、「」を参照してください[AWS CloudTrail での の使用方法 AWS KMS](how-kms-works-with-cloudtrail.md)。

**Topics**
+ [CloudTrail での使用に必要な KMS キーポリシーセクション](#create-kms-key-policy-for-cloudtrail-policy-sections)
+ [証跡の暗号化アクセス許可の付与](#create-kms-key-policy-for-cloudtrail-encrypt)
+ [イベントデータストアの暗号化アクセス許可の付与](#create-kms-key-policy-for-cloudtrail-encrypt-eds)
+ [証跡の復号化アクセス許可の付与](#create-kms-key-policy-for-cloudtrail-decrypt)
+ [イベントデータストアの復号化アクセス許可の付与](#create-kms-key-policy-for-cloudtrail-decrypt-eds)
+ [CloudTrail を有効にして KMS キープロパティを記述する](#create-kms-key-policy-for-cloudtrail-describe)
+ [CloudTrail コンソールで作成されたデフォルトの KMS キーポリシー](default-kms-key-policy.md)

## CloudTrail での使用に必要な KMS キーポリシーセクション
<a name="create-kms-key-policy-for-cloudtrail-policy-sections"></a>

 AWS マネジメントコンソールまたは を使用して KMS キーを作成した場合 AWS CLI、CloudTrail と連携するには、少なくとも次のステートメントを KMS キーポリシーに追加する必要があります。

**Topics**
+ [証跡用の KMS キーポリシーの必須要素](#required-kms-key-policy-trails)
+ [イベントデータストア用の KMS キーポリシーの必須要素](#required-kms-key-policy-eventdatastores)

### 証跡用の KMS キーポリシーの必須要素
<a name="required-kms-key-policy-trails"></a>

1. CloudTrail ログファイルとダイジェストファイルを暗号化するアクセス許可を付与します。詳細については、「[証跡の暗号化アクセス許可の付与](#create-kms-key-policy-for-cloudtrail-encrypt)」を参照してください。

1. CloudTrail ログファイルとダイジェストファイルを復号化するアクセス許可を付与します。詳細については、「[証跡の復号化アクセス許可の付与](#create-kms-key-policy-for-cloudtrail-decrypt)」を参照してください。[S3 バケットキー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)で既存の S3 バケットを使用している場合は、SSE-KMS 暗号化を有効にした証跡を作成または更新するために、`kms:Decrypt` アクセス許可が必要です。

1. CloudTrail を有効にして KMS キープロパティを記述します。詳細については、「[CloudTrail を有効にして KMS キープロパティを記述する](#create-kms-key-policy-for-cloudtrail-describe)」を参照してください。

セキュリティのベストプラクティスとして、KMS キーポリシーに `aws:SourceArn` 条件キーを追加します。IAM グローバル条件キー `aws:SourceArn` は、CloudTrail が特定の 1 つまたは複数の証跡に対してのみ KMS キーを使用できるようにするのに役立ちます。`aws:SourceArn` の値は、常に KMS キーを使用している証跡 ARN (または証跡 ARN の配列) です。既存の証跡用の KMS キーポリシーに `aws:SourceArn` 条件キーを必ず追加してください。

`aws:SourceAccount` 条件キーもサポートされていますが、推奨されません。`aws:SourceAccount` の値は、証跡の所有者のアカウント ID、または組織の証跡の場合は管理アカウント ID です。

**重要**  
新しいセクションを KMS キーポリシーに追加するときは、ポリシー内の既存のセクションを変更しないでください。  
証跡で暗号化が有効になっていて、KMS キーが無効になっている場合、または KMS キーポリシーが CloudTrail 用に正しく設定されていない場合、CloudTrail はログを配信できません。

### イベントデータストア用の KMS キーポリシーの必須要素
<a name="required-kms-key-policy-eventdatastores"></a>

1. CloudTrail Lake イベントデータストアを暗号化するアクセス許可を付与します。詳細については、「[イベントデータストアの暗号化アクセス許可の付与](#create-kms-key-policy-for-cloudtrail-encrypt-eds)」を参照してください。

1. CloudTrail Lake イベントデータストアを復号化するアクセス許可を付与します。詳細については、「[イベントデータストアの復号化アクセス許可の付与](#create-kms-key-policy-for-cloudtrail-decrypt-eds)」を参照してください。

   イベントデータストアを作成して KMS キーで暗号化する場合、または KMS キーで暗号化するイベントデータストアに対してクエリを実行する場合は、KMS キーに対する書き込みアクセス権が必要です。KMS キーポリシーは CloudTrail にアクセスできる必要があり、イベントデータストアに対してオペレーション (クエリなど) を実行するユーザーは KMS キーを管理できる必要があります。

1. CloudTrail を有効にして KMS キープロパティを記述します。詳細については、「[CloudTrail を有効にして KMS キープロパティを記述する](#create-kms-key-policy-for-cloudtrail-describe)」を参照してください。

`aws:SourceArn` および `aws:SourceAccount` 条件キーは、イベントデータストアの KMS キーポリシーではサポートされていません。

**重要**  
新しいセクションを KMS キーポリシーに追加するときは、ポリシー内の既存のセクションを変更しないでください。  
イベントデータストアで暗号化が有効になっていて、KMS キーが無効になっているか、もしくは削除されている場合、または KMS キーポリシーが CloudTrail のために正しく設定されていない場合、CloudTrail はイベントデータストアにイベントを配信できません。

## 証跡の暗号化アクセス許可の付与
<a name="create-kms-key-policy-for-cloudtrail-encrypt"></a>

**Example CloudTrail が特定のアカウントに代わってログファイルとダイジェストファイルを暗号化することを許可する**  
CloudTrail には、KMS キーを使用して特定のアカウントに代わってログファイルとダイジェストファイルを暗号化する明示的なアクセス許可が必要です。アカウントを指定するには、KMS キーポリシーに次の必須のステートメントを追加して、*account-id*、*region*、および *trailName* を設定に適切な値に置き換えます。`EncryptionContext` セクションに追加のアカウント ID を追加して、これらのアカウントで CloudTrail により KMS キーを使用してログファイルとダイジェストファイルを暗号化できます。  
セキュリティのベストプラクティスとして、証跡用の KMS キーポリシーに `aws:SourceArn` 条件キーを追加します。IAM グローバル条件キー `aws:SourceArn` は、CloudTrail が特定の 1 つまたは複数の証跡に対してのみ KMS キーを使用できるようにするのに役立ちます。

```
{
   "Sid": "AllowCloudTrailEncryptLogs",
   "Effect": "Allow",
   "Principal": {
       "Service": "cloudtrail.amazonaws.com"
    },
    "Action": "kms:GenerateDataKey*",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name"
         },
         "StringLike": {
             "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:account-id:trail/*"
         }
    }
}
```

**Example**  
次のポリシーステートメントの例は、別のアカウントがユーザーの KMS キーを使用して CloudTrail のログファイルとダイジェストファイルを暗号化する方法を示しています。

**シナリオ**
+ KMS キーは、アカウント *111111111111* にあります。
+ 自分も アカウント *222222222222* も両方ともログを暗号化します。

このポリシーでは、キーで暗号化する 1 つ以上のアカウントを CloudTrail **EncryptionContext** に追加します。これにより、CloudTrail は指定したアカウントのログファイルとダイジェストファイルのみを暗号化するためにキーを使用するように制限されます。アカウント *222222222222* のルートにログファイルとダイジェストファイルを暗号化するアクセス許可を与えると、アカウント管理者に、そのアカウント内の他のユーザーに必要なアクセス許可を暗号化するアクセス許可が委任されます。アカウント管理者は、これらの IAM ユーザーに関連するポリシーを変更することでこれを行います。

セキュリティのベストプラクティスとして、KMS キーポリシーに `aws:SourceArn` 条件キーを追加します。IAM グローバル条件キー `aws:SourceArn` は、CloudTrail が指定された証跡に対してのみ KMS キーを使用することを保証するのに役立ちます。この条件は、イベントデータストアの KMS キーポリシーではサポートされていません。

KMS キーポリシーステートメント:

```
{
  "Sid": "EnableCloudTrailEncryptPermissions",
  "Effect": "Allow",
  "Principal": {
    "Service": "cloudtrail.amazonaws.com"
  },
  "Action": "kms:GenerateDataKey*",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:EncryptionContext:aws:cloudtrail:arn": [
        "arn:aws:cloudtrail:*:111111111111:trail/*",
        "arn:aws:cloudtrail:*:222222222222:trail/*"
      ]
    },
    "StringEquals": {
        "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name"
    }
  }
}
```

CloudTrail で使用する KMS キーポリシーの編集の詳細については、「 AWS Key Management Service デベロッパーガイド[」の「キーポリシーの編集](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-editing)」を参照してください。

## イベントデータストアの暗号化アクセス許可の付与
<a name="create-kms-key-policy-for-cloudtrail-encrypt-eds"></a>

CloudTrail Lake イベントデータストアの暗号化に使用される KMS キーのポリシーは、条件キー `aws:SourceArn` または `aws:SourceAccount` を使用できません。イベントデータストアの KMS キーポリシーの例を次に示します。

```
{
    "Sid": "AllowCloudTrailEncryptEds",
    "Effect": "Allow",
    "Principal": {
        "Service": "cloudtrail.amazonaws.com"
     },
     "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": "*"
}
```

## 証跡の復号化アクセス許可の付与
<a name="create-kms-key-policy-for-cloudtrail-decrypt"></a>

CloudTrail 設定に KMS キーを追加する前に、必要なすべてのユーザーに復号する権限を与えることが重要です 暗号化の許可はあっても、復号の許可がないユーザーは、暗号化されたログを読み取ることはできません。[S3 バケットキー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)で既存の S3 バケットを使用している場合は、SSE-KMS 暗号化を有効にした証跡を作成または更新するために、`kms:Decrypt` アクセス許可が必要です。

**CloudTrail のログ復号化のアクセス許可を有効にする**  
CloudTrail が暗号化したログファイルを読むには、キーのユーザーに明示的な権限を与える必要があります。ユーザーが暗号化されたログを読み取れるようにするには、次の必要なステートメントを KMS キーポリシーに追加し、`Principal` セクションを変更して、KMS キーを使用して復号できるすべてのプリンシパル のための行を追加します。

```
{
  "Sid": "EnableCloudTrailLogDecryptPermissions",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::account-id:user/username"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:EncryptionContext:aws:cloudtrail:arn": "false"
    }
  }
}
```

CloudTrail サービスプリンシパルが証跡ログを復号することを許可するために必要なポリシーの例を次に示します。

```
{
      "Sid": "AllowCloudTrailDecryptTrail",
      "Effect": "Allow",
      "Principal": {
          "Service": "cloudtrail.amazonaws.com"
        },
      "Action": "kms:Decrypt",
      "Resource": "*"
}
```

### アカウントのユーザーが KMS キーで証跡ログを復号することを許可する
<a name="create-kms-key-policy-for-cloudtrail-decrypt-your-account"></a>

**例**  
このポリシーステートメントは、アカウント内のユーザー、またはロールがキーを使用してアカウントの S3 バケットの暗号化されたログを読み取ることを許可する方法を示しています。

**Example シナリオ**  
+ KMS キー、S3 バケット、および IAM ユーザーの Bob は、アカウント `111111111111` にあります。
+ S3 バケットの CloudTrail ログを復号するアクセス許可を IAM ユーザーの Bob に与えます。

キーポリシーでは、IAM ユーザーである Bob の CloudTrail ログ復号権限を有効にします。

KMS キーポリシーステートメント:

```
{
  "Sid": "EnableCloudTrailLogDecryptPermissions",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111111111111:user/Bob"
  },
  "Action": "kms:Decrypt",
  "Resource": "arn:aws:kms:region:account-id:key/key-id",
  "Condition": {
    "Null": {
      "kms:EncryptionContext:aws:cloudtrail:arn": "false"
    }
  }
}
```

**Topics**

### 他のアカウントのユーザーが KMS キーで証跡ログを復号することを許可する
<a name="create-kms-key-policy-for-cloudtrail-decrypt-other-accounts"></a>

ご自身の KMS キーを使用して、他のアカウントのユーザーが証跡ログを復号することを許可できます。キーポリシーに必要な変更は、S3 バケットが自分のアカウントにあるか、または別のアカウントにあるかによって異なります。

#### 別のアカウントのバケットのユーザーがログを復号する権限を与える
<a name="create-kms-key-policy-for-cloudtrail-decrypt-different-bucket"></a>

**例**  
このポリシーステートメントは、別のアカウントの IAM ユーザーまたはロールに、キーを使用して、他のアカウントの S3 バケットから暗号化されたログを読み取る権限を与える方法を示しています。

**シナリオ**
+ KMS キーは、アカウント `111111111111` にあります。
+ IAM ユーザーである Alice と S3 バケットは、アカウント `222222222222` にあります。

この場合、CloudTrail にアカウント `222222222222` にあるログを復号する権限を付与し、Alice の IAM ユーザーポリシーに、アカウント `111111111111` にある自分のキー `KeyA` を使用する権限を付与します。

KMS キーポリシーステートメント:

```
{
  "Sid": "EnableEncryptedCloudTrailLogReadAccess",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::222222222222:root"
    ]
  },
  "Action": "kms:Decrypt",
  "Resource": "arn:aws:kms:region:111111111111:key/key-id",
  "Condition": {
    "Null": {
      "kms:EncryptionContext:aws:cloudtrail:arn": "false"
    }
  }
}
```

Alice の IAM ユーザーポリシーステートメント:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "kms:Decrypt",
      "Resource": "arn:aws:kms:us-west-2:111111111111:key/KeyA"
    }
  ]
}
```

------

#### 別のアカウントのユーザーがバケットから証跡ログを復号することを許可する
<a name="create-kms-key-policy-for-cloudtrail-decrypt-same-bucket"></a>

**Example**  
このポリシーは、S3 バケットから暗号化されたログを読み取るために、別のアカウントがキー使用する方法を示しています。

**Example シナリオ**  
+ KMS キーと S3 バケットは、アカウント `111111111111` にあります。
+ バケットからログを読み取るユーザーは、アカウント `222222222222` にあります。

このシナリオを有効にするには、アカウントの IAM ロール **CloudTrailReadRole** の復号化権限を有効にして、他のアカウントにそのロールを引き継ぐ権限を与えます。

KMS キーポリシーステートメント:

```
{
  "Sid": "EnableEncryptedCloudTrailLogReadAccess",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::111111111111:role/CloudTrailReadRole"
    ]
  },
  "Action": "kms:Decrypt",
  "Resource": "arn:aws:kms:region:account-id:key/key-id",
  "Condition": {
    "Null": {
      "kms:EncryptionContext:aws:cloudtrail:arn": "false"
    }
  }
}
```

**CloudTrailReadRole** 信頼エンティティポリシーステートメント:

------
#### [ JSON ]

****  

```
{
 "Version":"2012-10-17",		 	 	 
 "Statement": [
   {
     "Sid": "Allow CloudTrail access",
     "Effect": "Allow",
     "Principal": {
       "AWS": "arn:aws:iam::222222222222:root"
     },
     "Action": "sts:AssumeRole"
    }
  ]
 }
```

------

CloudTrail で使用する KMS キーポリシーの編集については、「AWS Key Management Service デベロッパーガイド」の「[キーポリシーの編集](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-editing)」を参照してください。

## イベントデータストアの復号化アクセス許可の付与
<a name="create-kms-key-policy-for-cloudtrail-decrypt-eds"></a>

CloudTrail Lake イベントデータストアで使用される KMS キーの復号ポリシーは、次のようになります。`Principal` の値として指定されたユーザーまたはロールの ARN には、イベントデータストアの作成または更新、クエリの実行、またはクエリ結果の取得を行うための復号許可が必要です。

```
{
      "Sid": "EnableUserKeyPermissionsEds"
      "Effect": "Allow",
      "Principal": {
          "AWS": "arn:aws:iam::account-id:user/username"
      },
      "Action": [
          "kms:Decrypt",
          "kms:GenerateDataKey"
      ],
      "Resource": "*"
  }
```

CloudTrail サービスプリンシパルがイベントデータストアを復号化することを許可するために必要なポリシーの例を次に示します。

```
{
      "Sid": "AllowCloudTrailDecryptEds",
      "Effect": "Allow",
      "Principal": {
          "Service": "cloudtrail.amazonaws.com"
        },
      "Action": "kms:Decrypt",
      "Resource": "*"
}
```

## CloudTrail を有効にして KMS キープロパティを記述する
<a name="create-kms-key-policy-for-cloudtrail-describe"></a>

CloudTrail には、KMS キーのプロパティを記述する能力が必要です。この機能を有効にするには、以下の必要なステートメントをそのまま KMS キーポリシーに追加します。このステートメントは、指定した以外の権限を CloudTrail に与えることはありません。

セキュリティのベストプラクティスとして、KMS キーポリシーに `aws:SourceArn` 条件キーを追加します。IAM グローバル条件キー `aws:SourceArn` は、CloudTrail が特定の 1 つまたは複数の証跡に対してのみ KMS キーを使用できるようにするのに役立ちます。

```
{
  "Sid": "AllowCloudTrailAccess",
  "Effect": "Allow",
  "Principal": {
    "Service": "cloudtrail.amazonaws.com"
  },
  "Action": "kms:DescribeKey",
  "Resource": "arn:aws:kms:region:account-id:key/key-id",
  "Condition": {
    "StringEquals": {
        "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name"
    }
  }
}
```

KMS キーポリシーの編集の詳細については、*AWS Key Management Service デベロッパーガイド*の「[キーポリシーの編集](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-editing)」を参照してください。

# CloudTrail コンソールで作成されたデフォルトの KMS キーポリシー
<a name="default-kms-key-policy"></a>

CloudTrail コンソール AWS KMS key で を作成すると、次のポリシーが自動的に作成されます。このポリシーでは、次の権限が付与されます。
+ KMS キーの許可 AWS アカウント (ルート) を許可します。
+ CloudTrail が KMS キーでログファイルとダイジェストファイルを暗号化することと、KMS キーを記述することを許可します。
+ 指定されたアカウント内のすべてのユーザーがログファイルとダイジェストファイルを復号化することを許可します。
+ 指定されたアカウント内のすべてのユーザーが KMS キーの KMS エイリアスを作成する権限を付与する
+ 証跡を作成したアカウントのアカウント ID に対するクロスアカウントログ復号化を有効にします。

**Topics**
+ [証跡のデフォルト KMS キーポリシー](#default-kms-key-policy-trail)
+ [CloudTrail Lake イベントデータストアのデフォルト KMS キーポリシー](#default-kms-key-policy-eds)

## 証跡のデフォルト KMS キーポリシー
<a name="default-kms-key-policy-trail"></a>

以下は、証跡 AWS KMS key で使用する 用に作成されたデフォルトのポリシーです。

**注記**  
このポリシーには、クロスアカウントが KMS キーを使用してログファイルとダイジェストファイルを復号化することを許可するステートメントが含まれています。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "Key policy created by CloudTrail",
    "Statement": [
        {
            "Sid": "Enable IAM user permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111111111111:root",
                    "arn:aws:iam::111111111111:user/username"
                ]
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow CloudTrail to encrypt logs",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudtrail.amazonaws.com"
             },
            "Action": "kms:GenerateDataKey*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": "arn:aws:cloudtrail:us-east-1:111111111111:trail/trail-name"
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:111111111111:trail/*"
                }
            }
        },
        {
            "Sid": "Allow CloudTrail to describe key",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudtrail.amazonaws.com"
             },
            "Action": "kms:DescribeKey",
            "Resource": "*"
        },
        {
            "Sid": "Allow principals in the account to decrypt log files",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
             },
            "Action": [
                "kms:Decrypt",
                "kms:ReEncryptFrom"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:CallerAccount": "111111111111"
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:111111111111:trail/*"
                }
            }
        },
        {
            "Sid": "Enable cross account log decryption",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "kms:Decrypt",
                "kms:ReEncryptFrom"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:CallerAccount": "111111111111"
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:111111111111:trail/*"
                }
            }
        }
    ]
}
```

------

## CloudTrail Lake イベントデータストアのデフォルト KMS キーポリシー
<a name="default-kms-key-policy-eds"></a>

以下は、CloudTrail Lake のイベントデータストア AWS KMS key で使用する 用に作成されたデフォルトのポリシーです。

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Id": "Key policy created by CloudTrail",
      "Statement": [
        {
          "Sid": "The key created by CloudTrail to encrypt event data stores. Created ${new Date().toUTCString()}",
          "Effect": "Allow",
          "Principal": {
            "Service": "cloudtrail.amazonaws.com"
          },
          "Action": [
            "kms:GenerateDataKey",
            "kms:Decrypt"
          ],
          "Resource": "*"
        },
        {
          "Sid": "Enable IAM user permissions",
          "Effect": "Allow",
          "Principal": {
                "AWS": "arn:aws:iam::111111111111:root"
          },
          "Action": "kms:*",
          "Resource": "*"
        },
        {
          "Sid": "Enable user to have permissions",
          "Effect": "Allow",
          "Principal": {
               "AWS" : "arn:aws:sts::111111111111:assumed-role/example-role-name"
        },
          "Action": [
            "kms:Decrypt",
            "kms:GenerateDataKey"
           ],
          "Resource": "*"
        }
      ]
    }
```

------

# コンソールで KMS キーを使用するようにリソースを更新する
<a name="create-kms-key-policy-for-cloudtrail-update-trail"></a>

CloudTrail コンソールで、KMS キーを使用するように証跡またはイベントデータストアを更新します。独自の KMS キーを使用すると、暗号化と復号の AWS KMS コストが発生することに注意してください。詳細については、[AWS Key Management Service の料金](https://aws.amazon.com/kms/pricing/)を参照してください。

**Topics**
+ [KMS キーを使用するように証跡を更新する](#kms-key-policy-update-trail)
+ [KMS キーを使用するようにイベントデータストアを更新する](#kms-key-policy-update-eds)

## KMS キーを使用するように証跡を更新する
<a name="kms-key-policy-update-trail"></a>

CloudTrail で変更 AWS KMS key した を使用するように証跡を更新するには、CloudTrail コンソールで次の手順を実行します。

**注記**  
[S3 バケットキー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)で既存の S3 バケットを使用している場合は、CloudTrail は AWS KMS アクション `GenerateDataKey` および `DescribeKey` を使用する、キーポリシーの許可を付与されていなければなりません。もし `cloudtrail.amazonaws.com` にキーポリシーの許可が与えられていない場合、証跡の作成や更新は行なえません。

を使用して証跡を更新するには AWS CLI、「」を参照してください[を使用した CloudTrail ログファイル、ダイジェストファイル、イベントデータストアの暗号化の有効化と無効化 AWS CLI](cloudtrail-log-file-encryption-cli.md)。

**KMS キーを使用するために証跡を更新するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/) で CloudTrail コンソールを開きます。

1. [**Trails**] を選択し、証跡名を選択します。

1. [**General details**] で、[**Edit**] を選択します。

1. **[Log file SSE-KMS encryption]** (ログファイルの SSE-KMS 暗号化) で、SSE-S3 暗号化を使用する代わりに SSE-KMS 暗号化を使用してログファイルとダイジェストファイルを暗号化する場合は、**[Enabled]** (有効) を選択します。デフォルトは [**Enabled**] です。SSE-KMS 暗号化を有効にしない場合、ログファイルとダイジェストファイルは SSE-S3 暗号化を使用して暗号化されます。SSE-KMS 暗号化の詳細については、[AWS Key Management Service 「 (SSE-KMS) でのサーバー側の暗号化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)の使用」を参照してください。SSE-S3 暗号化の詳細については、「[Amazon S3 が管理する暗号化キーによるサーバー側の暗号化 (SSE−S3) の使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)」を参照してください。

   [**Existing**] を選択して AWS KMS keyの証跡を更新します。ログファイルを受け取る S3 バケットと同じリージョンにある KMS キーを選択します。S3 バケットのリージョンを確認するには、S3 コンソールでそのプロパティを確認します。
**注記**  
別のアカウントのキーの ARN を入力することもできます。詳細については、「[コンソールで KMS キーを使用するようにリソースを更新する](#create-kms-key-policy-for-cloudtrail-update-trail)」を参照してください。このキーポリシーは、CloudTrail がキーを使用してログファイルとダイジェストファイルを暗号化できるようにし、指定したユーザーが暗号化されていない形式でログファイルまたはダイジェストファイルを読み取れるようにする必要があります。キーポリシーを手動で編集する方法については、[CloudTrail の AWS KMS キーポリシーを設定する](create-kms-key-policy-for-cloudtrail.md) を参照してください。

   **[AWS KMS Alias]** で、CloudTrail で使用するポリシーを変更したエイリアスを、`alias/`*MyAliasName* の形式で指定します。詳細については、「[コンソールで KMS キーを使用するようにリソースを更新する](#create-kms-key-policy-for-cloudtrail-update-trail)」を参照してください。

   エイリアス名、ARN、グローバルに一意のキー ID を入力できます。KMS キーが、別のアカウントに属している場合は、そのキーポリシーに使用可能なアクセス権限があることを確認します。値は、以下の形式のいずれかになります。
   + **エイリアス名**: `alias/MyAliasName`
   + **エイリアス ARN**: `arn:aws:kms:region:123456789012:alias/MyAliasName` 
   + **キー ARN**: `arn:aws:kms:region:123456789012:key/12345678-1234-1234-1234-123456789012` 
   + **グローバルに一意のキー ID**: `12345678-1234-1234-1234-123456789012` 

1. [**証跡の作成**] を選択します。
**注記**  
選択した KMS キーが無効になっているか、削除が保留されている場合は、その KMS キーで証跡を保存することはできません。KMS キーを有効にするか、別の CMK を選択できます。詳細については、*AWS Key Management Service デベロッパーガイド*の「[キー状態: KMS キーへの影響](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)」を参照してください。

## KMS キーを使用するようにイベントデータストアを更新する
<a name="kms-key-policy-update-eds"></a>

CloudTrail で変更 AWS KMS key した を使用するようにイベントデータストアを更新するには、CloudTrail コンソールで次の手順を実行します。

を使用してイベントデータストアを更新するには AWS CLI、「」を参照してください[でイベントデータストアを更新する AWS CLI](lake-cli-update-eds.md)。

**重要**  
KMS キーを無効化または削除するか、キーの CloudTrail 許可を削除すると、CloudTrail はイベントデータストアにイベントを取り込むことができなくなり、ユーザーはそのキーで暗号化されたイベントデータストア内のデータをクエリできなくなります。イベントデータストアを KMS キーに関連付けた後に、その KMS キーを削除または変更することはできません。イベントデータストアで使用している KMS キーを無効化または削除する前に、イベントデータストアを削除またはバックアップしてください。

**KMS キーを使用するようにイベントデータストアを更新するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/) で CloudTrail コンソールを開きます。

1. ナビゲーションペインで、**[Lake]** の **[Event data stores]** (イベントデータストア) を選択します。更新するイベントデータストアを選択します。

1. [**General details**] で、[**Edit**] を選択します。

1. **[Encryption]** (暗号化) で、暗号化が既に有効になっているのでなければ、**[Use my own AWS KMS key]** を選択して、自身の KMS キーでイベントデータストアを暗号化します。

   KMS キーでイベントデータストアを更新するには、**[Existing]** (既存) を選択します。イベントデータストアと同じリージョンにある KMS キーを選択します。別のアカウントからのキーはサポートされていません。

   ** AWS KMS エイリアスの入力**で、CloudTrail で使用するポリシーを変更したエイリアスを `alias/`*MyAliasName* 形式で指定します。詳細については、「[コンソールで KMS キーを使用するようにリソースを更新する](#create-kms-key-policy-for-cloudtrail-update-trail)」を参照してください。

   エイリアスを選択するか、またはグローバルに一意のキー ID を使用することを選択できます。値は、以下の形式のいずれかになります。
   + **エイリアス名**: `alias/MyAliasName`
   + **エイリアス ARN**: `arn:aws:kms:region:123456789012:alias/MyAliasName` 
   + **キー ARN**: `arn:aws:kms:region:123456789012:key/12345678-1234-1234-1234-123456789012` 
   + **グローバルに一意のキー ID**: `12345678-1234-1234-1234-123456789012` 

1. **[Save changes]** (変更の保存) をクリックします。
**注記**  
選択した KMS キーが無効になっているか、削除が保留されている場合は、その KMS キーでイベントデータストア設定を保存することはできません。KMS キーを有効にするか、または別のキーを選択できます。詳細については、*AWS Key Management Service デベロッパーガイド*の「[キー状態: KMS キーへの影響](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)」を参照してください。

# を使用した CloudTrail ログファイル、ダイジェストファイル、イベントデータストアの暗号化の有効化と無効化 AWS CLI
<a name="cloudtrail-log-file-encryption-cli"></a>

このトピックでは、 AWS CLIを使用して CloudTrail ログファイル、ダイジェストファイル、およびイベントデータストアの SSE-KMS 暗号化を有効または無効にする方法を説明します。背景情報については、「[AWS KMS キーを使用した CloudTrail ログファイル、ダイジェストファイル、イベントデータストアの暗号化 (SSE-KMS)](encrypting-cloudtrail-log-files-with-aws-kms.md)」を参照してください。

**Topics**
+ [を使用して CloudTrail ログファイル、ダイジェストファイル、イベントデータストアの暗号化を有効にする AWS CLI](#cloudtrail-log-file-encryption-cli-enable)
+ [を使用してログファイルとダイジェストファイルの暗号化を無効にする AWS CLI](#cloudtrail-log-file-encryption-cli-disable)

## を使用して CloudTrail ログファイル、ダイジェストファイル、イベントデータストアの暗号化を有効にする AWS CLI
<a name="cloudtrail-log-file-encryption-cli-enable"></a>
+ [証跡のログファイルとダイジェストファイル暗号化を有効にする](#log-encryption-trail)
+ [イベントデータストアの暗号化を有効にする](#log-encryption-eds)<a name="log-encryption-trail"></a>

**証跡のログファイルとダイジェストファイルの暗号化を有効にする**

1.  AWS CLIを使用してキーを作成します。作成するキーは、CloudTrail ログファイルを受け取る S3 バケットと同じリージョンに配置する必要があります。このステップでは、 コマンドを使用します AWS KMS [https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html)。

1. 既存のキーポリシーを取得します。これを変更して CloudTrail で使用することができます。コマンドを使用して AWS KMS [https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html)キーポリシーを取得できます。

1. CloudTrail がログファイルとダイジェストファイルを暗号化し、ユーザーがログファイルとダイジェストファイルを復号できるように、必要なセクションをキーポリシーに追加します。ログファイルを読むすべてのユーザーに、復号許可が付与されているようにしてください。ポリシーの既存のセクションを変更しないでください。追加するポリシーセクションの詳細については、「[CloudTrail の AWS KMS キーポリシーを設定する](create-kms-key-policy-for-cloudtrail.md)」を参照してください。

1. コマンドを使用して、変更された JSON ポリシーファイルをキーにアタッチします AWS KMS [https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html)。

1. `--kms-key-id` パラメーターで、CloudTrail `create-trail` または `update-trail` コマンドを実行します。このコマンドは、ログファイルとダイジェストファイルの暗号化を有効にします。

   ```
   aws cloudtrail update-trail --name Default --kms-key-id alias/MyKmsKey
   ```

   `--kms-key-id` パラメーターに、CloudTrail のためにポリシーを変更したキーを指定します。次のいずれかの形式を指定できます。
   + **エイリアス名**。例: `alias/MyAliasName`
   + **エイリアス ARN**。例: `arn:aws:kms:us-east-2:123456789012:alias/MyAliasName` 
   + **キー ARN**。例: `arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012` 
   + **全体で一意のキー ID**。例: `12345678-1234-1234-1234-123456789012` 

   以下に、応答の例を示します。

   ```
   {
       "IncludeGlobalServiceEvents": true, 
       "Name": "Default", 
       "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Default", 
       "LogFileValidationEnabled": false,
       "KmsKeyId": "arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012", 
       "S3BucketName": "amzn-s3-demo-bucket"
   }
   ```

   `KmsKeyId` 要素の存在は、ログファイルの暗号化が有効になったことがわかります。ログファイルの検証が有効になっている場合 (true に設定されている `LogFileValidationEnabled` 要素によって示される)、これはダイジェストファイルに対して暗号化が有効になっていることも示します。暗号化されたログファイルとダイジェストファイルは、約 5 分以内に証跡用に設定された S3 バケットに表示されます。<a name="log-encryption-eds"></a>

**イベントデータストアの暗号化を有効にする**

1.  AWS CLIを使用してキーを作成します。作成するキーは、イベントデータストアと同一のリージョンにある必要があります。このステップでは、 コマンドを実行します AWS KMS [https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html)。

1. CloudTrail で使用するために編集する既存のキーポリシーを取得します。キーポリシーを取得するには、 AWS KMS [https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html) コマンドを実行します。

1. CloudTrail がイベントデータストアを暗号化し、ユーザーがそれを復号できるように、必要なセクションをキーポリシーに追加します。イベントデータストアを読み取るすべてのユーザーに、復号許可が付与されているようにしてください。ポリシーの既存のセクションを変更しないでください。追加するポリシーセクションの詳細については、「[CloudTrail の AWS KMS キーポリシーを設定する](create-kms-key-policy-for-cloudtrail.md)」を参照してください。

1. 編集した JSON ポリシーファイルをキーにアタッチするには、 AWS KMS [put-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html) コマンドを実行します。

1. CloudTrail `create-event-data-store` または `update-event-data-store` コマンドを実行し、`--kms-key-id` パラメータを追加します。このコマンドは、イベントデータストアの暗号化を有効にします。

   ```
   aws cloudtrail update-event-data-store --name my-event-data-store --kms-key-id alias/MyKmsKey
   ```

   `--kms-key-id` パラメーターに、CloudTrail のためにポリシーを変更したキーを指定します。次の 4 つの形式のいずれかを指定できます。
   + **エイリアス名**。例: `alias/MyAliasName`
   + **エイリアス ARN**。例: `arn:aws:kms:us-east-2:123456789012:alias/MyAliasName` 
   + **キー ARN**。例: `arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012` 
   + **全体で一意のキー ID**。例: `12345678-1234-1234-1234-123456789012` 

   以下に、応答の例を示します。

   ```
   {
       "Name": "my-event-data-store",
       "ARN": "arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE",
       "RetentionPeriod": "90",
       "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012"
       "MultiRegionEnabled": false,
       "OrganizationEnabled": false,
       "TerminationProtectionEnabled": true,
       "AdvancedEventSelectors": [{
           "Name": "Select all external events",
           "FieldSelectors": [{
               "Field": "eventCategory",
               "Equals": [
                   "ActivityAuditLog"
               ]
           }]
       }]
   }
   ```

   `KmsKeyId` 要素の存在は、イベントデータストアの暗号化が有効になっていることを示します。

## を使用してログファイルとダイジェストファイルの暗号化を無効にする AWS CLI
<a name="cloudtrail-log-file-encryption-cli-disable"></a>

証跡でのログファイルとダイジェストファイルの暗号化を停止するには、`update-trail` を実行して、空の文字列を `kms-key-id` パラメータに渡します。

```
aws cloudtrail update-trail --name my-test-trail --kms-key-id ""
```

以下に、応答の例を示します。

```
{
    "IncludeGlobalServiceEvents": true, 
    "Name": "Default", 
    "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Default", 
    "LogFileValidationEnabled": false, 
    "S3BucketName": "amzn-s3-demo-bucket"
}
```

`KmsKeyId` の値がないため、ログファイルとダイジェストファイルの暗号化が有効でなくなったことを示します。

**重要**  
イベントデータストアの暗号化を停止することはできません。

# AWS CloudTrail での の使用方法 AWS KMS
<a name="how-kms-works-with-cloudtrail"></a>

このセクションでは、 が SSE-KMS キーで暗号化された CloudTrail 証跡と AWS KMS 連携する方法について説明します。

**重要**  
AWS CloudTrail と Amazon S3 は[対称 AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html#symmetric-cmks)のみをサポートします。[非対称 KMS キー](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)を使用して CloudTrail ログを暗号化することはできません。KMS キーが対称か非対称かを判断する方法については、「*AWS Key Management Service デベロッパーガイド*」の「[さまざまなキータイプの特定](https://docs.aws.amazon.com/kms/latest/developerguide/identify-key-types.html)」を参照してください。

CloudTrail では、SSE-KMS キーで暗号化されたログファイルで読み取りまたは書き込みをする場合、キー利用料金は発生しません。ただし、SSE-KMS キーで暗号化された CloudTrail ログファイルにアクセスする場合は、キー利用料金が発生します。 AWS KMS 料金の詳細については、[AWS Key Management Service 「 ](https://aws.amazon.com/kms/pricing/)の料金」を参照してください。CloudTrail の料金については、「[AWS CloudTrail の料金](https://aws.amazon.com/cloudtrail/pricing/)」を参照してください。

## 証跡のために KMS キーを使用するタイミングを理解する
<a name="cloudtrail-details"></a>

(SSE-KMS) によるサーバー側の暗号化と呼ばれる Amazon S3 機能上に AWS KMS ビルドされた CloudTrail ログファイルの暗号化。 AWS KMS key SSE-KMS の詳細については、*Amazon Simple Storage Service ユーザーガイド*の[AWS KMS 「キーによるサーバー側の暗号化の使用 (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)」を参照してください。

SSE-KMS を使用してログファイルを暗号化 AWS CloudTrail するように を設定すると、CloudTrail と Amazon S3 は、これらのサービスで特定のアクションを実行 AWS KMS keys するときに を使用します。以下のセクションでは、これらのサービスが KMS キーをいつ、どのように使用するかについて説明し、この説明を検証するために使用できる追加情報を示します。

**Contents**
+ [でログファイルを暗号化するように CloudTrail を設定します。 AWS KMS key](#cloudtrail-details-update-configuration)
+ [CloudTrail は S3 バケットにログファイルを格納します](#cloudtrail-details-put-log-file)
+ [S3 バケットから暗号化されたログファイルを取得する](#cloudtrail-details-get-log-file)

### でログファイルを暗号化するように CloudTrail を設定します。 AWS KMS key
<a name="cloudtrail-details-update-configuration"></a>

[KMS キーを使用するように CloudTrail 設定を更新すると](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-kms-key-policy-for-cloudtrail-update-trail.html)、CloudTrail は に[https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)リクエストを送信 AWS KMS して、KMS キーが存在し、CloudTrail に暗号化に使用するアクセス許可があることを確認します。CloudTrail は、結果のデータキーを使用しません。

`GenerateDataKey` リクエストには、[暗号化コンテキスト](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html)の次の情報が含まれています。
+ CloudTrail トレイルの [Amazon リソースネーム（ARN）](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) 
+ S3 バケットの ARN と CloudTrail ログファイルが配信されるパス

 `GenerateDataKey` リクエストの結果、CloudTrail ログに次の例のようなエントリが作成されます。このようなログエントリが表示されたら、CloudTrail が特定の証跡の オペレーションを AWS KMS `GenerateDataKey`呼び出したと判断できます。 は、特定の KMS キーの下にデータキー AWS KMS を作成しました。

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "cloudtrail.amazonaws.com"
    },
    "eventTime": "2024-12-06T20:14:46Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKey",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "cloudtrail.amazonaws.com",
    "userAgent": "cloudtrail.amazonaws.com",
    "requestParameters": {
        "keySpec": "AES_256",
        "keyId": "arn:aws:kms:us-east-1:123456789012:key/example1-6736-4661-bf00-exampleeb770",
        "encryptionContext": {
            "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-east-1:123456789012:trail/management-events",
            "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-logging-bucket-123456789012-9af1fb49/AWSLogs/123456789012/CloudTrail/us-east-1/2024/12/06/123456789012_CloudTrail_us-east-1_20241206T2010Z_TO50OLMG1hIQ1png.json.gz"
        }
    },
    "responseElements": null,
    "requestID": "a0555e85-7e8a-4765-bd8f-2222295558e1",
    "eventID": "e4f3557e-7dbd-4e37-a00a-d86c137d1111",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:123456789012:key/example1-6736-4661-bf00-exampleeb770"
         }],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "sharedEventID": "ce71d6be-0846-498e-851f-111a1af9078f",
    "eventCategory": "Management"
}
```

### CloudTrail は S3 バケットにログファイルを格納します
<a name="cloudtrail-details-put-log-file"></a>

CloudTrail がログファイルを S3 バケットに配置するたびに、Amazon S3 は CloudTrail AWS KMS に代わって に[https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)リクエストを送信します。このリクエストに応答して、 は一意のデータキー AWS KMS を生成し、データキーの 2 つのコピーを Amazon S3 に送信します。1 つはプレーンテキストで、もう 1 つは指定された KMS キーで暗号化されます。Amazon S3 は、プレーンテキストデータキーを使用して CloudTrail ログファイルを暗号化し、使用後できるだけ早くプレーンテキストデータキーをメモリから削除します。Amazon S3 は、暗号化されたデータキーをメタデータとして暗号化された CloudTrail ログファイルとともに保存します。

`GenerateDataKey` リクエストには、[暗号化コンテキスト](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html)の次の情報が含まれています。
+ CloudTrail トレイルの [Amazon リソースネーム（ARN）](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) 
+ S3 オブジェクトの ARN（CloudTrail ログファイル）

 `GenerateDataKey` リクエストごとに、CloudTrail ログに次の例のようなエントリが作成されます。このようなログエントリが表示されたら、CloudTrail が特定の証跡の AWS KMS `GenerateDataKey`オペレーションを呼び出して、特定のログファイルを保護したと判断できます。 は、同じログエントリに 2 回表示された、指定された KMS キーの下にデータキー AWS KMS を作成しました。

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "cloudtrail.amazonaws.com"
    },
    "eventTime": "2024-12-06T21:49:28Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKey",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "cloudtrail.amazonaws.com",
    "userAgent": "cloudtrail.amazonaws.com",
    "requestParameters": {
        "encryptionContext": {
            "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-east-1::trail/insights-trail",
            "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-logging-bucket1-123456789012-7867ab0c/AWSLogs/123456789012/CloudTrail/us-east-1/2024/12/06/123456789012_CloudTrail_us-east-1_20241206T2150Z_hVXmrJzjZk2wAM2V.json.gz"
        },
        "keySpec": "AES_256",
        "keyId": "arn:aws:kms:us-east-1:123456789012:key/example9-16ef-48ba-9163-example67a5a"
    },
    "responseElements": null,
    "requestID": "11117d14-9232-414a-b3d1-01bab4dc9f99",
    "eventID": "999e9a50-512c-4e2a-84a3-111a5f511111",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:123456789012:key/example9-16ef-48ba-9163-example67a5a"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "sharedEventID": "5e663acc-b7fd-4cdd-8328-0eff862952fa",
    "eventCategory": "Management"
}
```

### S3 バケットから暗号化されたログファイルを取得する
<a name="cloudtrail-details-get-log-file"></a>

S3 バケットから暗号化された CloudTrail ログファイルを取得するたびに、Amazon S3 は AWS KMS ユーザーに代わって に[https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)リクエストを送信し、ログファイルの暗号化されたデータキーを復号します。このリクエストに応答して、 は KMS キー AWS KMS を使用してデータキーを復号し、プレーンテキストのデータキーを Amazon S3 に送信します。Amazon S3 は、プレーンテキストデータキーを使用して CloudTrail ログファイルを復号化し、使用後できるだけ早くプレーンテキストデータキーをメモリから削除します。

`Decrypt` リクエストには、[暗号化コンテキスト](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html)の次の情報が含まれています。
+ CloudTrail トレイルの [Amazon リソースネーム（ARN）](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) 
+ S3 オブジェクトの ARN（CloudTrail ログファイル）

 `Decrypt` リクエストごとに、CloudTrail ログに次の例のようなエントリが作成されます。このようなログエントリが表示されたら、引き受けたロールが特定の証跡の AWS KMS `Decrypt`オペレーションと特定のログファイルの オペレーションを呼び出したと判断できます。 は、特定の KMS キーでデータキーを復 AWS KMS 号化しました。

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE",
        "arn": "arn:aws:sts::123456789012:assumed-role/Admin",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::123456789012:role/Admin",
                "accountId": "123456789012",
                "userName": "Admin"
            },
            "attributes": {
                "creationDate": "2024-12-06T22:04:04Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2024-12-06T22:26:34Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "encryptionContext": {
            "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-east-1:123456789012:trail/insights-trail",
            "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-logging-bucket1-123456789012-7867ab0c/AWSLogs/123456789012/CloudTrail/us-east-1/2024/12/06/123456789012_CloudTrail_us-east-1_20241206T0000Z_aAAsHbGBdye3jp2R.json.gz"
        },
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT"
    },
    "responseElements": null,
    "requestID": "1ab2d2d2-111a-2222-a59b-11a2b3832b53",
    "eventID": "af4d4074-2849-4b3d-1a11-a1aaa111a111",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:123456789012:key/example9-16ef-48ba-9163-example67a5a"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management",
    "sessionCredentialFromConsole": "true"
}
```