クロスアカウントアクセスの設定方法を解説します。
アカウントID:4090-〇〇〇-6674に、アカウントID:8913-〇〇〇-0673のcompany_username2からアクセスできるようにしていきます。
これ以降、アカウントID:4090-〇〇〇-6674をアカウント(1)、アカウントID:8913-〇〇〇-0673をアカウント(2)と呼びます。
アカウント(1)でIAMロールを作成し、アカウント(2)に割り当てる
アカウント(1)に移動します。
IAMロールに移動し、「ロールを作成」をクリックします。
信頼されたエンティティタイプに「AWSアカウント」を選択します。
「別のAWSアカウント」を選択し、アカウントIDを入力します。
アカウント(2)に許可するポリシーを選択します。
「ロールを作成」をクリックします。
ロールが作成されました。信頼されたエンティティにはアカウント(2)が表示されています。
ロール名をクリックします。
ARNとアカウントIDはこの後使うのでメモしておきましょう。
アカウント(1)にアクセスするためのIAMポリシーを作成する
アカウント(2)に移動します。
IAMポリシーに移動し、「ポリシーの作成」をクリックします。
JSONを選択し、以下を入力します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "アカウント(1)で作成したIAMロールのARN"
}
]
}
「ポリシーの作成」をクリックします。
アカウント(1)にアクセスするためのIAMポリシーが作成されました。
アカウント(1)にアクセスするためのIAMポリシーをIAMユーザーに割り当てる
アカウント(1)にアクセスするIAMユーザーをクリックします。
「許可を追加」をクリックします。
先ほど作成したアカウント(1)にアクセスするためのIAMポリシーを選択します。
「許可を追加」をクリックします。
アカウント(1)にアクセスするためのIAMポリシーをIAMユーザーに割り当てました。
アカウント(1)に、アカウント(2)のIAMユーザーからアクセスしてみる
「ロールの切り替え」をクリックします。
アカウントにアカウント(1)のIDを、ロールにアカウント(1)で作成し、アカウント(2)に割り当てるたIAMロールを入力します。
「ロールの切り替え」をクリックします。
アカウント(1)に、アカウント(2)のIAMユーザーからアクセスできました。
アクセス許可の範囲について確認する
今回、「アカウント(1)でIAMロールを作成し、アカウント(2)に割り当てる」で作成したIAMロールの許可ポリシーはS3へのアクセスのみ許可していました。
そのためEC2やIAMにはアクセスできませんが、
S3はアクセスできます。
またS3へのアクセスを許可する許可ポリシーを削除すると
S3にアクセスできなくなります。