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

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

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

设置方法如下:

  1. 找到需要互通的实例,单击实例ID。
  2. 实例详情页,单击安全组页签。
  3. 找到需要配置的安全组,单击对应的配置规则
  4. 单击入方向页签。
  5. 单击手动添加
  6. 按以下描述添加安全组规则。
    • 授权策略:允许。
    • 优先级:按需设置,默认为1。
    • 协议类型:按需选择协议类型。
    • 端口范围:按需设置端口范围。
    • 授权对象:输入想要内网互通的实例的内网 IP 地址,格式必须是a.b.c.d/32。其中,子网掩码必须是 /32
      使用单IP地址授权
  7. 单击保存完成规则添加。

方法二:加入同一安全组

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

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

方法三:绑定互通安全组

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

设置方法如下:

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

方法四: 安全组互信授权

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

设置方法如下:

  1. 找到需要互通的实例,单击实例ID。
  2. 实例详情页,单击安全组页签。
  3. 找到需要配置的安全组,单击对应的配置规则
  4. 单击入方向页签。
  5. 单击手动添加
  6. 按以下描述添加安全组规则。
    • 授权策略:允许。
    • 优先级:按需设置,默认为1。
    • 协议类型:按需选择协议类型。
    • 端口范围:按需设置端口范围。
    • 授权对象
      • 本账号授权:输入安全组ID。
      • 跨账号授权:输入账号ID和安全组ID,格式为账号ID/安全组ID
  7. 单击保存完成规则添加。

建议

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

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

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

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