ジャンプアカウントを用いてマルチアカウントを管理する【AWS】

IAM

・ジャンプアカウントを用いてマルチアカウント管理したい。
・ユーザーグループを用いてロールの切り替えを行う。

複数アカウントを管理していると、アカウント移動するたびにログアウトしてサインインいちいちするのめんどくさいですよね…。

私の環境も普段3つくらいでアカウント運用しているのですが、アカウントを跨ぐ作業が多くユーザーの切り替えがめんどくさくなったので、ジャンプアカウントを作成して、ユーザーを一括で管理したいと思います。

アカウントとの繋がりのイメージは下記の通りです

ジャンプアカウント構成図

まず踏み台となるジャンプアカウントを作成し、ジャンプアカウントでユーザーを作成・管理します。

それぞれの環境にはジャンプアカウントで作成したユーザーのスイッチロールを用いてアクセスすることでユーザーの一元管理が可能となるというわけです。

ロールを作成する(ジャンプ先アカウント)

ジャンプ先アカウントに移動しロールを作成していきましょう。

ジャンプアカウント構成図2

まずはジャンプ先のアカウントにサインインしIAMのロール作成画面に移動してください。

IAMロール作成画面

ポリシーは使用したいものを選んでください、それ以外はデフォルトのまま「次へ」をクリックしてください。
※今回はEC2ReadOnlyAccessを選択した場合の手順紹介を行います。

ポリシー選択画面

確認、名前タグは任意で付与します。今回は「AWS1-EC2ReadOnlyAccess」にします。

ロール作成画面

作成完了しました。

作成完了画面

ARNとコンソールをメモしてください。
ARNはポリシーの作成に、コンソールは初回スイッチする際に必要です。

ロールのARNとコンソールリンク

ロールの切り替え信頼ポリシーを作成(ジャンプアカウント)

次にジャンプアカウントでアカウントスイッチする信頼ポリシーの作成に移ります。

ポリシー選択画面

IAMのダッシュボードに移動し「ポリシーを作成」をクリック

ポリシー作成画面

ポリシーは下記を参考にしてください。<YOUR_ARN>には先ほどの手順でコピーしたARNを入力してください。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "<YOUR_ARN>"
        }
    ]
}

名前は任意で入力してください。それ以外の項目はデフォルトのままで結構です。

ポリシーの確認画面

ポリシー作成完了しました。

作成完了画面

グループを作成(ジャンプアカウント)

続いて先ほど作成したポリシーをアタッチするグループを作成していきましょう。
ちなみにグループを作成せずユーザーにも直接アタッチできるので、グループ作成しない方は飛ばしてもらって大丈夫です!

ジャンプアカウントのIAMのユーザーグループ作成画面に移動します。

ポリシーは先ほど作成したポリシーを付与してください。

ユーザーグループ作成画面

お疲れ様です。以上にて全工程完了です。

完了画面

確認

準備が終わったので、スイッチできるか確認してみましょう。

まず初めにジャンプアカウントでログインしてください。

ジャンプアカウント画面

ジャンプアカウントにログインした状態で、先ほどコピーしたコンソールのURLから下記の画面に遷移し「ロールの切り替え」をクリックしてください。

ロールの切り替え画面

無事切り替えが成功しました!!!

切り替え完了画面

各種確認してみましょう。今回の場合EC2ReaOnlyAccessでしたのでEC2の参照だけ可能で、それ以外はアクセスできないのを確認しました。

CodeCommit画面
インスタンス起動
インスタンス起動画面

以上です。誰かの参考になれば幸いです。