スイッチ用のIAMロール作成手順

2022.02.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

吉川@広島です。

早速ですが、AWSにおけるスイッチロールの設定手順をまとめてみましたので紹介します。

前提

以下の想定で考えます。

  • AWSアカウントA
    • この配下にIAMユーザaが存在する(MFA必須)
  • AWSアカウントB
    • この配下にIAMロールbを作成し、IAMユーザaからスイッチできるようにする

2つのAWSアカウントがあり、アカウントAのユーザaはすでに存在するものとします。ユーザaからアカウントBのロールbにスイッチできるように設定していきます。また、IAMユーザのMFAは必須とします。

IAMポリシー作成+IAMユーザにアタッチ

まずアカウントAで作業します。

下記のようなIAMポリシーを作成します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "true"
                }
            }
        }
    ]
}

このポリシーをIAMユーザaにアタッチします。これにより、ユーザaはスイッチロールする権限を得ます。

また、IAMユーザaのARNを控えておきます。

IAMロール作成

こちらはアカウントBで作業します。

信頼されたエンティティの種類は「別のAWSアカウント」を選択します。アカウントAのアカウントIDを入力し、「MFAが必要」にチェックを入れます。

ロールに持たせたいポリシーを選択し、アタッチします。今回はAdministratorAccessとしました。

ロール名を決めて作成します。

作成できたら、続いて信頼関係を編集します。ロール詳細を開き、「信頼関係」→「信頼関係の編集」をクリックします。

Principal.AWS の値を修正します。root指定になっているので、先ほど控えておいたIAMユーザaのARNに書き換えます。つまり、 "arn:aws:iam::xxxxxxxxxxxx:root" から "arn:aws:iam::xxxxxxxxxxxx:user/xxxxxxxxxx" の指定に変更となるはずです。

上記内容を保存すれば完了です。

参考