通常の複数のAWSアカウントの管理方法
課題
- 同一のシステムのランドスケープを複数のAWSアカウントに分けているような場合、IAMユーザーを別々に発行してログイン、ログアウトして環境を切り替えるのは面倒です。
Switch Role方式
- 「IAMユーザーは1つのアカウントだけで発行」し、スイッチ先では「信頼するAWSアカウントの特定のユーザーに付与してよいIAM Roleを発行」することで、一つの入り口から複数の環境に切り替えて捜査が可能です。
やってみよう Let’s do it!
それでは上記の「Switch Role方式」の図にある構成を用いて、実際に設定してみましょう。
1. スイッチ先でロールを作成する
まずはスイッチ先である本番アカウント側で、スイッチ元に権限移譲するロールを作成します。
IAM画面に移動し、左のロールのペインからロールの作成を押下して進めていきます。
1-1. ロール名を入力する
1-2. クロスアカウントアクセスのロールを選択する
- 今回は信頼するアカウントも自分のアカウントなので「所有するAWSアカウント間のアクセスを提供します」を選択します
1-3. 権限を付与するアカウントIDを入力する
- この本番アカウントにアクセスする開発アカウントのIDを入力します
- SwitchするときにMFAを必要とさせることもできるようです。
1-4. アクセスポリシーを設定する
- 最大2つのポリシーが設定できるようです
1-5. 内容を確認してロール作成
2. スイッチ元でロールを設定する
続いて開発アカウントに移動して、Switch Roleできるように設定します
2-1. インラインポリシーを選択してカスタムポリシーを作成する
2-2. カスタムポリシーを入力し、Resource部分に1で作成したロールのARNを入力する
2-3. Switch Role(ロールの切り替え)の設定をする
- 画面右上から「ロールの切り替え」を選択します
2-4. ロールの切り替えを選択する
2-5. ロールの情報を入力して切り替え設定をする
- スイッチ先のアカウントをロールを入力して「ロールの切り替え」を実行します
2-6. ロールの切り替えが行われる
- 本番アカウントに切り替わってることを確認します
- 開発アカウントに戻るときは「shingoに戻る」となってる部分を押下して開発のIAMユーザーに切り戻します
その他考慮ポイント
MFAのつけどころ
1-3でスイッチ時にMFAがつけられると紹介しましたが、どこでMFAをかけるかはどこのセキュリティレベルを上げるか、同一レベルとするかの考え方によって以下のようなつけどころが変わるかなと思います。
- 開発アカウントへのログイン時のみ(スイッチする際はMFA不要)
- 開発アカウントへのログイン時、およびデモ用/本番用へのスイッチ時にも
- 開発アカウントは不要、デモ用/本番用へのスイッチ時のみ