もくじ
前書き
AWSのSwitch Role(ロールを別アカウントに付与する)について、最低限の設定を解説します。
引き継ぎ元ロールに必要な設定と、引き継ぎ先ユーザーに必要なポリシーに焦点を当てて説明します。
引き継ぎ元のロールの信頼関係でどのように書けば引き継ぎ先ユーザーが使えるのか。
引き継ぎ先ユーザーにどのようなポリシーがあればロールを引き継げるのか。
これが今回説明する内容になります。
環境
今回の検証で使用する環境は以下の通り。
引き継ぎ元
パラメータ | |
AWSアカウント | 212928105054 |
わたすロール | TestRole |
わたすポリシー | AmazonEC2FullAccess (AWS管理ポリシー) |
引き継ぎ先
パラメータ | |
AWSアカウント | 738452829225 |
ロールを引き継ぐユーザー | 7384-Atsushi |
ロールを引き継ぐためのポリシー | TestPolicy |
実施作業
【引き継ぎ元】ロールの作成
引き継ぎ元のAWSアカウントにて、IAMロールを新規作成します。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-1024x275.png)
「別のAWSアカウント」を選択して、[アカウントID]に引き継ぎ先のAWSアカウントを入力します。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-1-1024x856.png)
今回はEC2のフルアクセスを引き継ぎたいので、ポリシー一覧から「AmazonEC2FullAccess」を選びます。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-2-1024x856.png)
タグは設定しませんでした。ロールの名前は前述のとおり「TestRole」とします。ロールの作成を完了します。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-3-1024x873.png)
【引き継ぎ先】ロールを引き継ぐためのポリシー作成
ロールを引き継ぐ先のAWSコンソールにログインし、IAMコンソールから新規ポリシーを作成します。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-5-1024x276.png)
[JSON]形式でポリシーを定義します。下記のように記載します。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::212928105054:role/TestRole"
}
}
定義の意味は、212928105054(引き継ぎ元アカウント)のTestRoleというロールを引き継ぐことができる、という意味になります。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-7-1024x569.png)
前述のとおり「TestPolicy」という名前で保存しました。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-8-1024x697.png)
【引き継ぎ先】ユーザーの作成
ロールを引き継ぐIAMユーザーを作成します。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-4-1024x237.png)
前述のとおり「7384-Atsushi」というユーザー名にします。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-9-1024x849.png)
先ほど作成した、「TestPolicy」をアタッチします。「既存のポリシーを直接アタッチ」から選択します。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-10-1024x596.png)
【引き継ぎ元】ロールを引き継ぐためのポリシー設定
先ほど作った「TestRole」を引き継ぎ先の「7384-Atsushi」ユーザーが引き継げるように設定します。
IAMコンソールのロールから、「TestRole」を選択し、「信頼関係」タブから「信頼関係の編集」をクリックします。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-11-1024x520.png)
Principalの”AWS”の項目を「“arn:aws:iam::738452829225:user/7384-Atsushi”」に修正します。
設定値の意味は、738452829225(引き継ぎ先)の「7384-Atsushi」ユーザーにこのロールの使用を許可する、というものです。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-12-1024x553.png)
動作確認
引き継ぎ先(738452829225)の「7384-Atsushi」ユーザーで、引き継ぎ元(212928105054)の「TestRole」を引き継ぎ(スイッチ)し、引き継ぎ先(738452829225)のEC2コンソールでフルアクセスがあるか確認します。
引き継ぎ先AWSコンソールに「7384-Atsushi」ユーザーでログインし、右上のユーザーアカウントのプルダウンから「ロールの切り替え」をクリックします。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-14-844x1024.png)
[アカウント]には引き継ぎ元AWSアカウント番号(ここでは212928105054)、ロールは引き継ぎ元ロールなのでここでは「TestRole」、表示名は何でもいいので、ここでは「2129TestRole」としました。
「ロールの切り替え」ボタンをクリックします。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-15-1024x445.png)
右上のアカウントの表示が、「2129TestRole」になれば成功です。(表示名をここでは「2129TestRole」としたため)
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-16.png)
試しにIAMダッシュボードにアクセスしてみます。下図のとおり、権限がなく表示ができません。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-17-1024x434.png)
EC2ダッシュボードにアクセスしました。エラーは表示されずEC2インスタンスも表示できています。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-18-1024x152.png)
試しにEC2インスタンスを作成してみます。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-19-1024x570.png)
EC2インスタンスを作成することができました。(「AmazonEC2FullAccess」があるので)
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-20-1024x478.png)
引き継ぎ元AWSコンソールからも、7384-Atsushiユーザーが作成したEC2インスタンスが見えました。
![](https://atsushinotes.com/wp-content/uploads/2022/01/image-21-1024x179.png)
まとめ
- ロールを引き継ぐためには、引き継ぎ先ユーザーに「AWS STS AssumeRole」に対するアクセスを許可する。
- ロールを引き継ぐためには、引き継ぎ元ロールに引き継ぎ先との信頼関係を築いておく。
最後までお読みいただきありがとうございました。
コメント