こんにちは、ラーニングエクスペリエンス課の小倉です。
私は AWS公式トレーニング の講師をしているのですが、最近、弊社のサイトに講師紹介の情報が追加されました。もしご興味ある方はサイトを確認してみてください。
サーバーワークスでは、自由に勉強会を開催してスキルアップをしています。その中で私は毎週月曜日の朝、「30分AWSハンズオン」という30分でできるAWSハンズオンを1年以上継続して開催しています。その内容をブログで定期的に紹介していきます。AWSをご利用のみなさまのスキルアップにお役立ていただければと考えています。
2回目となる今回は、「IAMロールでスイッチロールをしてみよう」をやります。
ハンズオンの内容は、IAMロールを作成し、作成したIAMロールにスイッチロール(ロールの切り替え)を行います。IAMロールの用途としてはAWSサービスに他のAWSサービスの操作権限の付与をすることが多いのですが、今回はIAMユーザーの権限を変更します。
使用するAWSサービス
AWS Identity and Access Management (IAM)
IAMとは、AWS操作をセキュアに行うための認証認可の仕組みです。認証とはユーザー名、パスワードなどを使い、相手が誰なのかを確認すること、認可はAWSサービスへのアクセス権限を与えることです。今回はIAMの機能の中でIAMロールのスイッチロールを使います。IAMロールには権限を付与することができ、ログインしているIAMユーザーがIAMロールにスイッチロールすることによって、IAMロールの権限で操作ができるようになります。
参考サイト:
[AWS Black Belt Online Seminar]AWS Identity and Access Management (IAM) Part1
[AWS Black Belt Online Seminar]AWS Identity and Access Management (IAM) Part2
構成図
構成図で書くのが難しいのですが、要素としてはAWSアカウント内にある、IAMユーザーとIAMロールがあります。IAMユーザーがIAMロールという帽子をかぶる(スイッチロールする)とIAMロールの権限に切り替わるイメージです。
ハンズオン手順
1. IAMロールを作成します
IAMの操作権限のあるIAMユーザーでAWSマネジメントコンソールにログインし、画面上の検索窓で「IAM」と入力し、サービスの下に表示された [IAM] をクリックし IAM のコンソール画面を開きます。また、IAMはグローバルサービスのため、リージョンはどこになっていても大丈夫です。
ナビゲーションペイン(左メニュー)の [ロール] をクリックしてIAMロール一覧の画面を表示した後、右上の [ロールを作成] をクリックします。
IAMロールの作成画面が表示されますので、IAMロールの設定をしていきます。
信頼されたエンティティタイプはAWSアカウント、AWSアカウントではこのアカウントを選択して、[次へ] をクリックします。
次に許可ポリシーを設定します。ポリシー名がわかっている場合は、検索窓で許可するポリシー名を検索すると簡単に絞り込むことができます。今回はIAMReadOnlyAccess というIAMの読み取り権限を付与するポリシーにチェックを入れ、[次へ] をクリックします。
ロール名を入力します。今回は yyyymmdd-handson-role としておきます(yyyymmdd は年月日で、例えば2023年2月7日なら 20230207 となります)。
下にスクロールして、許可ポリシーに先ほど選択したポリシーが表示されていることを確認して、[ロールを作成] をクリックします。
IAMロールの一覧に作成したIAMロールが表示されていることを確認します。
これでIAMロールの作成が完了しました。次は、現在ログインしているIAMユーザーでスイッチロールを行います。
2. 作成したIAMロールにスイッチロールをします
スイッチロールをするにはマネジメントコンソール右上のユーザー名をクリックし、[ロールの切り替え] をクリックします。このあとの手順でアカウントIDを使いますので、コピーをしておきましょう。
ロールの切り替えの画面が表示されるので、アカウントに先ほどコピーしたアカウントID(ハイフンなしの12桁の数字)、ロールに手順1で作成したIAMロール名(今回はyyyymmdd-handson-role)を入力し、[ロールの切り替え] をクリックします。
スイッチロールが完了し、マネジメントコンソールの右上のユーザー名がIAMロール名に変わります。試しに手順1で作成したIAMロールの編集をしてみます。IAMロール一覧にある yyyymmdd-handson-role をクリックします。
[許可を追加] - [ポリシーをアタッチ] をクリックします。
なんでもよいので、ポリシーの1つにチェックを入れて、[ポリシーをアタッチ] をクリックします。
現在、yyyymmdd-handson-role にスイッチロールしていて、IAMの読み取り権限しかないため、IAMの設定を変更しようとするとエラーが発生します。
スイッチロールをする前はIAMを変更する権限がありましたが、スイッチロールしたことによってロールに適用されているポリシーのみが有効になっていることを確認できました。
もとのIAMユーザーに戻るには、マネジメントコンソール右上のユーザー名をクリックし、[スイッチバック] をクリックします。
もとのIAMユーザーに戻ることができました。
3. 後片付け
IAMロールはお金がかからないですが、不要な設定は削除して整理しておきましょう。
マネジメントコンソールでIAMのコンソール画面を開きます。ナビゲーションペイン(左メニュー)の [ロール] をクリックしてIAMロール一覧の画面を表示した後、削除したいIAMロールにチェックを入れ、右上の [削除] をクリックします。
削除の確認画面が表示されますので、テキスト入力フィールドに削除するIAMロール名を入力して、[削除] をクリックします。
IAMロールが削除されました。
これで今回のハンズオンは以上となります。
まとめ
今回はIAMロールでスイッチロールをしてみました。本ハンズオン手順は、同じAWSアカウント内でのスイッチロールとなり、用途としては通常は読み取り権限でログインして、設定変更時のみスイッチロールして構築権限を付与して作業をするという使い方があります。
また、IAMロールを作成するときに別のAWSアカウントIDを設定することで、別のAWSアカウントのIAMユーザーからスイッチロールでマネジメントコンソールにログインするということが可能です。こちらのハンズオンは別の機会に実施します。
参考資料
小倉 大(記事一覧)
アプリケーションサービス部エデュケーショナルサービス課 札幌在住
AWSトレーニングの講師をしています。
最近は7歳の息子と遊ぶのが楽しいです!
Twitter: @MasaruOgura