LoginSignup
1
1

More than 3 years have passed since last update.

AWS クライアント端末のグローバルIPをセキュリティグループに登録するPSファイル

Last updated at Posted at 2020-04-11

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ファイル

SGset.ps1
#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のファイル自体はどこに配置しても問題無いです

LIST.txt
8.8.8.8/32

※初回は古いセキュリティグループが無いので、GoogleDNSをLISTファイルに記載
※以降は勝手にLISTファイルが更新されます

4.結論

 PowerShellファイル自体はもう少しシンプルにできるかもしれませんが。。
取り合えず投稿第一弾となります。既出でしたら申し訳ございません。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1