モチベーション
そもそも不要なユーザをこの世から消し去りたい
随時更新する
使ったコマンド
調査
一度もログインしていないユーザの一覧を表示
アクセスキーの発行のみを行っているユーザも含まれるので注意
コマンド
aws iam list-users \
--query "Users[?PasswordLastUsed==NULL].UserName"
パスワードでのログイン実績があるユーザの一覧を、最終ログイン日でソートして表示
コマンド
aws iam list-users \
--query "Users[?PasswordLastUsed!=NULL] | \
sort_by([],&PasswordLastUsed)"
ログインプロファイルの有無を確認
ユーザのログインプロファイルが存在していると、ユーザを削除できません
コマンド
USER_NAME="(User Name)"
aws iam get-login-profile --user-name ${USER_NAME}
アクセスキーの有無を確認
コマンド
USER_NAME="(User Name)"
aws iam list-access-keys --user-name ${USER_NAME}
ユーザが所属するグループを確認
ユーザがグループに所属していると、ユーザを削除できません
コマンド
USER_NAME="(User Name)"
aws iam list-groups-for-user --user-name ${USER_NAME}
ユーザにアタッチされているポリシーを確認
ユーザにポリシーがアタッチされていると、ユーザを削除できません
コマンド
USER_NAME="(User Name)"
aws iam list-user-policies --user-name ${USER_NAME}
削除
ログインプロファイル
コマンド
USER_NAME="(User Name)"
aws iam delete-login-profile --user-name ${USER_NAME}
ユーザをグループから削除
コマンド
USER_NAME="(User Name)"
GROUP_NAME="(Group Name)"
aws iam remove-user-from-group --group-name ${GROUP_NAME} --user-name ${USER_NAME}
ユーザにアタッチされているポリシーをデタッチ
コマンド
USER_NAME="(User Name)"
POLICY_ARN="(Policy ARN)"
aws iam detach-user-policy --policy-arn ${POLICY_ARN} --user-name ${USER_NAME}
ユーザを削除
コマンド
USER_NAME="(User Name)"
aws iam delete-user --user-name ${USER_NAME}