EC2 インスタンス毎に利用しているセキュリティグループを CSV で吐かせる AWS CLI

1 min read読了の目安(約700字

はじめに

なんか仕事で AWS を触ることになってしまったので、AWS CLI を触ってみるぞ!
セキュリティグループが、どのインスタンスに紐づいているか、大量にあって分からんということで AWS CLI で調べてみる。

やったこと

インスタンスの情報から、インスタンスの名前とセキュリティグループ名を引っ張ってきて json へ出力。
その後、jq コマンドで csv 出力。

% aws ec2 describe-instances \
 --query "Reservations[].Instances[].{Name: Tags[?Key==\`Name\`].Value, SecurityGroup: NetworkInterfaces[].Groups[].GroupName}" \
 --output json |
 jq -r ".[] | [.Name[0], .SecurityGroup[] ] | @csv"
"JohnMcClane","inbound-web","launch-wizard-4"
% 

ジョンマクレーンに、"inbound-web","launch-wizard-4"の 2 つのセキュリティグループが紐づいていることがわかりました。

おわりに

上記のコマンドで EC2 インスタンスに紐づいているセキュリティグループが CSV で取得できるようになりました。
今回の例では EC2 インスタンス 1 台だけですが、複数台の EC2 インスタンスでも同じコマンドでセキュリティグループを取得できます。
セキュリティグループの棚卸し、セキュリティグループを別に作って集約するときに参考にするなどで使っていこうと思います。