マネージメントコンソールでログイン可能なユーザーを作成する

マネージメントコンソールへログイン可能なユーザーの作成方法を説明します。 今回は管理者がマネージメントコンソールでIAMユーザーを作成することを想定して書いています。
2022.10.31

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

今回はマネージメントコンソールにアクセス可能なIAMユーザーの作成方法を説明します。

IAMユーザーの作成

まず初めにIAMのページからユーザーを追加ボタンを押します。

ユーザー詳細の設定

するとユーザー作成画面に遷移するので、そこで情報を入力していきます。 今回ユーザー名は「sample」としています。

ユーザーのアクセス方法には以下の2種類があります。

  • アクセスキー(AWS CLIやSDKなどでつかう)
  • パスワード(マネージメントコンソールへのアクセスに使う)

今回はパスワードのみで話を進めます。

「コンソールのパスワード」で初期パスワードを設定できます。 今回は「自動生成」にします。カスタムにすれば好きなパスワードを設定可能です。

「パスワードリセット」は初回サインイン時に初期パスワードから違うものに変更を要求する設定です。 今回はセキュリティの観点から有効にしています。(初期パスワードは平文で誰かに渡すことが多いので怖いです)

アクセス許可の設定

あとから設定できるので、今回はここは何も設定しません。 アクセス権限は適切な権限を付与することを心がけましょう。

タグの追加

IAMではユーザーにタグを付けることが可能です。 ユーザーの識別(部署やロール)などで分けると管理が楽になるかもしれません。 ただ、今回は無しで行きます。

確認

すべての情報を入力したので確認画面が出てきます。 「このユーザーにはアクセス権限がありません」との警告が出ていますが、これは後で設定するので問題ありません。 この設定で作成します。

パスワードの確認

ユーザーの作成に成功するとこのような画面が表示されます。 ここでパスワード情報をCSVでダウンロードしておくと良いです。

CSVの中身は認証情報とコンソールへのログインリンクが含まれています。 この2つを渡せばログイン可能です。

ログインしてみる

コンソールログイン用のURLを開いてユーザ名、初期設定のパスワードを入力します。

パスワードの変更が要求されるので新しいパスワードを設定します。 パスワードポリシーに適していない場合設定できません。 パスワードポリシーは以下で確認できます。

ポリシーの適用

先程作成したアカウントは一切権限を持っていないので何もすることが出来ません。 管理者側のアカウントでIAMポリシーをアタッチして権限を付与します。(グループへの追加でも可)

「アクセス権限の追加」を押せばポリシーの追加が可能です。

以下にいくつかポリシーの設定例を書いておきます。

AWS管理ポリシー

要件に合えばAWSが用意している「AWS管理ポリシーを使うのが便利です。 ただ、面倒だからといって必要以上の権限を与えるのは危険です(特にAdministratorAccess)。

以下は個人的によく見る広い範囲の権限を持ったポリシーです。

  • 管理者権限: AdministratorAccess
  • 開発用のパワーユーザー(アカウント管理周りは権限なし): PowerUserAccess
  • 閲覧のみ: ReadOnlyAccess

AssumeRole

他のIAMロールに切り替えて作業する場合に必要です。

AssumeRole

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

認証情報の設定の許可

パスワードリセットやMFAデバイスを有効・無効にする設定です。 この設定だと該当ユーザーのパスワード・MFAデバイスの設定変更以外は出来ません。(ユーザーのリストの取得は可能)

MFADevice

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetUser",
                "iam:GetLoginProfile"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Effect": "Allow",
            "Action": "iam:ListUsers",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:DeleteVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:ResyncMFADevice",
                "iam:CreateVirtualMFADevice",
                "iam:ListMFADevices",
                "iam:ChangePassword"
            ],
            "Resource": [
                "arn:aws:iam::*:mfa/${aws:username}",
                "arn:aws:iam::*:user/${aws:username}"
            ]
        }
    ]
}

セキュリティの観点からMFAは有効にしておいたほうが良いと思います。 MFAを強制的に有効化したい場合は以下の記事が参考になるかと思います。