【AWS】スイッチロールだけ出来るIAMユーザーを作成する

概要

今までは、他部署が用意してくれたIAMユーザーを利用する機会しかなく、スイッチロールの設定なんかもその部署の方が対応をしてくれていたので、知らなかったのですが、今回表題の対応を自身で行う機会があったので、備忘用として情報残します。

対応を進める前提

この対応を進めるためには、IAMユーザーの作成・IAMロールの作成・ポリシーの作成、更新ができるユーザーが今回作成するユーザーとは別で必要となります。ルートユーザーでも構いませんが、一般的にルートユーザーは通常運用を利用すべきではありませんので、可能であれば今回作成するユーザーとは別にAdminなどの権限を持ったIAMユーザーを作成しておいて頂けるとスムーズに下記対応が進められると思います。
また、Admin権限のIAMユーザーを作成した場合は、MFAの設定を有効化して頂けるとより良いと思います。
初めてAWSに触るなどのご不安を抱えている方は遠慮なくコメント欄などでご質問ください。

手順

  1. Adminなどの権限を持ったIAMユーザーでマネージメントコンソールにサインインする

  2. IAMの画面を開く

  3. ロールにアタッチするポリシー(権限情報)を作成する

  4. ロールを作成する(3で作成したポリシーをアタッチする)

  5. スイッチロール用のIAMユーザーにアタッチするポリシー(権限情報)を作成する

  6. スイッチロール用のIAMユーザーを作成する

下記でそれぞれの詳細について触れていきます。

※手順1と手順2は割愛します。

手順3(ロール用のポリシーを作成する)

  1. IAMの画面でポリシーの項目を選択する

  2. スイッチロール用のIAMユーザーに与えたい権限を持ったポリシーを作成する(任意)

手順4(ロールを作成する)

  1. IAMの画面でロールの項目を選択する

  2. 作成ボタンを押下し、「エンティティ:AWSアカウント」「AWSアカウント:ロールを共有したいアカウント」「オプション:任意」で選択をし、「次へ」ボタンを押下する

  3. 手順3で作成したポリシーを選択し、「次へ」ボタンを押下する

  4. ロール名など任意で情報を埋めて「ロールを作成」ボタンを押下する

手順5(スイッチロールするIAMユーザー用のポリシーを作成する)

  1. IAMの画面でポリシーの項目を選択する

  2. 「ポリシーの作成」ボタンを押下する

  3. JSONタブを選択し、表示されたエディタに下記の内容を追記する

  4. 他は何も設定せずに作成する

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": [
                "{手順4で作成したIAMロールのARN}"
            ]
        }
    ]
}

手順6(スイッチロールをさせるIAMユーザーを作成する)

  1. IAMの画面でユーザーの項目を選択する

  2. 「ユーザー追加」ボタンを押下する

  3. 「パスワード - AWS マネジメントコンソールへのアクセス」にチェックを入れる以外は任意で設定し、「アクセス権限」ボタンを押下する

  4. 「既存のポリシーをアタッチ」を選択し、「手順5」で作成したポリシーを設定する(※他のポリシーは選択しない。)

  5. そのまま作成までの画面は、任意で設定をし、IAMユーザーを作成する

動作確認

  1. 手順6で作成したIAMユーザーでマネージメントコンソールにサインインする

  2. 「ロールの切り替え」ボタンを押下する(サインイン後の画面で、右上のIAMユーザーの欄を押下するとボタンが表示される)

  3. 「アカウント:スイッチロール先のアカウントID」、「ロール:手順4で作成したロール名」「表示名:任意」をそれぞれ設定し、「ロールの切り替え」ボタンを押下する

  4. 想定通りスイッチロールが完了する

  5. ここまでで不安を感じる方は、手順3で作成したポリシーに関連する操作がAWS上でできることを確認して頂けるとよいかと思います

終わりに

スイッチロールは、サインイン用のユーザは権限を絞っておいて、ロールの切り替えをさせることで、AWS上の色々な操作に関する権限を付与することができるようになるので、様々なシーンで利用できると思います。主に個人利用であれば、認証情報が洩れるなどのレアケースに直面した場合に有用だと思いますし、企業で利用する場合は、複数アカウントをまたいでIAMユーザーは1つに限定しつつ各アカウントで適宜権限を付与するといったことなども可能になると思います。
今更な記事となってしまいましたが、あくまで私の備忘用の生地となりますので、ご容赦ください

ではでは!

この記事が気に入ったらサポートをしてみませんか?