Switch Roleで何をしているのかざっくり説明する

2020.06.27

こんにちは、CX事業本部の夏目です。

今回はAWSを使っているとたまに聞く、Switch Roleについてざっくり説明しようと思います。

結局 Switch Roleって何?

一言で言うとすれば、「AWSを見る/触るときの権限を別のIAM Roleに切り替えること」です。

別のIAM Roleに切り替えることで、今まで見えないものが見えたり、触れないものを触ったりできるようになります。

別のIAM Roleに切り替えるってどういうこと?

別のIAM Roleに切り替えるってどういうことなのか、なぜそれが嬉しいのか、ここでは2つの例をもとに説明しようと思います。

例1. sudo

Linuxサーバーなどでよく使うsudoはSwitch Roleと少し似ています。

通常、LinuxサーバーでSSHするときrootユーザーで入ることはありません。 何らかの作成されたユーザーで入ることがほとんどです。

SSHでLinuxに入れば自分のホームディレクトリ配下は好き勝手に触れます。

しかし権限を持っていないので、/etc/配下のファイルを書き換えてサーバーの設定を変更したり、apt-getyumで何かをインストールすることができません。

そこで私達はsudoコマンドを使い、rootユーザーとして作業をします。
そうすることで、サーバーの設定を変更したり何かをインストールしたりします。

このsudoによってrootユーザーとして振る舞うということは、Switch Roleに似ています。

例えば、Linuxに入るのに使ったユーザーをIAM User、rootユーザーをAdministratorAccessポリシーを付与されたIAM Roleとして考えると、 sudoコマンドはSwitch Roleしていると考えることができます。
このとき、LinuxサーバーはAWS Accountとして考えるといいでしょう。

IAM UserとしてAWSにログインした状態では狭い範囲しか見れない/触れない状態だったのが、Switch Roleでより広い範囲を見れたり/触れたりする状態にすることができます。

例2. 複数のチームに所属するスポーツ選手

先程は一つのAWS Accountで閉じる話でしたが、AWS AccountをまたがったSwitch Roleのお話です。

スポーツ選手は複数のチームに所属することがよくあります。

去年 大盛況で終わったラグビーワールドカップの出場選手で例えると、

  • トップリーグ(日本ラグビーのプロリーグ)のチーム
  • ラグビーワールドカップの日本代表チーム
  • 東京五輪の7人制ラグビーの日本代表チーム

のように3つのチームに所属しているということも考えられます。

試合に出るときは、トップリーグのチームとして振る舞うこともあれば、ワールドカップの代表チームとして振る舞うときもあります。

これはチームをAWS Accountと考えると、AWS AccountをまたがったSwitch Roleに似ています。

IAM Roleを切り替えることで、持っている権限は似ていたとしても、自分が 見て触る/振る舞う AWS Accountを切り替えているのです。

まとめ

今回は、Switch Roleについてざっくりと説明してみました。

やっていることは、別のIAM Roleに切り替えてAWS環境を見て触るだけなんです。

それによって、同一Account内で権限の範囲を狭い状態から広い状態へ変化させたり、はたまた別のAWS Accountの内容を見たり触ったりできるようになったりします。

皆様のご理解の一助になれば幸いです。Switch Roleが何なのか、何をしているのかざっくり説明する