MFAが有効になってないユーザーを洗い出す
IAMユーザーはMFA必須で利用したいところですが、AWSアカウント数やIAMユーザー数が多かったりするとパトロールが面倒なのでCLIから確認してみます。
確認するスクリプト
確認を除外したいユーザーがいる場合、適当に避けてしまいます。
#!/bin/sh
profile=$1
test -z "${profile}" && {
echo "引数にawscliのプロファイル名をつけないと動きません。"
exit 1
}
userlist=$(aws --profile ${profile} iam list-users|jq -r '.Users[]|.UserName')
for username in ${userlist}
do
if [[ ${username} =~ (jogai-user1|jogai-user2) ]];then
continue
else
is_mfa=$(aws --profile ${profile} iam list-mfa-devices --user-name ${username}|jq -r '.MFADevices[]|.EnableDate')
test -z "${is_mfa}" && {
echo "${username} のMFAは無効ですぞ"
}
fi
done
実行
実行するとMFA未設定のユーザーが出てきます。定期的に実行してslackに通知などすると良いかもしれません。
$ sh check_iam_mfa_beta.sh myprofile
hogehoge のMFAは無効ですぞ
foobar-buz のMFAは無効ですぞ