AWSマネジメントコンソールに「IAMユーザー」でのログイン後「IAMロール」にスイッチする為の設定メモ


IAMユーザで、AWSマネジメントコンソールにログイン後、特定のIAMロールにスイッチロールできるようにする為の設定メモ

記載内容

  1. マネジメントコンソールログイン用IAMユーザーの作成
  2. スイッチ先のIAMロールの作成
  3. IAMユーザからIAMロールにスイッチ許可する為のAssumeRoleの設定
  4. 上記設定後のIAMユーザログイン/IAMロールへのスイッチ確認

前提

  • 個人利用を想定し、ルートアカウントしか存在しない状態からの設定を想定
  • ログイン用IAMユーザーは「login_user」、スイッチ先IAMロールは「admin_role」とする

1. マネジメントコンソールログイン用IAMユーザの作成

  • マネジメントコンソールログイン

  • IAMコンソールより「ユーザー」を選択

  • マネジメントコンソールログイン用として「login_user」を作成

  • ログインする為だけのユーザのため、基本的に権限は付与せずデフォルト設定で作成


2. スイッチ先のIAMロールの作成

  • IAMコンソールより「ロール」を選択

  • とりあえす「信頼されたエンティティの種類」より「AWSサービス」「EC2」を指定

  • ロールに付与するポリシーを選択(ここでは、管理者権限として「AdministratorAccess」「Billing」ポリシーを付与)

  • ロール名として「admin_role」を指定

3. IAMユーザーからIAMロールにスイッチできるようにする為のAssumeRoleの設定

  • 最初に作成したIAMユーザー(login_user)に対し、スイッチロールを許可する為のポリシーの作成
JSON
{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::アカウントID:role/admin_role"
    }
}
  • 作成するポリシー名は「AllowAssumeRole」と指定

  • IAMユーザ「login_user」に対し、「AllowAssumeRole」ポリシーの設定


  • IAMロール「admine_role」をIAMユーザー「login_user」が使えるようにする為の信頼関係(信頼ポリシー)の設定


Policy
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::アカウントID:user/login_user",
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

4. 上記設定後のIAMユーザログイン/IAMロールへのスイッチ確認

  • マネジメントコンソールからIAMユーザ「login_user」でのログイン確認

  • 作成した管理者ロール「admin_role」へのスイッチロールの確認