tk_ch’s blog

インフラエンジニアのブログ

AWS IAMユーザのマネジメントコンソールへのログインを無効にする(AWS CLI)

IAMユーザのマネジメントコンソールへのアクセスが不要な場合、無効にしておくことが望ましい。 マネジメントコンソールから設定したことはあったが、AWS CLIでやりたくなったのでメモ。

環境

AWS CLI:2.2.18

実施内容

マネジメントコンソールへのアクセスについての設定は、「aws iam *-login-profile」コマンドで、ユーザのprofileを操作することで行う。
今回は「administrator」というIAMユーザについて、マネジメントコンソールログインを無効にする。

コンソールログインを無効にする

ユーザ名を変数に設定する。

$ USER_NAME=administrator

現在の状態を確認する。
ログイン用のprofileが存在することが分かる。

$ aws iam get-login-profile --user-name ${USER_NAME}
{
    "LoginProfile": {
        "UserName": "administrator",
        "CreateDate": "2022-03-31T06:01:25+00:00",
        "PasswordResetRequired": false
    }
}

マネジメントコンソールでも有効であることが確認できる。

ログイン有効
「コンソールのパスワード」が有効になっている

profileを削除する。
これで、指定したユーザでのマネジメントコンソールへのアクセスが出来なくなる。
※ログインパスワードの値は消えてしまうので注意。

$  aws iam delete-login-profile --user-name ${USER_NAME}

profileを参照しようとすると、見つからない旨のエラーメッセージが出る。
削除出来ている模様。

$ aws iam get-login-profile --user-name ${USER_NAME}

An error occurred (NoSuchEntity) when calling the GetLoginProfile operation: Login Profile for User administrator cannot be found.

別のユーザでマネジメントコンソールにログインし、profile削除したユーザの認証情報を確認すると、コンソールでのログインが無効になっている。

ログイン無効
「コンソールのパスワード」が無効になっている

ログインできなくなっているか確認

対象ユーザでマネジメントコンソールにログインすると、以下のメッセージが出てログイン出来ない。

ログイン失敗
ログイン失敗時のメッセージ

コンソールログインを有効にしたい場合

以下を実行することで、再度有効にすることができる。
ログインパスワードは無効時に消えてしまっているので、あらためて指定する必要がある。

$ PASSWORD="password"

$ aws iam create-login-profile --user-name ${USER_NAME} --password ${PASSWORD}
{
    "LoginProfile": {
        "UserName": "administrator",
        "CreateDate": "2022-03-31T08:56:48+00:00",
        "PasswordResetRequired": false
    }
}

参考文献

IAMユーザーのマネジメントコンソールのログインを作成後に無効化してみた
AWS CLI Command Reference iam