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

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

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

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

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

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

CloudTrail は、ポリシーに次のフィールドを追加します。

  • 許可された SID。

  • バケット名。

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

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

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

次のポリシーでは CloudTrail 、 がサポートされている からバケットにログファイルを書き込むことを許可します AWS リージョン。DOC-EXAMPLE-BUCKET [optionalPrefix]/myAccountIDリージョン 、および trailName を設定に適した値に置き換えます。

S3 バケットポリシー

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "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:::DOC-EXAMPLE-BUCKET/[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 にアクセスするためのステートメントを追加します。バケットにアクセスするユーザーに適していることを確認するために、作成したアクセス権限のセットを評価します。

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

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

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

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

以下は、組織の管理アカウントが所有する DOC-EXAMPLE-BUCKET という名前の Amazon S3 バケットのポリシーの例です。DOC-EXAMPLE-BUCKET リージョン managementAccountIDtrailName、および o-organizationID を組織の値に置き換えます。

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

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

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

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

ポリシー例には、Amazon S3 バケットポリシーの aws:SourceArn 条件キーが含まれています。IAM グローバル条件キーは、 が特定の証跡または証跡に対してのみ S3 バケットに CloudTrail 書き込むようにするaws:SourceArnのに役立ちます。組織の証跡の場合、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:::DOC-EXAMPLE-BUCKET", "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:::DOC-EXAMPLE-BUCKET/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:::DOC-EXAMPLE-BUCKET/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 を指定する古いポリシーがある可能性があります。 IDs このポリシーは CloudTrail、指定されたリージョンに対してのみログを配信するアクセス許可を付与します。

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

例 サービスプリンシパル名を使用したバケットポリシーの例
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "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:::DOC-EXAMPLE-BUCKET/[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:::DOC-EXAMPLE-BUCKET/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 ユーザーガイドの「バケットポリシーの使用」を参照してください。