0
0

AWSスイッチロールを試す

Last updated at Posted at 2024-09-07

はじめに

スイッチロールを試します。
おそらくスイッチロールは別のアカウントにスイッチすることが多いと思いますが、今回は同じアカウントでロールだけスイッチします。別のアカウント作るのは手間なので今回は同じアカウントで仕組みだけを理解します。業務では複数のアカウントを使ってると思いますが、個人の検証なのでそこまではしません
別のアカウントにスイッチするときは、さらに設定が必要かもしれません

ユースケースでは、通常は開発環境で作業している人たちを、商用環境に切り替えるために行うのだと思います。商用環境は別のAWSアカウントなのだと思います

参考にした手順

スイッチロール用のロールを作成する

ロール名:switchRoleAdmin
AdministratorAccess 権限(ポリシー)をアタッチしています。

※別のアカウントにスイッチするときは、別のアカウントでロールを作るはずです

スイッチ元のIAMユーザーを作成する

ユーザー名:testuser-ec2
権限(ポリシー)は何も付与しなくてもOK

testuser-ec2でAWSにログインした際、権限がないのでいろいろ参照できないエラー(赤字)が画面にでているはずです。

※別のアカウントにスイッチするときは、スイッチ元でアカウントで作るはずです

ポリシーを作成する

ポリシー名:switch-policy-test
ロールはユーザーに付与できませんが、特定のロールを使うポリシーは作成できます。以下のポリシーを作成し、そのポリシーをユーザーに割り当てることで、特定のロールを使用することができます。

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::XXXXXXXXXXXX:role/switchRoleAdmin"  // アカウントIDとロール名は自身のものに合わせる。別のアカウントIDになることもある
  }
}

このポリシーは switchRoleAdmin ロールを使用するためのポリシーです。
今回はこのポリシー直接ユーザに割り当てず、グループ経由で割り当てます
XXXXXXXXXXXXはスイッチ先のアカウントですが、今回はスイッチ元同じアカウントIDです

※別のアカウントにスイッチするときは、別のアカウントでポリシーを作るはずです

グループを作成する

グループ名:switchRoleTest
グループとはポリシーを束ねたもので、今回は switch-policy-test をアタッチしておきます。ポリシーを直接ユーザーに付与するよりも、こちらの方が管理しやすいです。
このグループに testuser-ec2 を追加しておきます。

※別のアカウントにスイッチするときは、別のアカウントでグループを作るはずです

テスト

  1. testuser-ec2 でAWSコンソールにログインします。
  2. スイッチロールができるかどうかを試します。方法については次のプラグインを使用すると簡単です。

AWS Extend Switch Roles プラグイン

AWS Extend Switch Roles プラグインを使用すると、スイッチロールが簡単に行えます。通常はAWSコンソールで設定します。

プラグインの画面を表示して、Configrationをクリックすれば設定画面が表示される
image.png

![image.png](https://qiita-image-store.s3.ap-northeast-
設定例

[prod]
role_arn = arn:aws:iam::XXXXXXXXXXXX:role/switchRoleAdmin # アカウントIDとロール名は自身のものに合わせる
region = ap-northeast-1
color = 95ea9f

XXXXXXXXXXXXはスイッチ先のアカウントですが、今回はスイッチ元同じアカウントIDです

0
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
0
0