Boto3:如何将安全组 ID 设置为默认值?

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-#安全组关联的默认安全组 ID(如果我没有传递SecurityGroupIds参数)ec2.create_instances。有没有办法将某些内容传递给SecurityGroupIds参数,告诉 boto3 使用默认安全组 ID?更具体地说:

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)

答案1

这些launch-wizard-#SG 是由控制台启动向导创建的,它们绝不是“默认”的。

另一方面,每个 VPC 都有一个default可以分配给实例的 SG,但它用处不大。例如,它不允许来自外部的入站访问。

我建议不要依赖任何隐式默认值。最好在创建实例之前在 boto3 脚本中创建一个新的 SG,然后将其分配给实例。

在 boto3 中使用安全组了解详情。

相关内容