AWS CloudTrail
ユーザーガイド (Version 1.0)

自分が所有するアカウントへのアクセスを許可するアカウントポリシーの作成

シナリオ 1 では、アカウント A の管理ユーザーは、CloudTrail がアカウント B および C のログファイルを書き込む Amazon S3 バケットを完全に制御することができます。各ビジネスユニットのログファイルを、それらを作成したビジネスユニットと共有します。ただし、ユニットが他のユニットのログファイルを読み取ることはできないようにします。

たとえば、アカウント B のログファイルをアカウント B と共有し、アカウント C とは共有しない場合は、アカウント A に、アカウント B が信頼されたアカウントであることを指定する新しい IAM ロールを作成する必要があります。このロールの信頼ポリシーは、アカウント A によって作成されたロールを継承できるようにアカウント B が信頼されることを指定し、次の例のようになります。コンソールを使用してロールを作成した場合は、信頼ポリシーが自動的に作成されます。SDK を使用してロールを作成する場合は、CreateRole API へのパラメータとして信頼ポリシーを指定する必要があります。CLI を使用してロールを作成する場合は、create-role CLI コマンドで信頼ポリシーを指定する必要があります。

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

アカウント B はアカウント B がログファイルを書き込んだ場所からのみ読み取ることができることを指定するアクセスポリシーも作成する必要があります。アクセスポリシーは次のようになります。集約プロセス中にアカウント B の CloudTrail をオンにした場合、[Resource] ARN にはアカウント B の 12 桁のアカウント ID と指定したプレフィックス (存在する場合) が含まれます。プレフィックスを指定する方法については、「追加のアカウントで CloudTrail を有効にする」を参照してください。

重要

アクセスポリシーのプレフィックスが、アカウント B に対して CloudTrail をオンにしたときに指定したプレフィックスと完全に同じであることを確認する必要があります。そうでない場合は、アカウント A で IAM ロールのアクセスポリシーを編集して、アカウント B の実際のプレフィックスを組み込む必要があります。ロールのアクセスポリシーのプレフィックスが、アカウント B で CloudTrail をオンにしたときに指定したプレフィックスと完全に同じではない場合、アカウント B はログファイルにアクセスできません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::bucket-name/prefix/AWSLogs/account-B-id/*" }, { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::bucket-name" } ] }

アカウント C に対して作成するロールは、アカウント B 用に作成したロールとほぼ同じです。各アカウントが、CloudTrail によってそのアカウントのログファイルが書き込まれた場所からのみ読み取ることができるように、各ロールのアクセスポリシーに適切なアカウント ID とプレフィックスが含まれている必要があります。

各アカウントのロールを作成し、適切な信頼ポリシーとアクセスポリシーを指定した後、また、各アカウントの IAM ユーザーがそのアカウントの管理者によってアクセスを許可された後、アカウント B または C の IAM ユーザーは、プログラムによってロールを継承できます。

各アカウントのロールを作成し、適切な信頼ポリシーとアクセスポリシーを指定した後、新たに信頼されたアカウント (B または C) の IAM ユーザーは、Amazon S3 バケットからのログファイルを読み取るためにロールをプログラムによって継承する必要があります。

詳細については、「ロールを割り当てる」を参照してください。