在ASM网关中配置黑白名单

当您需要精确控制用户对服务的访问权限时,可以在ASM网关中配置黑白名单。ASM网关支持从源地址、HTTP域名、端口、远程源IP四个维度对流量进行精确控制,以保障网格内应用的安全。本文以源地址为例,介绍如何在ASM网关中配置IP黑名单和白名单。

前提条件

已部署应用到ASM实例的集群。具体操作,请参见在ASM实例关联的集群中部署应用

配置说明

  • 每条请求匹配规则内部的关系为AND,请求匹配规则之间的关系为OR。

  • 关闭黑白名单,对应的授权策略会被删除。

  • HTTP域名(Host)支持精确匹配、前缀和后缀匹配。配置示例如下:

    • 精确匹配:aliyun.com

    • 前缀匹配:aliyun*

    • 后缀匹配:*aliyun.com

使用网关日志获取客户端源IP地址

说明

对于南北向流量,客户端先请求负载均衡,然后将请求转给Istio IngressGateway,最后转给后端服务。由于IngressGateway的存在,获取客户端源IP地址变得更为复杂。关于如何在网关中设置南北向流量保留源IP地址,请参见为南北向流量保留源IP地址

  1. 在浏览器中输入http://{您的ASM网关IP地址}/productpage,访问Productpage服务,产生访问日志。

    关于如何获取ASM网关IP地址,请参见获取入口网关地址

  2. 使用数据面集群的KubeConfig,执行以下命令,使用网关日志获取客户端源IP地址。

    kubectl -n istio-system logs ${您的网关Pod名称} -c istio-proxy | grep "/productpage" | tail -n 1

    示例输出:

    {"method":"GET","authority":"47.99.XXX.XXX","response_flags":"-","start_time":"XXXXXX","requested_server_name":null,"request_id":"*****","upstream_local_address":null,"duration":0,"downstream_local_address":"10.34.0.25:80","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.X.X Safari/537.36","upstream_host":null,"bytes_received":0,"istio_policy_status":null,"protocol":"HTTP/1.1","bytes_sent":19,"downstream_remote_address":"XXXXXXX","response_code":403,"x_forwarded_for":"112.124.XXX.XX","upstream_cluster":"outbound|9080||productpage.default.svc.cluster.local","trace_id":null,"path":"/productpage","upstream_transport_failure_reason":null,"upstream_service_time":null,"route_name":null}

    示例输出中的downstream_remote_address即为当前客户端源IP地址。

为网关配置IP黑名单,禁止当前客户端IP访问

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理

  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择ASM网关 > 入口网关

  3. 入口网关页面,单击目标网关名称,然后在网关概览页面左侧,选择网关安全 > 黑白名单

  4. 黑白名单匹配规则配置向导,打开启用网关黑白名单开关,匹配模式选择黑名单,打开源地址(IPBlock)开关,输入客户端源IP地址,然后单击提交

    说明

    若您需要配置多条匹配规则,请单击添加请求匹配规则,实现同时拦截或放行多类请求。

    创建完成后,页面会显示网关黑白名单创建成功,表示当前网关黑白名单策略已经生效。您可以单击AuthorizationPolicy右侧的查看YAML,查看已配置的黑白名单语义信息。

  5. 在浏览器中输入http://{您的ASM网关IP地址}/productpage,访问Productpage服务。

    出现如下页面,表示访问被拒绝,说明黑名单规则已经生效。

    黑名单规则生效

为网关配置IP白名单,只允许当前客户端IP访问

下文将在已配置的IP黑名单的基础上,通过修改匹配模式,验证说明IP白名单功能。

  1. 入口网关页面,单击目标网关名称,在网关概览页面左侧,选择网关安全 > 黑白名单

  2. 黑白名单匹配规则配置向导,将匹配模式改为白名单,然后单击提交

  3. 访问Productpage服务。

    1. 在浏览器中输入http://{您的ASM网关IP地址}/productpage。

      可以看到页面能够正常访问。

    2. 使用其他IP的客户端,在浏览器中输入http://{ASM网关IP地址}/productpage。

      出现如下页面,表示其他客户端IP访问被拒绝,说明白名单规则已经生效。黑名单规则生效

相关文档

如果您需要采集ASM网关的访问日志,请参见生成和采集ASM网关访问日志