LoginSignup
8
0

More than 1 year has passed since last update.

AWS IAMロールのスイッチロールを体感してみたメモ

Last updated at Posted at 2021-12-21

BeeXの営業の田中です:hugging:
寒い日が続きますが、あと2日でクリスマスだと思うと気持ちはなぜか温かくなります:christmas_tree:

今日はIAMロールの「スイッチロール」について、説明文を読んでもよくわからなかったので、実際にハンズオンで触ってみましたので、その内容をメモに残します。
色々なブログやオンライン講座を参考にしてやってみた内容なので、少々ツギハギ感があり分かりづらいかもしれません…💦
(BeeXのエンジニアの方に目を通して頂き、技術的な間違いはないはずです。。)

IAMロール

AWSのリソースに対して、アクセス権限をロールとして付与することができる。
リソース間のアクセス権を設定する。

IAMロールの信頼ポリシー

IAMロールは、監査人などに一時的に権限委譲を行う際にも利用される。
IAMロールの権限移譲操作に特化したポリシーがIAMロールの信頼ポリシーである。
信頼ポリシーが付与されたIAMロールが持つ権限を、信頼ポリシーの操作主体であるPrincipalに委譲することができる。

image.png

ハンズオンで実施した内容

1.アカウントBの作成
今回のハンズオンのために、元々持っていたアカウント(アカウントA)とは別にもう一つのアカウント(アカウントB)を用意しました。

image.png

2.権限移譲用ロールの設定
アカウントAで、アカウントBへの権限移譲用のロールを設定します。
image.png

3.アカウントBのポリシー設定
アカウントB内で権限移譲用ロールをポリシーとして設定します。
image.png

4.IAMユーザーへのポリシー適用
3.で設定したポリシーをアカウントBのIAMユーザーに適用します。
image.png

5.アカウントBからアカウントAのマネージメントコンソールにアクセスする
アカウントBのIAMユーザーを利用して、IAMロールを切り替えることでアカウントAにアクセス可能となります。

image.png

実際の画面説明

アカウントAのマネージメントコンソール画面にログインした状態から始めます。

アカウントAでロールの作成

IAM>ロールで「ロールの作成」します。
image.png
image.png
別のAWSアカウントを選択し、アカウントIDでアカウントBのアカウントIDを指定します。
image.png
今回はハンズオンなので、EC2のFullAccess権限を付与するポリシーを選択してみます。
image.png
ロール名は「EC2FullAccess_B」とし、「ロールの作成」をします。
※キャプチャの範囲が不十分で「ロールの作成」ボタンが見えてないですが実際の画面では右下に青いボタンがあります
image.png

アカウントAに、信頼されたエンティティとしてアカウントBを指定したロールの作成が完了です!
image.png

アカウントBにIAMポリシー適用

アカウントAに設定した権限移譲用ロール(EC2FullAccess_B)の以下の情報をメモしておきます:writing_hand:
ARN、ロールの説明、アカウントAのID
image.png

アカウントBにログインして、ロールを設定するための新しいIAMユーザーを用意する必要があるので、まずポリシーを作成します。
IAM>ポリシーから「ポリシーの作成」を選択します。
今回は、ハンズオンなので、「管理ポリシーのインポート」からベースの記述をインポートして使います。
image.png
「AdministratorAccess」をインポートします。
image.png
インポート後
image.png
ActionとResourceをそれぞれ設定します。
Actionは、sts:AssumeRoleを指定して、アカウントAのロールをアカウントBに設定することを定義します。
Resourceは、アカウントAで作成した権限移譲用ロール(EC2FullAccess_B)のARNを指定します。
image.png

ポリシー名で「EC2FullAccess_B」を指定して、ポリシーの作成をします。
image.png

このポリシーをユーザーに付与していきます。
新しくTanakaBというユーザーを作ります。
image.png

「既存のポリシーを直接アタッチ」を選びます。
image.png

さきほど作ったEC2FullAccess_Bを選択します。
image.png

内容を確認して、ユーザーを作成します。
image.png

アカウントBからアカウントAにアクセスする

さきほど作成した、TanakaBのアカウントでログインします。
image.png

「ロールの切り替え」を選択します。
image.png

アカウントAの情報、ロール名を入力します。
image.png

ロールを切り替えて、アカウントBからアカウントAのマネージメントコンソールにアクセスできるようになりました。
image.png

アカウントBのユーザーに一時的に権限を与えて、アカウントAのマネージメントコンソールに画面にアクセスすることに成功しました!!

スイッチロールがあると助かること

スイッチロールについて、最初は説明文を読んでも何が出来て、それによってどんないいことがあるのかわかりませんでした:rolling_eyes:

今回、実際に触ってみて別のアカウントからログインせずともコンソール画面を見えるところまで確認ができて、管理者用の機能として、数クリックでほかのアカウントに入ることができるのはとても便利だと思いました。

ほかにも説明を読んだだけではわからない機能はたくさんあるので、またこういった形で触ってみたいと思います:slight_smile:

8
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0