🤸‍♂️

【AWS】なぜ、IAMロールでスイッチロールする必要があるのか?

2023/07/19に公開

はじめに

社内の有志メンバーでの活動で
上司に「スイッチロール出来るように設定してください」と言われてタスク自体は完了しましたが、
「なぜスイッチロールが必要なのか?」を分からないままだったので、
自分なり調べてこうじゃないかな?と考えたので、その考えを執筆します。

スイッチロールのメリットは?

1. ロールを簡単に付与できる

スイッチロールしなかった場合

例えば、、
ReadOnlyAccess権限のユーザーにEC2の権限を付与したい場合
※ReadOnlyAccess権限の為、読み取りのみでEC2の設定を更新する事が出来ません。
AWS-IAM-role-step01
ReadOnlyAccess権限のユーザーがEC2にアクセス出来ないイメージ図

下記の手順を取る必要があります。

  1. ReadOnlyAccessをベースに新規でポリシーを作成する
  2. ReadOnlyAccessのJSONは、1801行ありその中からEC2に関するポリシーを削除する(2023/07月時点)
  3. 新規作成したポリシーを対象ユーザーに付与する
  4. 対象ユーザーからReadOnlyAccessのポリシーを削除する

スイッチロールした場合

AWS-IAM-role-step02
スイッチロールでReadOnlyAccess権限のユーザーがEC2にアクセス出来るイメージ図

  1. EC2の権限を許可するロールを作成する
  2. 対象ユーザーにロールを伝える
  3. 対象ユーザーはそのロールにスイッチロールしてもらう

2. 誤操作が防げる

これは、言葉通りで
必要な時に必要な権限(ロール=役割)が付与されれば、誤操作の確立を下げる事が出来ます。

例えば、料理する際も包丁🔪が台所の上にあるよりも、具材をカットする時に出して終わったらしまっておく方が怪我のリスクも減らす事と同じだと考えます。

3. スイッチロールのログから誰が操作したのか確認できる

管理者権限のルートユーザーでブラウザーで操作を行ってもログは残りません。
つまり、いつだれがどんな操作を行ったのか分かりません。 メンバー全員に事情聴取を行う必要があります。

しかし、スイッチロールを行うと「いつだれがどのロールに切り替えたのか」をログとして確認する事が出来ます。

おわりに

ロールの仕組みを考えた方は、天才ですね。
追記:スイッチロールを「なぜ」行うのか?を上司から直接教えて頂きました。ありがとうございます。

GitHubで編集を提案

Discussion