スイッチロールをやってみた

2021.07.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、森田です。

研修中に、各部署でスイッチロールを付与してもらっていますが、そもそもスイッチロールとは何者なのかを理解していなかったので、実際に色々試しながら理解してみます。

スイッチロールとは

IAMの機能の1つで名前の通り、アカウント切り替え用のロール(役割)を提供します。

例えば、下図の場合です。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/2021-07-08_15.50.18.png

会社などに属している場合、部署やサービスごとでアカウントを分けることがあります。

この時、スイッチロールを使用せず、コンソールにログインする場合、アカウント ID、ユーザ名、パスワードがそれぞれで必要となります。

上図の場合アカウントが3つなので、何とかなりそうですが、

例えば、より多くのアカウントを切り替える場合はその分管理する情報も増えてしまうため、とても大変になってしまいます。

そこでスイッチロールでは、アカウントを切り替えるために任意のアカウントに対して、一時的な権限を発行します。

下図がスイッチロールを利用してアカウントを管理した場合です。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/2021-07-08_16.05.49.png

先ほどの場合とは違い、部署Aのアカウント情報を管理するだけで良くなります。

具体的にお見せすると、コンソールでは下図のようにクリックだけでアカウントの切り替えが可能となります。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/Untitled-10.png

今回は、コンソールでこのように切り替えができるように設定してみます。

スイッチロールの作成

スイッチ先(部署Bの)アカウントでの作業

まずはスイッチ先のアカウントでIAMロールを作成します。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/Untitled-1-1.png

別のAWSアカウントを選択し、発行したい(部署Aの)アカウントIDを指定します。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/2021-07-08_16.31.06.png

権限はAdministratorAccessを付与します。

ここは、適切な権限で付与することが好ましいです。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/Untitled-2-1.png

最後にロール名を入力し、ロールの作成を完了させます。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/Untitled-3.png

作成後、ロールを選択し、概要を確認するとスイッチロール用のリンクがありますので、こちらをメモします。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/23231543a42eb93f6355a612f24a5118.png

スイッチ元(部署Aの)アカウントでの作業

スイッチ元(部署Aの)アカウントに通常通りログインします。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/Untitled-5.png

ログイン後、別ウィンドウなどで先ほどメモしたリンクを開きます。

すると、このような画面が開きますので、わかりやすいように表示名を設定します。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/Untitled-6.png

コンソールへと戻ると、account-bのロールが確認でき、選択するとアカウントが切り替わります。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/Untitled-7.png

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/Untitled-8.png

スイッチロール履歴の削除

おそらく、「ロールあるけど使用しないなぁ」ってことがあると思います。

そのような場合は、スイッチロール履歴から削除してみましょう。

(今回の私の場合ですと、ブログ執筆ように作成したので削除したいです。)

スイッチロールの履歴はWEBブラウザに保存されていますので、WEBブラウザの設定から削除します。

aws.amazon.comnoflush_awsc-roleInfo を削除します。

https://d1tlzifd8jdoy4.cloudfront.net/wp-content/uploads/2021/07/Untitled-9.png

ただし、この方法では、 全ロールの履歴 が消えてしまうので、

再度スイッチロールの切り替えを行う必要があります ...

(Cookieデータの解析を行えば、個別の削除もできそうです)

最後に

この記事では、ロールの作成、ロールの履歴の削除を行いました。

他にも便利な機能がIAMにはありますので、どんどん使ってみたいです。

参考記事