web-dev-qa-db-ja.com

Boto3:セキュリティグループIDをデフォルトに設定するにはどうすればよいですか?

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)
2
Kirtiman Sinha

それらのlaunch-wizard-# SGは、コンソール起動ウィザードによって作成されます。SGは「デフォルト」ではありません。

一方、各VPCにはインスタンスに割り当てることができるdefault SGがありますが、あまり役に立ちません。例えば。外部からのインバウンドアクセスは許可されません。

暗黙のデフォルトに依存しないことをお勧めします。インスタンスを作成する前に、boto3スクリプトで新しいSGを作成し、それをインスタンスに割り当てることをお勧めします。

詳細については、 boto3 のセキュリティグループの操作を参照してください。

お役に立てば幸いです:)

0
MLu