Я пытаюсь установить идентификаторы групп безопасности при создании экземпляра EC2. Если у меня есть список идентификаторов конкретной группы безопасности, я могу сделать это:
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)
Если у меня нет идентификаторов групп безопасности, я бы хотел использовать идентификаторы групп безопасности по умолчанию, которые связаны с launch-wizard-#
группа безопасности, если я не пройду SecurityGroupIds
аргумент в ec2.create_instances
. Есть ли способ передать что-то SecurityGroupIds
аргумент, который говорит boto3 использовать идентификатор группы безопасности по умолчанию? Более конкретно:
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, который можно назначить экземплярам, но это не очень полезно. Например. он не разрешает входящий доступ извне.
Я рекомендую не полагаться на какие-либо неявные значения по умолчанию. Лучше создать новый SG в вашем скрипте boto3 перед созданием экземпляра, а затем назначить его экземпляру.
Видеть Работа с группами безопасности в boto3 для подробностей.
Надеюсь, это поможет :)