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