の Amazon S3 バケットポリシー CloudTrail - AWS CloudTrail

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

の Amazon S3 バケットポリシー CloudTrail

デフォルトでは、Amazon S3 バケットとオブジェクトはプライベートです。リソース所有者 (バケットを作成した AWS アカウント) のみが、バケットとそれに含まれるオブジェクトにアクセスできます。リソース所有者は、アクセスポリシーを記述することで他のリソースおよびユーザーにアクセス権限を付与することができます。

Amazon S3 バケットを作成または変更して組織の証跡のログファイルを受け取れるようにするには、バケットポリシーを変更する必要があります。詳細については、「以下の組織向けにトレイルを作成する方法 AWS Command Line Interface」を参照してください。

S3 CloudTrail バケットにログファイルを配信するには、必要な権限が必要で、リクエスタ支払いバケットとして設定することはできません

CloudTrail 以下のフィールドをポリシーに自動的に追加します。

  • 許可された SID。

  • バケット名。

  • のサービスプリンシパル名 CloudTrail

  • バケット名、プレフィックス (指定した場合)、 AWS アカウント ID を含む、ログファイルが保存されているフォルダーの名前

セキュリティのベストプラクティスとして、aws:SourceArn 条件キーを Amazon S3 バケットポリシーに追加します。IAM aws:SourceArn グローバル条件キーを使用すると、特定の 1 つまたは複数の証跡についてのみ S3 CloudTrail バケットに書き込むことができます。aws:SourceArn の値は常に、ログを格納するためにバケットを使用している証跡の ARN (または証跡 ARN の配列) になります。既存の証跡の S3 バケットポリシーに aws:SourceArn 条件キーを必ず追加してください。

以下のポリシーでは、 CloudTrail サポートされているバケットにログファイルを書き込むことができます。 AWS リージョンmyBucketName[OptionalPrefix]/myAccountId、regionTrailName を、設定に適した値に置き換えてください。

S3 バケットポリシー

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myBucketName", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/[optionalPrefix]/AWSLogs/myAccountID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } } ] }

の詳細については、を参照してください。 AWS リージョンCloudTrail サポートされているリージョン

CloudTrail ログ配信用の既存のバケットを指定する

ログファイル配信の保存場所として既存の S3 バケットを指定した場合は、 CloudTrail バケットへの書き込みを許可するポリシーをバケットにアタッチする必要があります。

注記

ベストプラクティスとして、 CloudTrail ログ専用の S3 バケットを使用してください。

CloudTrail 必要なポリシーを Amazon S3 バケットに追加するには
  1. https://console.aws.amazon.com/s3/でAmazon S3 コンソールを開きます。

  2. CloudTrail ログファイルを配信するバケットを選択し、[アクセス権] を選択します。

  3. [編集] を選択します。

  4. S3 bucket policy を [Bucket Policy Editor] ウィンドウにコピーします。イタリック体のプレースホルダーを、バケット、プレフィックス、アカウント番号の名前に置き換えます。証跡の作成時にプレフィックスを指定した場合は、ここに含めます。プレフィックスは、バケットにフォルダのような組織を作成する S3 オブジェクトキーへのオプションの追加です。

    注記

    既存のバケットにすでに 1 つ以上のポリシーがアタッチされている場合は、 CloudTrail そのポリシーへのアクセスに関するステートメントを追加します。バケットにアクセスするユーザーに適していることを確認するために、作成したアクセス権限のセットを評価します。

他のアカウントからログファイルを受信

CloudTrail AWS 複数のアカウントのログファイルを 1 つの S3 バケットに配信するように設定できます。詳細については、「複数のアカウントからの CloudTrail ログファイルの受信」を参照してください。

組織の証跡のログファイルを保存するために使用する Amazon S3 バケットを作成または更新する

組織の証跡のログファイルを受信するには、Amazon S3 バケットを指定する必要があります。このバケットには、 CloudTrail 組織のログファイルをバケットに入れることを許可するポリシーが必要です。

以下は、myOrganizationBucket組織の管理アカウントが所有するという名前の Amazon S3 バケットのポリシーの例です。リージョンmyOrganizationBucket管理アカウント ID、トレイル名、O-O-O-OrganizationID を自分の組織の値に置き換えてください

このバケットには、3 つのステートメントがあります。

  • 最初のステートメントでは CloudTrail 、Amazon S3 バケットで Amazon S3 GetBucketAcl アクションを呼び出すことができます。

  • 2 番目のステートメントでは、証跡が組織の証跡からそのアカウントの証跡にのみ変更された場合にログに記録することを許可します。

  • 3 番目のステートメントでは、組織証跡をログに記録することが可能になります。

ポリシー例には、Amazon S3 バケットポリシーの aws:SourceArn 条件キーが含まれています。IAM aws:SourceArn グローバル条件キーは、特定の 1 つまたは複数の証跡についてのみ S3 CloudTrail バケットに書き込まれるようにするのに役立ちます。組織の証跡の場合、aws:SourceArn の値は管理アカウントで保持され、管理アカウント ID を使用する証跡の ARN である必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myOrganizationBucket", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myOrganizationBucket/AWSLogs/managementAccountID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailOrganizationWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myOrganizationBucket/AWSLogs/o-organizationID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } } ] }

このポリシー例では、メンバーアカウントのユーザーが組織用に作成されたログファイルにアクセスすることを許可していません。デフォルトでは、組織のログファイルは管理アカウントにのみアクセスできます。メンバーアカウントの IAM ユーザーに対して Amazon S3 バケットへの読み取りアクセスを許可する方法については、「AWS アカウント間での CloudTrail ログファイルを共有する」を参照してください。

Amazon S3 バケットポリシーのトラブルシューティング

以下のセクションでは、S3 バケットポリシーをトラブルシューティングする方法について説明します。

一般的な Amazon S3 ポリシー設定のエラー

証跡の作成または更新の一環として新しいバケットを作成すると、 CloudTrail必要な権限がバケットにアタッチされます。バケットポリシーでは"cloudtrail.amazonaws.com"、 CloudTrail すべてのリージョンにログを配信できるサービスプリンシパル名を使用します。

あるリージョンのログを配信していない場合は CloudTrail 、 CloudTrail バケットに各リージョンのアカウント ID を指定する古いポリシーが適用されている可能性があります。このポリシーでは、 CloudTrail指定されたリージョンにのみログを配信する権限が付与されます。

ベストプラクティスとして、 CloudTrail サービスプリンシパルの権限を使用するようにポリシーを更新してください。これを行うには、アカウント ID ARN をサービスプリンシパル名 "cloudtrail.amazonaws.com" に置き換えます。これにより、 CloudTrail 現在のリージョンと新しいリージョンのログを配信する権限が付与されます。セキュリティのベストプラクティスとして、Amazon S3 バケットポリシーに aws:SourceArn または aws:SourceAccount 条件キーを追加します。これにより、S3 バケットへの不正なアカウントアクセスを防止できます。既存の証跡がある場合は、必ず 1つまたは複数の条件キーを追加してください。次の例は、推奨されるポリシーの設定を示しています。[optionalPrefix]/myAccountId、リージョンTrailName を、設定に適した値に置き換えてくださいmyBucketName

例 サービスプリンシパル名を使用したバケットポリシーの例
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myBucketName", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/[optionalPrefix]/AWSLogs/myAccountID/*", "Condition": {"StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName" } } } ] }

既存のバケットのプレフィックスを変更する

証跡からログを受け取る S3 バケットのログファイルプレフィックスを追加、変更、または削除しようとすると、次のエラー 「There is a problem with the bucket policy (バケットバケットポリシーに問題があります) 」が表示されることがあります。その場合、バケットポリシーに問題があります。誤ったプレフィックスを使用しているバケットポリシーは、証跡がログをバケットに配信されないようにすることができます。この問題を解決するには、Amazon S3 コンソールを使用してバケットポリシーのプレフィックスを更新し、 CloudTrailコンソールを使用してトレイルのバケットに同じプレフィックスを指定します。

Amazon S3 バケットのログファイルプレフィックスを更新するには
  1. https://console.aws.amazon.com/s3/でAmazon S3 コンソールを開きます。

  2. プレフィックスを変更するバケットを選択し、[Permissions] (アクセス許可) を選択します。

  3. [編集] を選択します。

  4. バケットポリシーで、s3:PutObject アクションの下で、Resource エントリを編集して、必要に応じてログファイルprefix/ を追加、変更、削除します。

    "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/prefix/AWSLogs/myAccountID/*",
  5. [保存] を選択します。

  6. https://console.aws.amazon.com/cloudtrail/ CloudTrail でコンソールを開きます。

  7. 証跡を選択し、Storage location の場合は鉛筆アイコンをクリックして、バケットの設定を編集します。

  8. S3 バケット の場合は、変更するプレフィックスを持つバケットを選択します。

  9. Log file prefix の場合は、バケットポリシーに入力したプレフィックスに一致するようにプレフィックスを更新します。

  10. [Save] (保存) を選択します。

追加リソース

S3 バケットおよびポリシーの詳細については、「Amazon Simple Storage Service ユーザーガイド」を参照してください。