

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

# CloudTrail の Amazon S3 バケットポリシー
<a name="create-s3-bucket-policy-for-cloudtrail"></a>

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

Amazon S3 バケットを作成または変更して組織の証跡のログファイルを受け取れるようにするには、バケットポリシーを変更する必要があります。詳細については、「[を使用して組織の証跡を作成する AWS CLI](cloudtrail-create-and-update-an-organizational-trail-by-using-the-aws-cli.md)」を参照してください。

S3 バケットにログファイルを配信するためには、CloudTrail に必要なアクセス権限がある必要があり、[リクエスタ支払い](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html)バケットとして設定することはできません。

CloudTrail は、ポリシーに以下のフィールドを追加します。
+ 許可された SID。
+ バケット名。
+ CloudTrail のサービスプリンシパル名。
+ バケット名、プレフィックス (指定した場合）、 AWS アカウント ID など、ログファイルが保存されているフォルダの名前

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

**注記**  
証跡を不適切な設定 (S3 バケットに到達できない状態など) にすると、CloudTrail は 30 日間、S3 バケットへのログファイルの再配信を試みます。これらの配信試行イベントには標準の CloudTrail 料金が適用されます。証跡の不適切な設定による課金を避けるには、その証跡を削除する必要があります。

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

**S3 バケットポリシー**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSCloudTrailAclCheck20150319",
            "Effect": "Allow",
            "Principal": {"Service": "cloudtrail.amazonaws.com"},
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::amzn-s3-demo-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:::amzn-s3-demo-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-supported-regions.md)。

**Contents**
+ [CloudTrail ログ配信の既存のバケットを指定する](#specify-an-existing-bucket-for-cloudtrail-log-delivery)
+ [他のアカウントからログファイルを受信](#aggregration-option)
+ [組織の証跡のログファイルを保存するために使用する Amazon S3 バケットを作成または更新する](#org-trail-bucket-policy)
+ [Amazon S3 バケットポリシーのトラブルシューティング](#troubleshooting-s3-bucket-policy)
  + [一般的な Amazon S3 ポリシー設定のエラー](#s3-bucket-policy-for-multiple-regions)
  + [既存のバケットのプレフィックスを変更する](#cloudtrail-add-change-or-remove-a-bucket-prefix)
+ [その他のリソース](#cloudtrail-S3-bucket-policy-resources)

## CloudTrail ログ配信の既存のバケットを指定する
<a name="specify-an-existing-bucket-for-cloudtrail-log-delivery"></a>

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

**注記**  
ベストプラクティスとして、CloudTrail ログ用に専用 S3 バケットを使用します。

**必要な CloudTrail ポリシーを Amazon S3 バケットに追加するには**

1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. CloudTrail でログファイルを配信するバケットを選択し、**[Permissions]** (アクセス許可) を選択します。

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

1. [S3 bucket policy](#s3-bucket-policy) を [**Bucket Policy Editor**] ウィンドウにコピーします。イタリック体のプレースホルダーを、バケット、プレフィックス、アカウント番号の名前に置き換えます。証跡の作成時にプレフィックスを指定した場合は、ここに含めます。プレフィックスは、バケットにフォルダのような組織を作成する S3 オブジェクトキーへのオプションの追加です。
**注記**  
既存のバケットにすでに 1 つ以上のポリシーがアタッチされている場合は、そのポリシーに CloudTrail アクセスのステートメントを追加します。バケットにアクセスするユーザーに適していることを確認するために、作成したアクセス権限のセットを評価します。

## 他のアカウントからログファイルを受信
<a name="aggregration-option"></a>

複数の AWS アカウントから 1 つの S3 バケットにログファイルを配信するように CloudTrail を設定できます。詳細については、「[複数のアカウントから CloudTrail ログファイルを受け取る他のアカウントでコールされたデータイベントのバケット所有者アカウント ID を秘匿化する](cloudtrail-receive-logs-from-multiple-accounts.md)」を参照してください。

## 組織の証跡のログファイルを保存するために使用する Amazon S3 バケットを作成または更新する
<a name="org-trail-bucket-policy"></a>

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

以下は、組織の管理アカウントが所有する *amzn-s3-demo-bucket* という名前が付けられた Amazon S3 バケット用ポリシのー例です。*amzn-s3-demo-bucket*、*region*、*managementAccountID*、*trailName*、*o-organizationID* を組織の値に置き換える

このバケットには、3 つのステートメントがあります。
+ 最初のステートメントで、CloudTrail は Amazon S3 バケット上の Amazon S3 `GetBucketAcl` アクションを呼び出すことができます。
+ 2 番目のステートメントでは、証跡が組織の証跡からそのアカウントの証跡にのみ変更された場合にログに記録することを許可します。
+ 3 番目のステートメントでは、組織証跡をログに記録することが可能になります。

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSCloudTrailAclCheck20150319",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "cloudtrail.amazonaws.com"
                ]
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::amzn-s3-demo-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:::amzn-s3-demo-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:::amzn-s3-demo-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 ログファイルの共有](cloudtrail-sharing-logs.md)」を参照してください。

## Amazon S3 バケットポリシーのトラブルシューティング
<a name="troubleshooting-s3-bucket-policy"></a>

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

**注記**  
証跡を不適切な設定 (S3 バケットに到達できない状態など) にすると、CloudTrail は 30 日間、S3 バケットへのログファイルの再配信を試みます。これらの配信試行イベントには標準の CloudTrail 料金が適用されます。証跡の不適切な設定による課金を避けるには、その証跡を削除する必要があります。

### 一般的な Amazon S3 ポリシー設定のエラー
<a name="s3-bucket-policy-for-multiple-regions"></a>

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

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

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

**Example サービスプリンシパル名を使用したバケットポリシーの例**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSCloudTrailAclCheck20150319",
            "Effect": "Allow",
            "Principal": {"Service": "cloudtrail.amazonaws.com"},
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::amzn-s3-demo-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:::amzn-s3-demo-bucket/[optionalPrefix]/AWSLogs/myAccountID/*",
            "Condition": {"StringEquals": {
                "s3:x-amz-acl": "bucket-owner-full-control",
                "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:trail/trailName"
                }
            }
        }
    ]
}
```

### 既存のバケットのプレフィックスを変更する
<a name="cloudtrail-add-change-or-remove-a-bucket-prefix"></a>

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

**Amazon S3 バケットのログファイルプレフィックスを更新するには**

1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

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

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

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

   ```
   "Action": "s3:PutObject",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/myAccountID/*",
   ```

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

1. CloudTrail コンソールの [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/) を開いてください。

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

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

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

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

## その他のリソース
<a name="cloudtrail-S3-bucket-policy-resources"></a>

S3 バケットポリシーの詳細については、Amazon Simple Storage Service ユーザーガイドの「[バケットポリシーの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)」を参照してください。