マルチセッションを有効にしたコンソールで多段スイッチロールを試してみた

マルチセッションを有効にしたコンソールで多段スイッチロールを試してみた

AWSマルチセッションを有効にしたマネジメントコンソールで、IAMロールを連鎖させた多段スイッチロールがGUI上で可能になりました。
Clock Icon2025.01.25

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にログインしました。

IAMユーザサインイン

ロールの切り替え

コンソールでロールを切り替えるためのリンクを利用して、ロールの切り替えを実施しました。

https://signin.aws.amazon.com/switchrole?roleName=<ロール名>&account=<スイッチ先アカウント>

アカウントB

ロールの切り替えB

アカウントC

ラジオボタンで「アカウントB」のセッションを選択し、「アカウントC」のロールへの切り替えを実施しました。

ロールの切り替えC

オプションとして、表示名と表示色も指定しました。

確認

マネジメントコンソール右上のアカウント情報を開き、他のアクティブなセッションの確認を試みました。

アカウントA

「アカウントB」「アカウントC」のロールが表示されました。

セッション_アカウントA

アカウントB

「アカウントA」のユーザと「アカウントC」のロールが表示されました。

セッション_アカウントB

アカウントC

「アカウントA」のユーザと「アカウントB」のロールが表示されました。

セッション_アカウントC

ロールの表示名と表示色

ロール切り替え時のオプションとして指定した表示名と表示色は、コンソール右上のアカウント情報やアクティブなセッションの一覧に反映されます。

セッション一覧の別名

別名入スイッチURLブックマーク

ブラウザのブックマークなどにロール切り替え用のURLを保存して利用する場合、セッションの判別性を向上させるため、「displayName」、「color」を追加して利用する事をおすすめします。

  • Red 表示例
    https://signin.aws.amazon.com/switchrole?roleName=<ロール>&account=<アカウント>&displayName=<表示名>&color=ea7158

https://dev.classmethod.jp/articles/aws-management-console-role-switch-refresh-and-url-query-parameter-behavior/

まとめ

AWS IAMでは、ロールを連鎖させて利用する(多段AssumeRole)ことが可能です。

https://dev.classmethod.jp/articles/iam-role-100-chaining-da-don/

従来のマネージドコンソール(マルチセッション無効)は、ロールの連鎖をサポートしておらず、アカウントBのロールに切り替え中にアカウントCへの切り替えを実施した場合、アカウントAからアカウントCにスイッチする動作となっていました。

従来(マルチセッション無効)スイッチイメージ

アカウントAの多数の作業者がアカウントCのマネジメントコンソール操作を実施する必要があるが、アカウントCのロール信頼設定にアカウントAの全IAMユーザを反映することが困難で、踏み台となるアカウントBのロールを信頼した利用を実現したい場合、これまでは、多段AssumeRoleをサポートするCLI、SDKなどを利用してフェデレーテッドユーザー用URLを発行する必要がありました。

https://dev.classmethod.jp/articles/its-not-switch-role-its-assumerole/

マルチセッションがサポートされたマネジメントコンソールでは、GUI上でロールを連鎖させた利用が簡単にできるようになりました。

マルチセッションを有効にしたブラウザで、アカウント情報を含まない従来のダッシュボードのURLを開くと、セッション選択画面が表示されます。このセッションの指定などを誤った場合、意図せぬ誤操作を引き起こす可能性があります。

  • EC2ダッシュボードのURL
    https://ap-northeast-1.console.aws.amazon.com/ec2/

セッション選択

マルチセッションを有効にした環境では、FullAccessなど、強い権限を持つIAMのセッションは放置しないこと。また、セッションの判別に有効と考えられる、ロール切り替え時の表示名と表示色のオプション設定や、AWSアカウントのエイリアス設定も活用いただくことをおすすめします。

https://dev.classmethod.jp/articles/aws-account-alias-multi-session/

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.