AWS SSH接続, セキュリティグループ更新 自動化
グローバルIPアドレスが変わる環境で、毎回セキュリティグループを更新してssh接続するのがめんどくさいのでスクリプト書きました。"<>"で記載されたところを使用する環境に合わせて変更してください。
自動接続用スクリプト
IP=$(curl https://checkip.amazonaws.com)
##IPアドレス取得
aws ec2 authorize-security-group-ingress --group-id <セキュリティグループID> --protocol tcp --port 22 --cidr ${IP}/32
##現在使用中のIPアドレスを追加
ssh <接続先>
##ssh接続
自動削除用スクリプト
毎回上記のスクリプトを使用していると、古いIPアドレスを許可したままになり、ゴミルールが溜まっていきます。必要なルールだけ残して古いIPアドレスを許可するルールを一括で削除するスクリプトは下記です。
deleteIP_Array=(`aws ec2 describe-security-groups --group-ids <セキュリティグループID> |jq -r '.SecurityGroups[].IpPermissions[]|select(.ToPort== 22)|.IpRanges[].CidrIp|select(.!="<削除せずに残しておきたいCIDR>")'`)
##削除するIPアドレス一覧を取得
for deleteIP in ${deleteIP_Array[@]}
do
aws ec2 revoke-security-group-ingress --group-id <セキュリティグループID>--protocol tcp --port 22 --cidr ${deleteIP}
done
##IPアドレスを削除
jq パッケージ インストール
上記のスクリプトではjqコマンド(JSONを操作するコマンド)を使用するのでjq パッケージもインストールしましょう。jqについてはManコマンドを読んでください。読みたくない人は下記のサイトをみてください。
https://dev.classmethod.jp/tool/jq-manual-japanese-translation-roughly
インストール方法:CentOS
sudo yum -y install epel-release
sudo yum -y install jq
インストール方法:Mac
$ brew install jq
brew パッケージをインストールしていない方は下記
https://qiita.com/pypypyo14/items/4bf3b8bd511b6e93c9f9
Windowsは知りませーん
この記事が気に入ったらサポートをしてみませんか?