You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS CLI或Python编程移除EC2实例上的安全组(非删除)

EC2实例解绑安全组的AWS CLI和Python实现方案

该需求完全可以实现。EC2实例绑定/解绑安全组的本质是替换实例关联的安全组列表,无需删除安全组本身,通过AWS CLI、Python Boto3调用modify-instance-attribute接口即可完成操作。

AWS CLI 操作步骤

  • 查询目标实例当前绑定的所有安全组ID,执行命令:
    aws ec2 describe-instances --instance-ids <替换为你的EC2实例ID> --query 'Reservations[*].Instances[*].SecurityGroups[*].GroupId' --output text
  • 执行解绑操作,--groups参数传入你想要保留的所有安全组ID,未传入的安全组会被自动解绑:
    aws ec2 modify-instance-attribute --instance-id <替换为你的EC2实例ID> --groups <保留的安全组ID1> <保留的安全组ID2> ...

Python(Boto3)操作示例

确保你已经安装boto3并完成AWS凭证配置,示例代码如下:

import boto3

# 初始化EC2客户端,替换为你的实例所属区域
ec2_client = boto3.client('ec2', region_name='cn-north-1')
INSTANCE_ID = "i-xxxxxx"  # 替换为你的EC2实例ID
REMOVE_SG_ID = "sg-xxxxxx" # 替换为你要解绑的安全组ID

# 获取当前实例绑定的安全组列表
resp = ec2_client.describe_instances(InstanceIds=[INSTANCE_ID])
current_security_groups = [sg["GroupId"] for sg in resp["Reservations"][0]["Instances"][0]["SecurityGroups"]]

# 过滤掉需要移除的安全组
updated_security_groups = [sg for sg in current_security_groups if sg != REMOVE_SG_ID]

# 提交修改请求
ec2_client.modify_instance_attribute(
    InstanceId=INSTANCE_ID,
    Groups=updated_security_groups
)

*注意事项:

  • 仅VPC类型的EC2实例支持修改安全组绑定,经典网络类型EC2实例不支持该操作
  • 每次调用接口必须传入完整的需要保留的安全组ID列表,不能仅传入要删除的ID*

内容的提问来源于stack exchange,提问作者jayendra bhatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:54:03