EC2インスタンスの作成中にセキュリティグループIDを設定しようとしています。特定のセキュリティグループIDリストがある場合は、次のように実行できます。
boto3.resource(resource, region_name=self.region)
ec2 = self.resource
instances = ec2.create_instances(
ImageId=image_id,
MinCount=minCount,
MaxCount=maxCount,
InstanceType=instance_type,
SubnetId=subnet_id,
KeyName=key_pair,
SecurityGroupIds=security_groups)
セキュリティグループIDがない場合、launch-wizard-#
でSecurityGroupIds
引数を渡さないと、ec2.create_instances
セキュリティグループに関連付けられるデフォルトのセキュリティグループIDを使用したいと思います。 boto3にデフォルトのセキュリティグループIDを使用するように指示するSecurityGroupIds
引数に何かを渡す方法はありますか?すなわち:
instances = ec2.create_instances(
ImageId=image_id,
MinCount=minCount,
MaxCount=maxCount,
InstanceType=instance_type,
SubnetId=subnet_id,
KeyName=key_pair,
SecurityGroupIds= <"What do I pass here so that boto3 takes in defaults?">)
そのため、以下と同じ動作が得られます(前のコードスニペットを使用)。
instances = ec2.create_instances(
ImageId=image_id,
MinCount=minCount,
MaxCount=maxCount,
InstanceType=instance_type,
SubnetId=subnet_id,
KeyName=key_pair)
それらのlaunch-wizard-#
SGは、コンソール起動ウィザードによって作成されます。SGは「デフォルト」ではありません。
一方、各VPCにはインスタンスに割り当てることができるdefault
SGがありますが、あまり役に立ちません。例えば。外部からのインバウンドアクセスは許可されません。
暗黙のデフォルトに依存しないことをお勧めします。インスタンスを作成する前に、boto3スクリプトで新しいSGを作成し、それをインスタンスに割り当てることをお勧めします。
詳細については、 boto3 のセキュリティグループの操作を参照してください。
お役に立てば幸いです:)