設定AWS KMSCloudTrail の重要なポリシー - AWS CloudTrail

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

設定AWS KMSCloudTrail の重要なポリシー

カスタマーマスターキー (CMK) を作成するには次の 3 つの方法があります。

  • CloudTrail コンソール

  • IAM コンソール

  • The AWS CLI

注記

CloudTrail コンソールに CMK を作成する場合、CloudTrail は必要な CMK ポリシーを追加します。ポリシーステートメントを手動で追加する必要はありません。「CloudTrail コンソールで作成されたデフォルトのキーポリシー」を参照してください。

IAM コンソールまたは CMK で CMK を作成する場合AWS CLICloudTrail で使用できるように、ポリシーセクションをキーに追加する必要があります。このポリシーは、CloudTrail がキーを使用してログファイルを暗号化することと、指定したユーザーが暗号化されていない形式でログファイルを読み取ることを許可する必要があります。

以下のリソースを参照してください。

  • AWS CLI で CMK を作成するには、「create-key」を参照してください。

  • CloudTrail の CMK ポリシーを編集するには、キーポリシーの編集()AWS Key Management Service開発者ガイド

  • CloudTrail がどのように使用されるかに関する技術的な詳細についてはAWS KMS「」を参照してください。その方法はAWS CloudTrailuseAWS KMS()AWS Key Management Service開発者ガイド

CloudTrail での使用に必要な CMK ポリシーセクション

IAM コンソールで CMK を作成した場合、またはAWS CLIには、CloudTrail と連携するために、少なくとも 3 つのステートメントを CMK に追加する必要があります。CloudTrail コンソールを使用して作成された CMK のステートメントを手動で追加する必要はありません。

  1. CloudTrail ログ暗号化の権限を有効にします。「暗号化権限の付与」を参照してください。

  2. CloudTrail ログ復号の権限を有効にします。「復号の権限を付与する」を参照してください。既存の S3 バケットをS3 バケットキー,kms:Decryptアクセス許可は、SSE-KMS 暗号化を有効にした証跡を作成または更新するために必要です。

  3. CloudTrail で CMK プロパティを記述できるようにします。「CloudTrail で CMK プロパティを記述できるようにします。」を参照してください。

注記

新しいセクションを CMK ポリシーに追加するときは、ポリシー内の既存のセクションを変更しないでください。

警告

CMK が無効になっているか CMK ポリシーが CloudTrail 用に正しく設定されていない場合、CloudTrail は CMK の問題が修正されるまでログを配信しません。

暗号化権限の付与

例 CloudTrail に特定のアカウントに代わってログを暗号化する権限を与える

CloudTrail には、CMK を使用して特定のアカウントに代わってログを暗号化する明示的な権限が必要です。アカウントを指定するには、CMK ポリシーに次の必要なステートメントを追加し、必要に応じて aws-account-id を変更します。さらにアカウント ID をEncryptionContextセクションをクリックして、これらのアカウントで CloudTrail を使用して CMK を使用してログファイルを暗号化できます。

{ "Sid": "Allow CloudTrail to encrypt logs", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": [ "arn:aws:cloudtrail:*:aws-account-id:trail/*" ] } } }

次のポリシーステートメントの例は、別のアカウントが CMK を使用して CloudTrail ログを暗号化する方法を示しています。

Scenario

  • 自分の CMK はアカウント 111111111111 にあります。

  • 自分も アカウント 222222222222 も両方ともログを暗号化します。

このポリシーでは、キーで暗号化する 1 つ以上のアカウントを CloudTrail に追加します。EncryptionContext。これにより、CloudTrail は自分のキーを使用して、自分が指定したアカウントのログのみを暗号化するように制限されます。アカウント 222222222222 のルートにログを暗号化する権限を付与すると、そのアカウントの管理者は、IAM ユーザーポリシーを変更して、必要に応じてアカウント 222222222222 の他のユーザーに暗号化権限を割り当てることができます。

CMK ポリシーステートメント:

{ "Sid": "Enable CloudTrail Encrypt Permissions", "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/*" ] } } }

CloudTrail で使用する CMK ポリシーを編集する手順については、キーポリシーの編集()AWS Key Management Service開発者ガイド の最初のリリースです。

復号の権限を付与する

CloudTrail 設定に CMK を追加する前に、必要なすべてのユーザーに復号する権限を与えることが重要です 暗号化の権限はあっても、復号の権限がないユーザーは、暗号化されたログを読み取ることはできません。既存の S3 バケットをS3 バケットキー,kms:Decryptアクセス許可は、SSE-KMS 暗号化を有効にした証跡を作成または更新するために必要です。

CloudTrail ログ復号の権限を有効にします

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

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

CMK で復号するために権限をアカウントのユーザーに与える

Example

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

例 Scenario

  • CMK、S3 バケット、および IAM ユーザーの Bob はアカウント 111111111111 の中です。

  • S3 バケットの CloudTrail ログを復号する権限を IAM ユーザーの Bob に与えます。

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

CMK ポリシーステートメント:

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:user/Bob" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

トピック

    他のアカウントのユーザーが CMK で復号する権限を与える

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

    別のアカウントのバケットのユーザーがログを復号する権限を与える

    Example

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

    Scenario

    • 自分の CMK はアカウント 111111111111 にあります。

    • IAM ユーザーである Alice と S3 バケットは、アカウント 222222222222 の中です。

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

    CMK ポリシーステートメント:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::222222222222:root" ] }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

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

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

    別のアカウントのユーザーがバケットからログを復号する権限を与える

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

    例 Scenario

    • CMK と S3 バケットはアカウント 111111111111 にあります。

    • バケットからログを読み取るユーザーは、アカウント 222222222222 です。

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

    CMK ポリシーステートメント:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::11111111111:role/CloudTrailReadRole" ] }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

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

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

    CloudTrail で使用する CMK ポリシーを編集する手順については、キーポリシーの編集()AWS Key Management Service開発者ガイド

    CloudTrail で CMK プロパティを記述できるようにします。

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

    { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*" }

    CMK ポリシーの編集方法については、キーポリシーの編集()AWS Key Management Service開発者ガイド