安全组是实例级别防火墙,为保障实例安全,设置安全组规则时要遵循最小授权原则,下面介绍四种安全的内网实例互通设置方法。

前提条件

使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册

方法一:使用单IP地址授权

  • 适用场景:适用于小规模实例间内网互通场景。
  • 优点:以IP地址方式授权,安全组规则清晰,容易理解。
  • 缺点:内网互通实例数量较多时,会受到安全组规则条数200条的限制,并且后期维护工作量比较大。

设置方法如下:

  1. 选择需要互通的实例,进入本实例安全组
  2. 选择需要配置安全组,单击配置规则
  3. 单击内网入方向,并单击添加安全组规则
  4. 按以下描述添加安全组规则:
    • 授权策略:允许。
    • 协议类型:根据实际需要选择协议类型。
    • 端口范围:根据您的实际需要设置端口范围,格式为起始端口号/终止端口号
    • 授权类型:地址段访问。
    • 授权对象:输入想要内网互通的实例的内网 IP 地址,格式必须是a.b.c.d/32。其中,子网掩码必须是 /32

      使用单IP地址授权

方法二:加入同一安全组

  • 适用场景:如果您的应用架构比较简单,可以为所有的实例选择相同的安全组,绑定同一安全组的实例之间不用设置特殊规则,默认网络互通。
  • 优点:安全组规则清晰。
  • 缺点:仅适用于简单的应用网络架构,网络架构调整时授权方法要随之进行修改。

设置方法,请参见ECS实例加入安全组

方法三:绑定互通安全组

  • 适用场景:为需要互通的实例增加绑定一个专门用于互通的安全组,适用于多层应用网络架构场景。
  • 优点:操作简单,可以迅速建立实例间互通,可应用于复杂网络架构。
  • 缺点:实例需绑定多个安全组,安全组规则阅读性较差。

设置方法如下:

  1. 新建一个安全组并命名,例如:互通安全组,不需要给新建的安全组添加任何规则。
  2. 将需要互通的实例都添加绑定新建的互通安全组,利用同一安全组的实例之间默认互通的特性,达到内网实例互通的效果。

方法四: 安全组互信授权

  • 适用场景:为需要互通的实例增加绑定一个专门用于互通的安全组,适用于多层应用网络架构场景。
  • 优点:操作简单,可以迅速建立实例间互通,可应用于复杂网络架构。
  • 缺点:实例需绑定多个安全组,安全组规则阅读性较差。

设置方法如下:

  1. 选择需要建立互信的实例,进入本实例安全组
  2. 选择需要配置安全组,单击配置规则
  3. 单击内网入方向,并单击添加安全组规则
  4. 按以下描述添加安全组规则:
    • 授权策略:允许。
    • 协议类型:根据您的实际需要选择协议类型。
    • 端口范围:根据实际需求设置。
    • 授权类型:安全组访问。
    • 授权对象
      • 如果您选择本账号授权:按照您的组网要求,将有内网互通需求的对端实例的安全组ID填入授权对象即可。
        本账号授权
      • 如果您选择跨账号授权授权对象应填入对端实例的安全组ID,账号 ID是对端账号ID(可以在账号管理 > 安全设置里查到)。
        跨账号授权

建议

如果前期安全组授权过大,建议采用以下流程收紧授权范围。
流程图

图中的删除0.0.0.0是指删除原来的允许0.0.0.0/0地址段的安全组规则。

如果安全组规则变更操作不当,可能会导致您的实例间通信受到影响,请在修改设置前备份您要操作的安全组规则,以便出现互通问题时及时恢复。

安全组映射了实例在整个应用架构中的角色,推荐按照应用架构规划防火墙规则。例如:常见的三层Web应用架构就可以规划三个安全组,将部署了相应应用或数据库的实例绑定对应的安全组:
  • Web层安全组:开放80端口。
  • APP层安全组:开放8080端口。
  • DB层安全组:开放3306端口。