AWSでシステム構築して運用していく方向けに記事を投稿しようと思います
1.背景
AWSを運用する際クライアント端末からインターネットを介しSSHする事が多々ありました
その際、インターネット回線はよく使われるであろうフレッツなどの回線を利用していました
インターネット回線は固定IPサービスはDHCPより高価であるためDHCPにしていましたが、時々グローバルIPが変わってしまい、AWSのセキュリティグループを設定し直すのが面倒なので、ツールを作成しました
ツール(PowerShellのファイル)を叩いていただければ、クライアント端末のグローバルIPを自動でAWS上のセキュリティグループに穴あけしてくれる様になっております。
2.前提条件
- クライアント端末にAWSCLIが導入されていること
- クライアント端末にPowerShellが実行できる環境であること
- 「3.PowerShellファイル」で紹介するLIST.txtを「C:\SCRIPT\LIST.txt」に配置していること
3.PowerShellファイル
#GIP取得
$OldGIP = Get-Content "C:\SCRIPT\LIST.txt"
$TempGIP = (Invoke-WebRequest inet-ip.info/ip).Content
$TempSubnet = "/32"
$NewGIP = ${TempGIP} + ${TempSubnet}
#セキュリティグループに新たに情報登録
aws ec2 authorize-security-group-ingress --group-id sg-XXXXX --protocol tcp --port 22 --cidr ${NewGIP}
#セキュリティグループに古い情報の削除
aws ec2 revoke-security-group-ingress --group-id sg-XXXXX --protocol tcp --port 22 --cidr ${OldGIP}
#今回の情報をLISTファイルに上書き
echo $NewGIP > C:\SCRIPT\LIST.txt
※セキュリティグループID「sg-XXXXX」はSSH対象のEC2に付与しているセキュリティグループIDに変更する必要有り
※PowerShellのファイル自体はどこに配置しても問題無いです
8.8.8.8/32
※初回は古いセキュリティグループが無いので、GoogleDNSをLISTファイルに記載
※以降は勝手にLISTファイルが更新されます
4.結論
PowerShellファイル自体はもう少しシンプルにできるかもしれませんが。。
取り合えず投稿第一弾となります。既出でしたら申し訳ございません。