が AWS CloudTrail を使用する方法 AWS KMS - AWS CloudTrail

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

が AWS CloudTrail を使用する方法 AWS KMS

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

重要

AWS CloudTrail と Amazon S3 は、対称 AWS KMS keysのみをサポートします。非対称 KMS キーを使用して CloudTrail ログを暗号化することはできません。KMS キーが対称か非対称かを判断する方法については、「AWS Key Management Service デベロッパーガイド」の「さまざまなキータイプの特定」を参照してください。

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

KMS キーが証跡にいつ使用されるかを理解する

を使用した CloudTrail ログファイルの暗号化 AWS KMS は、 AWS KMS key (SSE-KMS) を使用したサーバー側の暗号化と呼ばれる Amazon S3 機能に基づいています。SSE-KMS の詳細については、Amazon Simple Storage Service ユーザーガイドの AWS KMS 「キーによるサーバー側の暗号化の使用 (SSE-KMS)」を参照してください。

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

でログファイルを暗号化するように CloudTrail を設定する AWS KMS key

KMS キーを使用するように CloudTrail 設定を更新すると、CloudTrail は にGenerateDataKeyリクエストを送信 AWS KMS して、KMS キーが存在し、CloudTrail が暗号化に使用するアクセス許可を持っていることを確認します。CloudTrail は、結果のデータキーを使用しません。

GenerateDataKey リクエストには、暗号化コンテキストの次の情報が含まれています。

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 バケットにログファイルを格納します

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

GenerateDataKey リクエストには、暗号化コンテキストの次の情報が含まれています。

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 バケットから暗号化されたログファイルを取得する

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

Decrypt リクエストには、暗号化コンテキストの次の情報が含まれています。

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