文档首页/ 虚拟私有云 VPC/ 用户指南/ 访问控制/ 安全组/ 安全组迁移示例/ 将ECS从多业务实例共用安全组迁移至独立安全组
更新时间:2025-07-25 GMT+08:00

将ECS从多业务实例共用安全组迁移至独立安全组

应用场景

当多种不同用途的实例共用同一个安全组时,由于各实例的安全隔离需求不同,这种共用模式不仅无法满足网络隔离和安全管控的要求,还会增加安全组规则的复杂性,增加后续的业务维护难度。因此为保障网络安全、提升管理效率,建议您将不同用途的业务实例拆分至独立安全组。您可以参考本文提供的方法,完成安全组的迁移和分离,实现各实例专属安全组配置,从而提升网络管理的灵活性和安全性。

方案架构

在本示例中,VPC-A的子网Subnet-A01中部署了云服务器实例ECS-01和数据库实例RDS-01,二者目前共用安全组Sg-A。然而,由于ECS-01需要与公网通信,而RDS-01仅需与内网通信,为确保数据库的安全性,并简化后续的业务维护管理,计划将ECS-01从安全组Sg-A中移出,并为其创建独立的安全组Sg-X,从而实现云服务器实例与数据库实例的安全组策略分离。

本示例更换安全组时,需要在新的安全组内创建好规则,并将ECS-01切换过去,整个迁移过程中不会中断ECS的网络流量。

图1 将ECS从多业务实例共用安全组迁移至独立安全组

约束与限制

  • ECS实例可以更换安全组,RDS实例创建完成后不支持更换安全组。
  • 安全组的更多使用限制,具体请参见安全组的使用限制

资源规划说明

本示例中,虚拟私有云VPC和子网、弹性云服务器ECS和数据库RDS等资源只要位于同一个区域内即可,可用区可以任意选择,无需保持一致。

以下资源规划详情仅为示例,您可以根据需要自行修改。

表1 资源规划总体说明

资源类型

资源数量

说明

虚拟私有云VPC和子网

VPC:1

子网:1

  • VPC名称:请根据实际情况设置,本示例为VPC-A。
  • IPv4网段:请根据实际情况设置,本示例为192.168.0.0/16。
  • 子网名称:请根据实际情况设置,本示例为Subnet-A01。
  • 子网IPv4网段:请根据实际情况设置,本示例为192.168.0.0/24。

弹性云服务器ECS

1

本示例中,1个ECS,配置说明如下:
  • 名称:根据实际情况设置,本示例为ECS-01。
  • 实例规格类型:根据实际情况设置,本示例为c7。
  • 镜像:请根据实际情况设置,本示例为公共镜像CentOS 8.0 64bit。
  • 系统盘:通用型SSD盘,40GB。
  • 数据盘:本示例未选购数据盘,请您根据实际业务需求选购数据盘。
  • 网络:
    • 虚拟私有云:选择您的虚拟私有云,本示例为VPC-A。
    • 子网:选择子网,本示例子网为Subnet-A01。
  • 安全组:本示例中,ECS-01和RDS-01位于同一个安全组Sg-A中,安全组规则如表2所示。
  • 弹性公网IP:请根据实际情况设置,本示例为1.92.XX.XX。
  • 私有IP地址:本示例中ECS-01为192.168.0.66。

数据库RDS

1

  • 实例名称:根据实际情况设置,本示例为RDS-01。
  • 数据库引擎版本:根据实际情况设置,本示例为MySQL 8.0。
  • 实例类型:根据实际情况设置,本示例为主备。
  • 性能规格:根据实际情况设置,本示例为独享型。
  • 网络:
    • 虚拟私有云:选择您的虚拟私有云,本示例为VPC-A。
    • 子网:选择子网,本示例子网为Subnet-A01。
    • IPv4地址:本示例此处不填写,创建完成后系统自动为RDS实例分配IP地址。
    • 数据库端口:本示例使用默认端口3306。
    • 安全组:本示例中,ECS-01和RDS-01位于同一个安全组Sg-A中,安全组规则如表2所示。
  • 内网地址:本示例中RDS-01为192.168.0.242。
  • 管理员账户名:本示例为root。

安全组

2

迁移前已有的安全组,本示例为安全组Sg-A。
  • 迁移前:ECS-01和RDS-01共用安全组Sg-A,安全组规则如表2所示。
  • 迁移后:RDS-01的安全组Sg-A,安全组规则如表3所示。

迁移后新建的安全组,本示例为安全组Sg-X。

迁移后:ECS-01的安全组Sg-X,安全组规则如表4所示。

表2 安全组Sg-A规则说明(迁移前)

方向

策略

类型

协议端口

源地址/目的地址

描述

入方向

允许

IPv4

TCP: 22

源地址:用户本地PC的公网IP地址,本示例为11.13.XX.XX/32

入方向源地址如果设置为0.0.0.0/0表示允许所有外部IP远程登录安全组内实例,由于本示例的ECS-01需要和公网通信,如果将22端口暴露到公网,可能存在网络安全风险,建议此处设置为已知IP地址。

放通安全组内实例的SSH(22)端口,用于远程登录Linux ECS。

入方向

允许

IPv4

ICMP: 全部

IP地址:0.0.0.0/0

放通外部实例ping安全组内实例的流量,比如验证用户本地PC和安全组内实例的网络连接情况。

入方向

允许

IPv4

全部

源地址:当前安全组Sg-A

针对IPv4,用于安全组内实例之间网络互通。

入方向

允许

IPv6

全部

源地址:当前安全组Sg-A

针对IPv6,用于安全组内实例之间网络互通。

出方向

允许

IPv4

全部

目的地址:0.0.0.0/0

针对IPv4,用于安全组内实例访问外部,允许流量从安全组内实例流出。

出方向

允许

IPv6

全部

目的地址:::/0

针对IPv6,用于安全组内实例访问外部,允许流量从安全组内实例流出。

表3 安全组Sg-A规则说明(迁移后)

方向

策略

类型

协议端口

源地址/目的地址

描述

入方向

允许

IPv4

TCP: 3306

源地址按照以下情况配置,二选一即可:

  • IP地址:ECS-01所在的VPC网段,本示例为192.168.0.0/16
  • 安全组:ECS-01所在的安全组,本示例为Sg-X

放通安全组内实例的3306端口,用于访问MySQL数据库服务。

入方向

允许

IPv4

ICMP: 全部

IP地址:0.0.0.0/0

放通外部实例ping安全组内实例的流量,比如验证ECS和RDS的网络连接情况。

入方向

允许

IPv4

全部

源地址:当前安全组Sg-A

针对IPv4,用于安全组内实例之间网络互通。

入方向

允许

IPv6

全部

源地址:当前安全组Sg-A

针对IPv6,用于安全组内实例之间网络互通。

出方向

允许

IPv4

全部

目的地址:0.0.0.0/0

针对IPv4,用于安全组内实例访问外部,允许流量从安全组内实例流出。

出方向

允许

IPv6

全部

目的地址:::/0

针对IPv6,用于安全组内实例访问外部,允许流量从安全组内实例流出。

表4 安全组Sg-X规则说明

方向

策略

类型

协议端口

源地址/目的地址

描述

入方向

允许

IPv4

TCP: 22

源地址:用户本地PC的公网IP地址,本示例为11.13.XX.XX/32

放通安全组内实例的SSH(22)端口,用于远程登录Linux ECS。

入方向

允许

IPv4

ICMP: 全部

IP地址:0.0.0.0/0

放通外部实例ping安全组内实例的流量,比如验证用户本地PC和安全组内ECS的网络连接情况。

入方向

允许

IPv4

全部

源地址:当前安全组Sg-X

针对IPv4,用于安全组内实例之间网络互通。

入方向

允许

IPv6

全部

源地址:当前安全组Sg-X

针对IPv6,用于安全组内实例之间网络互通。

出方向

允许

IPv4

全部

目的地址:0.0.0.0/0

针对IPv4,用于安全组内实例访问外部,允许流量从安全组内实例流出。

出方向

允许

IPv6

全部

目的地址:::/0

针对IPv6,用于安全组内实例访问外部,允许流量从安全组内实例流出。

操作流程

将ECS从多业务实例共用安全组迁移至独立安全组,流程如图2所示。

图2 将ECS从多业务实例共用安全组迁移至独立安全组

迁移前资源创建指导(可选)

以下是迁移前资源创建的指导。如果您需要参考本文进行安全组迁移演练,可根据以下指导搭建迁移前的环境。

  1. 创建1个VPC和1个子网。

    具体方法请参见创建虚拟私有云和子网

  2. 创建1个安全组Sg-A,并参考表2配置安全组规则。
  3. 创建1个RDS实例和1个ECS实例,并且确保ECS上的MySQL客户端可正常连接RDS实例。

    具体方法请参见购买并通过MySQL客户端连接RDS for MySQL实例

步骤一:将ECS添加至新的安全组

  1. 创建1个安全组Sg-X,并参考表4配置安全组规则。
  2. 远程登录ECS-01。

    ECS有多种登录方法,具体请参见登录弹性云服务器

  3. 执行以下命令,通过ECS-01登录数据库RDS-01。

    mysql -h RDS-01的内网地址 -P RDS-01的数据库端口 -u 管理员账号 -p

    命令示例:

    mysql -h 192.168.0.242 -P 3306 -u root -p

    登录成功后,在本次迁移过程中,需要持续观察数据库登录情况。

  4. 在原有安全组Sg-A中添加表5中访问数据库的规则(TCP: 3306),具体方法请参见添加安全组规则
    迁移前,RDS-01和ECS-01位于同一个安全组中,安全组内实例网络互通,因此不需要额外放通3306端口。迁移后,将ECS-01迁移至安全组Sg-X,为确保ECS-01可正常访问RDS-01,则需要在RDS-01所在的安全组Sg-A中放通3306端口。
    表5 安全组Sg-A规则说明(待添加)

    方向

    策略

    类型

    协议端口

    源地址/目的地址

    描述

    入方向

    允许

    IPv4

    TCP: 3306

    源地址按照以下情况配置,二选一即可:

    • IP地址:ECS-01所在的VPC网段,本示例为192.168.0.0/16
    • 安全组:ECS-01所在的安全组,本示例为Sg-X

    放通安全组内实例的3306端口,用于访问MySQL数据库服务。

  5. 在新建安全组Sg-X中添加ECS-01,具体方法请参见在安全组中添加实例
  6. 在原有安全组Sg-A中移出ECS-01,具体方法请参见在安全组中移出实例
    在安全组移出ECS的同时,持续观察数据库登录情况。
    • 如果数据库登录没有断开,则说明安全组Sg-A中3306端口配置正常,可继续执行7
    • 如果数据库登录断开,则需要快速恢复环境,在安全组Sg-A中重新添加ECS-01。

      环境恢复正常后,排查可能原因后重试。

  7. 通过本地PC远程登录ECS-01,验证安全组Sg-X中22端口配置。

    以使用PuTTY工具远程登录ECS-01为例,Host Name (or IP address)中输入ECS-01的EIP地址,本示例为1.92.XX.XX。

    图3 PuTTY配置
  8. 执行以下命令,在本地PC ping ECS-01,验证安全组Sg-X中ICMP端口配置。

    ping ECS的弹性公网IP地址

    命令示例:

    ping 1.92.XX.XX

步骤二:删除原有安全组中的废弃规则

迁移完成后,待ECS和RDS上的业务正常运行一段时间后,执行以下操作,删除原有安全组中的废弃规则,即ECS使用的规则。

  1. 删除原有安全组Sg-A中ECS使用的规则,具体方法请参见删除安全组规则
    待删除规则如表6所示。删除完成后,安全组Sg-A的规则如表3所示。
    表6 安全组Sg-A规则说明(待删除)

    方向

    策略

    类型

    协议端口

    源地址/目的地址

    描述

    入方向

    允许

    IPv4

    TCP: 22

    源地址:用户本地PC的公网IP地址,本示例为11.13.XX.XX/32

    放通安全组内实例的SSH(22)端口,用于远程登录Linux ECS。

  2. 通过本地PC远程登录ECS-01,再次确认ECS-01可正常登录。

    以使用PuTTY工具远程登录ECS-01为例,Host Name (or IP address)中输入ECS-01的EIP地址,本示例为1.92.XX.XX。

    图4 PuTTY配置
  3. 执行以下命令,通过ECS-01登录数据库RDS-01,再次确认ECS-01和RDS-01网络连接正常。

    mysql -h RDS-01的内网地址 -P RDS-01的数据库端口 -u 管理员账号 -p

    命令示例:

    mysql -h 192.168.0.242 -P 3306 -u root -p