阿里云国际站ACS:如何通过阿里云ACS批量修改安全组规则?

99 阅读2分钟

TG:@yunlaoda360

阿里云的 ActionTrail Command Service (ACS) (其实全称是 Alibaba Cloud Command Service,在阿里云控制台叫“云助手”)支持批量在多个实例上执行命令,但它本身并不能直接“批量修改安全组规则”,而是通过调用阿里云的 APICLI 来实现。
你可以理解为:ACS 负责批量分发执行脚本,而修改安全组的动作则由脚本调用阿里云的安全组 API 完成。

下面我给你分成两种常见方法说明:

方法一:直接用阿里云 CLI 批量修改

如果你会用 CLI,可以一次性修改多个安全组或实例绑定的安全组规则。

  1. 安装并配置阿里云 CLI

    curl -o-  | bash
    aliyun configure
    

    输入 AccessKey IDAccessKey Secret、默认地域等。

  2. 查询要修改的安全组 ID

    aliyun ecs DescribeSecurityGroups --RegionId cn-hangzhou
    
  3. 批量添加安全组规则
    例如添加允许 80 端口访问的规则:

    aliyun ecs AuthorizeSecurityGroup \
        --RegionId cn-hangzhou \
        --SecurityGroupId sg-12345678 \
        --IpProtocol tcp \
        --PortRange 80/80 \
        --SourceCidrIp 0.0.0.0/0
    

    多个安全组 ID 可以用脚本循环调用。

  4. 批量删除安全组规则

    aliyun ecs RevokeSecurityGroup \
        --SecurityGroupId sg-12345678 \
        --IpProtocol tcp \
        --PortRange 80/80 \
        --SourceCidrIp 0.0.0.0/0
    

方法二:通过 ACS(云助手)批量执行修改脚本

适合有几十上百台 ECS 绑定不同安全组,需要统一调整时。

jimeng-2025-07-31-7763-创建一个具有未来科技感的云服务器服务宣传图。主视觉是发光的白云和华为云相间的服务....jpeg

  1. 准备安全组修改脚本
    假设你写一个 Shell 脚本调用阿里云 API:

    #!/bin/bash
    REGION_ID="cn-hangzhou"
    SG_ID="sg-12345678"
    aliyun ecs AuthorizeSecurityGroup \
        --RegionId $REGION_ID \
        --SecurityGroupId $SG_ID \
        --IpProtocol tcp \
        --PortRange 443/443 \
        --SourceCidrIp 0.0.0.0/0
    
  2. 上传脚本到 ACS

    • 登录阿里云控制台 → 云助手(Command Service)。
    • 创建命令 → 选择 Shell 类型 → 粘贴脚本内容。
  3. 批量执行

    • 选择 ECS 实例列表(可跨地域批量选)。
    • 点击执行 → ACS 会在所有实例上执行修改。
  4. 查看执行结果

    • 云助手会提供每台机器的执行日志。
    • 如果部分机器执行失败,可以根据日志重试。

注意事项

  • 先在测试环境验证脚本,避免误删规则。
  • 建议使用安全组描述(Description)记录规则用途,方便日后批量管理。
  • 如果 ECS 在多个地域,需要分地域调用 API 或创建命令。
  • 对于核心业务安全组,建议开启安全组变更审计(ActionTrail)以便回溯。