Closed2
終了保護が無効のEC2インスタンスを検出するスクリプト

echo -e "Name,TerminationProtection"
for instance_id in $(aws ec2 describe-instances \
--region ap-northeast-1 \
--query 'Reservations[*].Instances[*].InstanceId' \
--output text); do
# Nameタグ取得
name=$(aws ec2 describe-tags \
--region ap-northeast-1 \
--filters "Name=resource-id,Values=$instance_id" "Name=key,Values=Name" \
--query 'Tags[0].Value' \
--output text)
# 終了保護の状態取得
protection=$(aws ec2 describe-instance-attribute \
--region ap-northeast-1 \
--instance-id "$instance_id" \
--attribute disableApiTermination \
--query 'DisableApiTermination.Value' \
--output text)
if [ "$protection" = "False" ]; then
# 赤色で警告
echo -e "\033[31m$name,⚠️ 無効(False)\033[0m"
else
echo "$name,有効(True)"
fi
done

出力サンプル。(コンソールでは終了保護が無効の場合は赤く出力される)
ec2-ins-foo,有効(True)
ec2-ins-bar,⚠️ 無効(False)
このスクラップは4ヶ月前にクローズされました