如何解除特定安全组与所有EC2实例的关联,然后将其与新的EC2实例关联,使用BOTO3?
我正在尝试这样的事情:
ec2 = boto3.resource('ec2')
instances = ec2.instances.filter()
for instance in instances:
print(instance.id, instance.instance_type)
for sg in instance.security_groups:
if sg['GroupId'] == sg_id:
instance.modify_attribute ???
感谢您的帮助!
答案 0 :(得分:6)
ec2 = boto3.resource('ec2')
instances = ec2.instances.filter()
for instance in instances:
print(instance.id, instance.instance_type)
all_sg_ids = [sg['GroupId'] for sg in instance.security_groups] # Get a list of ids of all securify groups attached to the instance
if sg_id in all_sg_ids: # Check the SG to be removed is in the list
all_sg_ids.remove(sg_id) # Remove the SG from the list
instance.modify_attribute(Groups=all_sg_ids) # Attach the remaining SGs to the instance