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

如何通过AWS CLI为EC2实例新增安全组且不删除原有绑定安全组

EC2实例新增安全组(不覆盖原有配置)的AWS CLI操作方案

aws ec2 modify-instance-attribute的--groups参数为全量覆盖逻辑,只会保留命令中指定的安全组,因此需要先拉取实例当前绑定的所有安全组,追加新安全组后再统一提交。


单台实例操作步骤

  1. 查询实例当前绑定的安全组ID列表
aws ec2 describe-instances --instance-id <实例ID> --query 'Reservations[0].Instances[0].SecurityGroups[*].GroupId' --output text

返回结果为空格分隔的安全组ID列表,例如:sg-111 sg-222 sg-333
2. 追加目标安全组后提交修改
假设需要新增的安全组ID为sg-444,执行以下命令即可完成新增:

aws ec2 modify-instance-attribute --instance-id <实例ID> --groups sg-111 sg-222 sg-333 sg-444

百台级批量操作脚本

将所有需要操作的实例ID按每行1个的格式存入instance_ids.txt文件,执行以下bash脚本即可批量完成新增:

# 替换为你需要新增的安全组ID
NEW_SG="sg-xxxxx"

while read INSTANCE_ID; do
  # 拉取当前实例已绑定的安全组列表
  CURRENT_SGS=$(aws ec2 describe-instances --instance-id "${INSTANCE_ID}" \
    --query 'Reservations[0].Instances[0].SecurityGroups[*].GroupId' \
    --output text | tr '\t' ' ')
  # 追加新安全组
  UPDATE_SGS="${CURRENT_SGS} ${NEW_SG}"
  # 提交修改
  aws ec2 modify-instance-attribute --instance-id "${INSTANCE_ID}" --groups ${UPDATE_SGS}
  echo "实例${INSTANCE_ID}安全组更新完成"
done < instance_ids.txt

注意事项

操作前请先使用单台测试实例验证逻辑正确性,同时提前导出所有实例当前的安全组绑定记录做备份,避免误操作。
如果待操作实例属于Auto Scaling组,需要同步修改对应启动模板/启动配置中的安全组配置,否则后续新扩容的实例不会自动绑定该安全组。


内容的提问来源于stack exchange,提问作者Piyush Patil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:06:03