

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

# 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"
}
```