

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

# 複数のアカウントから CloudTrail ログファイルを受け取る
<a name="cloudtrail-receive-logs-from-multiple-accounts"></a>

CloudTrail で複数のログファイルを 1 つの Amazon S3 バケット AWS アカウント に配信できます。たとえば、 AWS アカウント アカウント IDs が 111111111111、222222222222、333333333333、444444444444 の 4 つの があり、これらの 4 つのアカウントすべてからアカウント 111111111111 に属するバケットにログファイルを配信するように CloudTrail を設定するとします。これを行うには、以下の手順を実行します。

1. 配信先バケットが配置されるアカウント (この例では 111111111111) で、証跡を作成します。他のアカウントについては、まだ証跡を作成しないでください。

   手順については、「[コンソールでの証跡の作成](cloudtrail-create-a-trail-using-the-console-first-time.md#creating-a-trail-in-the-console)」を参照してください。

1. 配信先バケットのバケットポリシーを更新して、CloudTrail にクロスアカウントのアクセス権限を付与します。

   手順については、「[複数のアカウントのバケットポリシーの設定](cloudtrail-set-bucket-policy-for-multiple-accounts.md)」を参照してください。

1. アクティビティをログ記録したい他のアカウント (この例では 222222222222、333333333333、444444444444) で、証跡を作成します。各アカウントで証跡を作成する場合は、ステップ 1 で指定したアカウント (この例では 111111111111) に属する Amazon S3 バケットを指定します。手順については、「[追加アカウントでの証跡の作成](turn-on-cloudtrail-in-additional-accounts.md)」を参照してください。
**注記**  
SSE-KMS 暗号化を有効にする場合、KMS キーポリシーは、CloudTrail がキーを使用してログファイルとダイジェストファイルを暗号化し、ユーザーが暗号化されていない形式でログファイルダイジェストファイルまたはダイジェストファイルを読み取れるようにする必要があります。キーポリシーを手動で編集する方法については、[CloudTrail の AWS KMS キーポリシーを設定する](create-kms-key-policy-for-cloudtrail.md) を参照してください。

## 他のアカウントでコールされたデータイベントのバケット所有者アカウント ID を秘匿化する
<a name="cloudtrail-receive-logs-s3-owner-id-redaction"></a>

従来、Amazon S3 データイベント API 発信者 AWS アカウント の で CloudTrail データイベントが有効になっている場合、CloudTrail はデータイベント ( など) で S3 バケット所有者のアカウント ID を表示していました`PutObject`。 Amazon S3 これは、バケット所有者アカウントで S3 データイベントが有効ではない場合も発生します。

現在、次の両方の条件を満たす場合、CloudTrail は `resources` ブロックの S3 バケット所有者のアカウント ID を削除します。
+ データイベント API コールは、Amazon S3 バケット所有者 AWS アカウント とは異なる からのものです。
+ API 発信者が発信者アカウントでのみ `AccessDenied` エラーを受信した場合。

API コールを実行したリソースの所有者は、引き続き完全なイベントを受信します。

次のイベントレコードのスニペットは、期待される動作の一例です。`Historic` スニペットでは、S3 バケット所有者のアカウント ID 123456789012 が、別のアカウントから API 発信者に表示されます。現在の動作例では、バケット所有者のアカウント ID は表示されません。

```
# Historic

"resources": [
    {
        "type": "AWS::S3::Object",
        "ARNPrefix": "arn:aws:s3:::amzn-s3-demo-bucket2/"
    },
    {
        "accountId": "123456789012",
        "type": "AWS::S3::Bucket",
        "ARN": "arn:aws:s3:::amzn-s3-demo-bucket2"
    }
]
```

以下は現在の動作です。

```
# Current

"resources": [
    {
        "type": "AWS::S3::Object",
        "ARNPrefix": "arn:aws:s3:::amzn-s3-demo-bucket2/"
    },
    {
        "accountId": "",
        "type": "AWS::S3::Bucket",
        "ARN": "arn:aws:s3:::amzn-s3-demo-bucket2"
    }
]
```

**Topics**
+ [他のアカウントでコールされたデータイベントのバケット所有者アカウント ID を秘匿化する](#cloudtrail-receive-logs-s3-owner-id-redaction)
+ [複数のアカウントのバケットポリシーの設定](cloudtrail-set-bucket-policy-for-multiple-accounts.md)
+ [追加アカウントでの証跡の作成](turn-on-cloudtrail-in-additional-accounts.md)

# 複数のアカウントのバケットポリシーの設定
<a name="cloudtrail-set-bucket-policy-for-multiple-accounts"></a>

複数のアカウントからログファイルを受け取るバケットの場合、そのバケットポリシーは、指定したすべてのアカウントからログファイルを書き込むアクセス権限を CloudTrail に付与する必要があります。つまり、指定された各アカウントからログファイルを書き込むためのアクセス権限を CloudTrail に付与するために、送信先バケットでバケットポリシーを変更する必要があります。

**注記**  
セキュリティ上の理由から、権限のないユーザーは `S3KeyPrefix` パラメータとして `AWSLogs/` を含む証跡を作成することはできません。

**複数のアカウントからファイルを受信できるようにバケットのアクセス権限を変更するには**

1.  この例では、バケット (111111111111) を所有するアカウント AWS マネジメントコンソール を使用して にサインインし、Amazon S3 コンソールを開きます。

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

1. **[Bucket policy]** (バケットポリシー) で **[Edit]** (編集) を選択します。

1. 既存のポリシーを変更して、このバケットに配信するログファイルを持つ追加のアカウントごとに行を追加します。次のサンプルポリシーを参照して、2 番目のアカウント ID を指定する下線が引かれた `Resource` 行に注意してください。セキュリティのベストプラクティスとして、`aws:SourceArn` 条件キーを Amazon S3 バケットポリシーに追加します。これにより、S3 バケットへの不正アクセスを防止できます。既存の証跡がある場合は、必ず 1つまたは複数の条件キーを追加してください。
**注記**  
 AWS アカウント ID は、先頭にゼロを含む 12 桁の数字です。

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

****  

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

------

# 追加アカウントでの証跡の作成
<a name="turn-on-cloudtrail-in-additional-accounts"></a>

コンソールまたは を使用して AWS CLI 、追加の で証跡を作成し AWS アカウント 、ログファイルを 1 つの Amazon S3 バケットに集約できます。または、組織証跡を作成して、組織の一部 AWS アカウント であるすべての を記録することもできます AWS Organizations。詳細については、「[組織の証跡の作成](creating-trail-organization.md)」を参照してください。

## コンソールを使用して追加の AWS アカウントに証跡を作成する
<a name="turn-on-cloudtrail-in-additional-accounts-console"></a>

CloudTrail コンソールを使用して、追加アカウントで証跡を作成できます。

1. 証跡を作成するアカウント AWS マネジメントコンソール で にサインインします。コンソールを使用して証跡を作成するには、「[コンソールでの証跡の作成](cloudtrail-create-a-trail-using-the-console-first-time.md#creating-a-trail-in-the-console)」の手順に従います。

1. **ストレージの場所**で、**既存の S3 バケットを使用**を選択します。テキストボックスに、アカウント全体のログファイルの保存に使用するバケットの名前を入力します。
**注記**  
バケットポリシーでは、バケットへの書き込み権限を CloudTrail に付与する必要があります。バケットポリシーを手動で編集する方法については、[複数のアカウントのバケットポリシーの設定](cloudtrail-set-bucket-policy-for-multiple-accounts.md) を参照してください。  
![\[既存の S3 バケットを使用する\]](http://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/images/cloudtrail-use-existing-bucket.png)

1. **[プレフィックス]** には、アカウント全体のログファイルの保存に使用するプレフィックスを入力します。バケットポリシーで指定したものとは異なるプレフィックスを使用する場合は、送信先バケットでバケットポリシーを編集して、CloudTrail がこの新しいプレフィックスを使用してバケットにログファイルを書き込めるようにする必要があります。

## CLI を使用して追加の AWS アカウントで証跡を作成する
<a name="turn-on-cloudtrail-in-additional-accounts-cli"></a>

 AWS コマンドラインツールを使用して、追加のアカウントに証跡を作成し、ログファイルを 1 つの Amazon S3 バケットに集約できます。これらのツールの詳細については、「*AWS CLI Command Reference*」の「[cloudtrail](https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/)」を参照してください。

**create-trail** コマンドを使用して以下を指定し、証跡を作成します。
+ `--name` は、証跡の名前を指定します。
+ `--s3-bucket-name` は、アカウント全体のログファイルの保存に使用する Amazon S3 バケットを指定します。
+ `--s3-prefix` は、ログファイルの配信パスのプレフィックスを指定します (オプション)。
+ `--is-multi-region-trail` は、この証跡が、作業しているパーティション内のすべての AWS リージョンのイベントを記録するように指定します。

アカウントが AWS リソースを実行しているリージョンごとに 1 つの証跡を作成できます。

次のコマンド例は、 AWS CLIを使用して追加のアカウントの証跡を作成する方法を示しています。これらのアカウントのログファイルが、最初のアカウント (この例では 111111111111) で作成したバケットに配信されるようにするには、`--s3-bucket-name` オプションでバケット名を指定します。Amazon S3 バケット名は、グローバルに一意です。

```
aws cloudtrail create-trail --name my-trail --s3-bucket-name amzn-s3-demo-bucket --is-multi-region-trail
```

コマンドを実行すると、以下のような出力が表示されます。

```
{
    "IncludeGlobalServiceEvents": true, 
    "Name": "AWSCloudTrailExample", 
    "TrailARN": "arn:aws:cloudtrail:us-east-2:222222222222:trail/my-trail", 
    "LogFileValidationEnabled": false, 
    "IsMultiRegionTrail": true, 
    "IsOrganizationTrail": false,
    "S3BucketName": "amzn-s3-demo-bucket"
}
```

 AWS コマンドラインツールから CloudTrail を使用する方法の詳細については、[CloudTrail コマンドラインリファレンス](https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/index.html)」を参照してください。