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

アクセスポリシーを作成してサードパーティにアクセス権限を付与する

アカウント A は、アカウント Z (シナリオ 2 のサードパーティ分析業者) 用の IAM ロールを作成する必要があります。ロールを作成すると、AWS によって信頼関係が自動的に作成され、その信頼関係により、アカウント Z がロールの割り当て先として信頼されます。アカウント Z がどのアクションを実行できるかは、ロールのアクセスポリシーによって指定されます。ロールとロールポリシーの作成の詳細については、ロールの作成 を参照してください。

たとえば、AWS によって作成された信頼関係で、アカウント Z がアカウント A の作成したロールの割り当て先として信頼済みと指定されているとします。次に示すのは、その場合の信頼ポリシーの例です。

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

アカウント Z 用のロールを作成する際に外部 ID を指定した場合は、アカウント Z によって割り当てられた一意の ID をテストする Condition 要素が、アクセスポリシー内に追加されます。このテストは、ロールの割り当て時に実行されます。次の例では、アクセスポリシーに Condition 要素が含まれています。

詳細については、IAM ユーザーガイド の「AWS リソースへのアクセス権をサードパーティーに付与するときに外部 ID を使用する方法」を参照してください。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::account-Z-id:root"}, "Action": "sts:AssumeRole", "Condition": {"StringEquals": {"sts:ExternalId": "external-ID-issued-by-account-Z"}} }] }

また、アカウント A のアクセスポリシーを作成して、アカウント Z が Amazon S3 バケットからすべてのログを読み取れることを指定する必要もあります。アクセスポリシーは、次の例のようになります。Resource 値の末尾のワイルドカード (*) は、アカウント Z が、アクセス権限を付与された S3 バケット内の任意のログファイルにアクセスできることを示しています。

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

アカウント Z のロールを作成し、適切な信頼関係とアクセスポリシーを指定したら、アカウント Z 内の IAM ユーザーにプログラムでロールを割り当てて、ユーザーがバケットからログファイルを読み取れるようにする必要があります。詳細については、「ロールを割り当てる」を参照してください。