Amazon-Web-Services

Boto3:如何將安全組 ID 設置為預設值?

  • April 15, 2022

我正在嘗試在創建 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,我想使用與安全組相關聯的預設安全組 ID,launch-wizard-#如果我沒有SecurityGroupIdsec2.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)

這些launch-wizard-#SG 是由控制台啟動嚮導創建的,無論如何它們都不是“預設”的。

另一方面,每個 VPC 都有一個default可以分配給實例的 SG,但它不是很有用。例如,它不允許來自外部的入站訪問。

我建議不要依賴任何隱式預設值。最好在創建實例之前在您的 boto3 腳本中創建一個新的 SG,然後將其分配給實例。

有關詳細資訊,請參閱在 boto3中使用安全組。

引用自:https://serverfault.com/questions/1004728