AWS IAMユーザのマネジメントコンソールへのログインを無効にする(AWS CLI)
IAMユーザのマネジメントコンソールへのアクセスが不要な場合、無効にしておくことが望ましい。 マネジメントコンソールから設定したことはあったが、AWS CLIでやりたくなったのでメモ。
環境
実施内容
マネジメントコンソールへのアクセスについての設定は、「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