☁️

[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