设置安全组规则

云原生API网关和后端服务所在的节点分别处于不同安全组内。您可以通过设置安全组规则为云原生API网关授予访问后端服务的权限。

背景信息

安全组是一种虚拟防火墙,用于控制安全组内ECS实例和ENI网卡的入流量和出流量,从而提高ECS实例的安全性。安全组具备状态检测和数据包过滤能力,您可以基于安全组的特性和安全组规则的配置在云端划分安全域,详情请参见安全组概述

您在购买云原生API网关时需要选择VPC和安全组类型(建议与后端服务所在安全组类型一致),根据您选择的安全组类型,云原生API网关会创建相应托管安全组管理网关的实例节点。因为云原生API网关和后端服务所在的节点分别处于不同安全组内,需要您在后端服务的安全组内为云原生API网关授予必要的端口范围访问权限。

云原生网关场景架构图

步骤一:获取目标服务所在节点的安全组

云原生API网关关联的上游服务,主要包括容器部署和ECS部署。您可以通过以下方式获取安全组ID。

目标服务部署在容器服务ACK

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池

  3. 节点池页面,单击对应的节点,然后单击基本信息页签,获取安全组的ID。

    节点池查看安群组.png

目标服务部署在ECS上

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 实例页面,单击目标服务所部署的ECS实例,然后单击安全组页签,获取安全组的ID。

    ecs安全组.png

步骤二:添加安全组授权规则

  1. 登录云原生API网关控制台

  2. 在左侧导航栏,选择实例,并在顶部菜单栏选择地域。

  3. 实例页面,单击目标网关实例名称。

  4. 在左侧导航栏单击概览,然后单击安全组授权页签。

  5. 单击授权安全组,在安全组ID的文本框中,粘贴步骤一中获取的安全组ID,选择相应的安全组。

    image

  6. 输入安全组授权的端口范围:起始值/终止值。

    可以输入多个端口范围,每输入一个端口范围单击回车,即可生效。image

  7. 单击保存

    云原生API网关会生成对应的规则。

    image

    同时目标节点所在的安全组中也会看到在云原生API网关创建的安全组规则。

    image

删除安全组授权规则

  1. 登录云原生API网关控制台

  2. 在左侧导航栏,选择实例,并在顶部菜单栏选择地域。

  3. 实例页面,单击目标网关实例名称。

  4. 在左侧导航栏单击概览,单击安全组授权页签,然后单击操作列下方的删除,单击确定

重要

默认只删除云原生API网关的安全组规则,如需将目标节点所在安全组的规则一并删除,您还需要勾选级联删除该安全组内的上述入方向规则

常见问题

问题一:安全组已经授权,为什么服务还是访问不通?

您可以按照如下步骤自助排查:

  1. 首先需要确认您的目标服务所部署的节点是否正确。

    有可能存在服务部署在了A节点上,但是给B节点所在的安全组授权。

  2. 您的目标节点是否设置了多个安全组。

    如果是多个安全组,建议给每个安全组都授权。

问题二:安全组已经授权,之前网关访问服务是通的,现在突然间不通了,是什么原因?

您可以按照如下步骤自助排查:

  1. 首先确认您的服务本身没有问题。

    您可以对同一安全组内的其他节点使用curl命令检查服务的连通性。

  2. 确认您发布的服务对外暴露的端口是否有变更。

    例如以前端口为8080,在云原生API网关只给8080端口授权了,之后又将端口变更为8081,这时需要重新调整云安全组授权规则端口。为了避免这种情况发生,建议您在配置安全组授权时扩大端口范围,可以将范围选成1/65535。