#普通にVPC作成すると、プライベートサブネットかどうかをバリデーションしてくれない
Amazon VPCはAWS上に構築するプライベートなネットワーク空間のことです。
ですが作成時にプライベートサブネットかどうかをバリデーションしてくれません。
意図せずパブリックなIPレンジでもVPCを作れてしまいます。
そのためプライベートサブネットか判定して作成するスクリプトを作成してみました。
python3の標準モジュールであるipaddressモジュールが凄く便利です!
開発環境
Python3.8.7
#実装
(IAMユーザー作成、aws configureは割愛します)
例:VPCのCIDR 172.32.0.0/24 をboto3testのNameタグで作成しようとするとき
import boto3
import ipaddress
CIDR = '172.32.0.0/24'
def create_vpc(CIDR):
client = boto3.client('ec2')
response = client.create_vpc(
CidrBlock=CIDR
)
client.create_tags(
Resources=[response['Vpc']['VpcId']],
Tags=[{'Key': 'Name', 'Value': 'boto3test'}])
if ipaddress.ip_network(CIDR).is_private:
create_vpc(CIDR)
else:
print("VPCレンジがパブリックIPです。作成を中止します")
#終わりに
実際にコンソール作業でパブリックIPのCIDRでVPCを作成してしまう事がありました
その後VPCやEC2再構築が必要になりました
気をつける、だと難しいかと思いスクリプト化しました。