クロスアカウントアクセスの設定方法を解説します。
アカウントID:4090-〇〇〇-6674に、アカウントID:8913-〇〇〇-0673のcompany_username2からアクセスできるようにしていきます。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-1.png)
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-2.png)
これ以降、アカウントID:4090-〇〇〇-6674をアカウント(1)、アカウントID:8913-〇〇〇-0673をアカウント(2)と呼びます。
アカウント(1)でIAMロールを作成し、アカウント(2)に割り当てる
アカウント(1)に移動します。
IAMロールに移動し、「ロールを作成」をクリックします。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-3-1024x141.png)
信頼されたエンティティタイプに「AWSアカウント」を選択します。
「別のAWSアカウント」を選択し、アカウントIDを入力します。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-4-1024x528.png)
アカウント(2)に許可するポリシーを選択します。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-5-1024x524.png)
「ロールを作成」をクリックします。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-6-1024x774.png)
ロールが作成されました。信頼されたエンティティにはアカウント(2)が表示されています。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-7-1024x176.png)
ロール名をクリックします。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-8-1024x172.png)
ARNとアカウントIDはこの後使うのでメモしておきましょう。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-9-1024x245.png)
アカウント(1)にアクセスするためのIAMポリシーを作成する
アカウント(2)に移動します。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-10-1024x484.png)
IAMポリシーに移動し、「ポリシーの作成」をクリックします。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-11-1024x145.png)
JSONを選択し、以下を入力します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "アカウント(1)で作成したIAMロールのARN"
}
]
}
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-12-1024x564.png)
「ポリシーの作成」をクリックします。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-13-1024x627.png)
アカウント(1)にアクセスするためのIAMポリシーが作成されました。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-14-1024x215.png)
アカウント(1)にアクセスするためのIAMポリシーをIAMユーザーに割り当てる
アカウント(1)にアクセスするIAMユーザーをクリックします。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-15-1024x212.png)
「許可を追加」をクリックします。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-16-1024x413.png)
先ほど作成したアカウント(1)にアクセスするためのIAMポリシーを選択します。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-17-1024x368.png)
「許可を追加」をクリックします。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-18-1024x303.png)
アカウント(1)にアクセスするためのIAMポリシーをIAMユーザーに割り当てました。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-19-1024x454.png)
アカウント(1)に、アカウント(2)のIAMユーザーからアクセスしてみる
「ロールの切り替え」をクリックします。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-20.png)
アカウントにアカウント(1)のIDを、ロールにアカウント(1)で作成し、アカウント(2)に割り当てるたIAMロールを入力します。
「ロールの切り替え」をクリックします。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-21-1024x330.png)
アカウント(1)に、アカウント(2)のIAMユーザーからアクセスできました。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-22-1024x478.png)
アクセス許可の範囲について確認する
今回、「アカウント(1)でIAMロールを作成し、アカウント(2)に割り当てる」で作成したIAMロールの許可ポリシーはS3へのアクセスのみ許可していました。
そのためEC2やIAMにはアクセスできませんが、
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-24-1024x481.png)
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-25-1024x483.png)
S3はアクセスできます。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-23-1024x473.png)
またS3へのアクセスを許可する許可ポリシーを削除すると
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-26-1024x449.png)
S3にアクセスできなくなります。
![](https://ootkblog.com/wp-content/uploads/2024/01/aws-cross-account-access-27-1024x356.png)