マルチセッションを有効にしたコンソールで多段スイッチロールを試してみた
2025年1月にリリースされたマルチセッションを有効にしたAWSマネジメントコンソール、IAMロールを連鎖させた多段スイッチロールがGUI上で実現可能になりました。
今回は、この多段のスイッチロール操作を試す機会がありましたので紹介します。
AWS環境イメージ
以下の3つのアカウントを用意して、多段スイッチロールを試しました。
アカウントA
- コンソールログイン用のIAMユーザを用意しました。
アカウントB
- アカウントAのIAMユーザを信頼されたエンティティとして設定した、スイッチ用のIAMロールを用意しました。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::000000000001:user/account-a-user"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
アカウントC
- アカウントBのIAMロールを信頼設定したスイッチ用のIAMロールを用意しました。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::000000000002:role/account-b-role"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
権限設定
IAMユーザ、IAMロールの権限設定は 「ReadOnlyAccess」(arn:aws:iam::aws:policy/ReadOnlyAccess)と、 インラインポリシーを用いてSTSのAssumeRole を許可しました。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "*"
}
]
}
動作確認
コンソールサインイン
IAMユーザを利用して、アカウントAにログインしました。
ロールの切り替え
コンソールでロールを切り替えるためのリンクを利用して、ロールの切り替えを実施しました。
https://signin.aws.amazon.com/switchrole?roleName=<ロール名>&account=<スイッチ先アカウント>
アカウントB
アカウントC
ラジオボタンで「アカウントB」のセッションを選択し、「アカウントC」のロールへの切り替えを実施しました。
オプションとして、表示名と表示色も指定しました。
確認
マネジメントコンソール右上のアカウント情報を開き、他のアクティブなセッションの確認を試みました。
アカウントA
「アカウントB」「アカウントC」のロールが表示されました。
アカウントB
「アカウントA」のユーザと「アカウントC」のロールが表示されました。
アカウントC
「アカウントA」のユーザと「アカウントB」のロールが表示されました。
ロールの表示名と表示色
ロール切り替え時のオプションとして指定した表示名と表示色は、コンソール右上のアカウント情報やアクティブなセッションの一覧に反映されます。
ブラウザのブックマークなどにロール切り替え用のURLを保存して利用する場合、セッションの判別性を向上させるため、「displayName」、「color」を追加して利用する事をおすすめします。
- Red 表示例
https://signin.aws.amazon.com/switchrole?roleName=<ロール>&account=<アカウント>&displayName=<表示名>&color=ea7158
まとめ
AWS IAMでは、ロールを連鎖させて利用する(多段AssumeRole)ことが可能です。
従来のマネージドコンソール(マルチセッション無効)は、ロールの連鎖をサポートしておらず、アカウントBのロールに切り替え中にアカウントCへの切り替えを実施した場合、アカウントAからアカウントCにスイッチする動作となっていました。
アカウントAの多数の作業者がアカウントCのマネジメントコンソール操作を実施する必要があるが、アカウントCのロール信頼設定にアカウントAの全IAMユーザを反映することが困難で、踏み台となるアカウントBのロールを信頼した利用を実現したい場合、これまでは、多段AssumeRoleをサポートするCLI、SDKなどを利用してフェデレーテッドユーザー用URLを発行する必要がありました。
マルチセッションがサポートされたマネジメントコンソールでは、GUI上でロールを連鎖させた利用が簡単にできるようになりました。
マルチセッションを有効にしたブラウザで、アカウント情報を含まない従来のダッシュボードのURLを開くと、セッション選択画面が表示されます。このセッションの指定などを誤った場合、意図せぬ誤操作を引き起こす可能性があります。
- EC2ダッシュボードのURL
https://ap-northeast-1.console.aws.amazon.com/ec2/
マルチセッションを有効にした環境では、FullAccessなど、強い権限を持つIAMのセッションは放置しないこと。また、セッションの判別に有効と考えられる、ロール切り替え時の表示名と表示色のオプション設定や、AWSアカウントのエイリアス設定も活用いただくことをおすすめします。