📑

セキュリティグループをcsvで登録しよう

2022/06/21に公開

この記事の概要

intro

FTPの接続元管理など、流動的に変化するセキュリティグループは
IaaCなどで管理するデメリットも大きく、手動で登録している組織も多いのではないでしょうか
そこで今回は、csvからセキュリティグループ登録を行うワンライナーを紹介します。

やり方

ざっくり概要

  • awkでフィールドを読み込んでprintすることで、コマンドを出力
  • パイプでbashに渡して登録

↓この登録コマンドを出力してbashに渡しているだけなので、色々応用きくと思います。

aws ec2 authorize-security-group-ingress --group-id sgのID --ip-permissions IpProtocol=tcp,FromPort=ポート,ToPort=ポート,IpRanges='[{CidrIp=レンジ,Description="説明"}]'

ポイント

awk 内でシングルクォートを扱う場合は\047で置き換える必要があります。

準備編

csvを準備して下さい。
sgのID, Fromポート, Toポート, CIDR, 説明
の順です。

sg-list.txt
sg-1q2w3e4r5t6y7u,21,21,X.X.X.X/X,DISCRIPTION

ワンライナー(ingressルール)

cat sg-list.txt | awk -F, '{ print "aws ec2 authorize-security-group-ingress --group-id "$1" --ip-permissions IpProtocol=tcp,FromPort="$2",ToPort="$3",IpRanges=\047[{CidrIp="$4",Description=\""$5"\"}]\047" }' | bash

outro

シェルか何かでラッピングしておくと
冪等性を保ててチームメンバーにも共有し易いですよね。
cloudshellか何かに置いておくと使い勝手が良いかもしれません。

Discussion