ELB にアタッチしているセキュリティグループのルール合計数を調べる方法を教えてください
困っていた内容
ELB にアタッチしているセキュリティグループのルール合計数を調べる方法を教えてください。できれば一括で出したいです。
どう対応すればいいの?
ELB のコンソールからそれぞれのセキュリティグループを確認することはできますが、ELB にアタッチしているセキュリティグループ数が多い場合、確認に手間がかかります。
そのため、AWS CLI で確認するのがオススメです。
Classic Load Balancer と Application Load Balancer のコマンド例を記載します。
前提として jq コマンドのインストール、それぞれ ELB_NAME
と ELB_ARN
の値を変更してください。その後、コマンドをコピー&ペーストすれば動きます。
Classic Load Balancer(CLB)の場合
ELB_NAME=<Classic Load Balancer名> # 現在アタッチされているセキュリティグループの一覧を出す aws elb describe-load-balancers \ --load-balancer-name $ELB_NAME \ | jq '.LoadBalancerDescriptions[].SecurityGroups' # インバウンドルール数の合計を出す SGList=$(aws elb describe-load-balancers \ --load-balancer-name $ELB_NAME \ | jq '.LoadBalancerDescriptions[].SecurityGroups') for SG in $SGList; do \ aws ec2 describe-security-groups \ --group-id $SG \ | jq '[.[] | .[].IpPermissions[].IpRanges | length] | add'; \ done
Application Load Balancer(ALB)の場合
ELB_ARN=<Application Load Balancer の ARN> # 現在アタッチされているセキュリティグループの一覧を出す aws elbv2 describe-load-balancers \ --load-balancer-arns $ELB_ARN | \ jq '.LoadBalancers[].SecurityGroups' # インバウンドルール数の合計を出す SGList=$(aws elbv2 describe-load-balancers \ --load-balancer-arns $ELB_ARN | \ jq '.LoadBalancers[].SecurityGroups') for SG in $SGList; do \ aws ec2 describe-security-groups \ --group-id $SG \ | jq '[.[] | .[].IpPermissions[].IpRanges | length] | add'; \ done
上限緩和済み環境での出力例
[ "sg-aaa", "sg-bbb", "sg-ccc", "sg-ddd", "sg-eee", "sg-fff", "sg-ggg", "sg-hhh" ] 232
運用観点でのポイント
人が目視で確認すると、どんなに厳重にやってもミスすることはありえるので、対象数が増えれば増えるほどコマンドで確認した方が安全です。
ただし、コマンドに問題がある可能性もあるので確実に安全ではないです。
作業で絶対の安心はないので、チームで慎重に進めたり、ミスした時の手戻り手順などカバー力を上げていくことで健全に運用ができると思います。
ありがたいことに、私が所属しているアノテーションのオペレーションチームはこのような意識が浸透していて、作業時の不安要素は極力減らせています。
採用情報:テクニカルサポート | らしく働く、らしく生きる。| アノテーション株式会社