LoginSignup
7

More than 5 years have passed since last update.

【メモ】AWSのIAMユーザを棚卸し・クレンジングするときに使ったAWS CLIのコマンド

Last updated at Posted at 2017-01-25

モチベーション

そもそも不要なユーザをこの世から消し去りたい

随時更新する

使ったコマンド

調査

一度もログインしていないユーザの一覧を表示

アクセスキーの発行のみを行っているユーザも含まれるので注意

コマンド
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}

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7