访问控制

更新时间:
复制为 MD 格式

ALB访问控制通过在监听上配置IP黑白名单,实现对客户端请求的精细化过滤。用户可以创建访问控制策略组,添加IP条目,并将策略组关联到监听来限制或放行特定来源的访问。

访问控制(ACL)与安全组如何选择

ALB提供两种访问控制机制:访问控制ACL安全组

对比项

访问控制ACL(本文)

ALB安全组

控制粒度

基于源IP,作用于单个监听。

基于源IP + 协议 + 端口,作用于整个ALB实例。

IPv6支持

不支持,仅可添加IPv4条目。

支持IPv4IPv6地址。

默认行为

白名单模式自动拒绝未列入的IP;黑名单模式自动放行未列入的IP。

默认放通所有流量,必须显式添加拒绝规则(0.0.0.0/0)才能限制访问。

适用场景

简单IP黑白名单。配置简便,无需理解优先级规则。

需端口粒度控制、IPv6控制、或ICMP协议控制的场景。

前提条件

创建ALB实例配置监听

创建访问控制策略组

访问控制策略组是IP条目的集合。创建策略组并添加IP条目后,可将其关联到监听以实现黑名单或白名单访问控制。

控制台

  1. 前往ALB控制台的访问控制页面,在顶部菜单栏选择目标实例所属地域,然后单击创建访问控制策略组

  2. 创建访问控制策略组对话框,输入策略组名称,单击确定

  3. 策略组创建完成后,在访问控制页面,单击目标策略组ID进入详情页。在条目页签,通过以下方式添加IP条目:

    • 单个添加:单击添加条目,在对话框输入地址/地址段备注,单击添加

    • 批量添加:单击批量添加条目,按以下格式批量输入:

      • 每个条目一行,以回车分隔。

      • IP地址或IP地址段与备注之间用竖线(|)分隔,例如192.168.1.0/24|备注

      • 单次最多支持添加20个条目。

      • 如果批量添加的条目中包含策略组内已存在的条目,批量添加将失败,需移除重复条目后重新提交。

添加完成后,可在条目列表中删除或导出条目。

API

开启/关闭访问控制

用户可以为监听设置访问白名单或黑名单:

  • 白名单:仅允许策略组内的IP访问监听,拒绝其他所有请求。

  • 黑名单:拒绝策略组内的IP访问监听,放行其他所有请求。

重要

无论设置白名单还是黑名单,如果关联的策略组中没有任何IP条目,访问控制不会生效,监听将转发全部请求。设置白名单前请确认策略组内已包含需要放行的IP,避免阻断正常业务流量。

控制台

  1. 前往ALB控制台的实例页面,在顶部菜单栏选择目标实例所属地域,单击目标实例ID。

  2. 监听页签,找到目标监听,在访问控制列单击启用关闭

    • 启用:在对话框选择访问控制方式白名单黑名单)和访问控制策略组,单击保存

    • 关闭:在确认对话框单击确定

也可以在监听详情页的访问控制区域开启或关闭访问控制。

API

常见问题

配了白名单,任意IP仍能访问

原因:策略组未关联到监听;或策略组中没有添加任何IP条目(空策略组等同于全部放通)。

解决方案:进入ALB实例的监听页签,确认目标监听的访问控制列显示已开启,并确认关联的策略组中包含IP条目。

想临时全放通,添加0.0.0.0/0到白名单不生效

原因:访问控制策略组不支持添加0.0.0.0/0,控制台会提示格式错误。

解决方案:正确做法是直接关闭访问控制,需要时再开启。

配了黑名单,目标IP仍能访问

原因:请求经CDN/WAF转发到ALB,ALB看到的源IPCDN/WAF的回源IP,而非客户端真实IP。

解决方案:ALB访问控制在四层生效,匹配的是请求报文的源IP地址。当请求经CDN/WAF转发时,源IPCDN/WAF的回源IP,因此ALB层的黑名单无法拦截客户端IP。需要在WAFCDN层配置黑名单。

黑名单无法拦截X-Forwarded-For中的IP

原因:ALB访问控制在四层生效,仅匹配请求报文的源IP地址,不解析七层HTTP头部中的X-Forwarded-For字段。

解决方案:可在 WAF 中通过自定义规则实现:将匹配字段设为 X-Forwarded-For、逻辑符设为包含匹配内容填写目标IP,规则动作设为拦截。参考配置自定义规则中的匹配条件说明

在后端Nginx配了allow/deny不生效

原因:经过ALB代理后,后端服务器收到的请求来源IPALBLocal IP(从ALB实例所在交换机分配的私网地址),Nginxallow/deny基于来源IP判断,因此无法匹配客户端IP。

解决方案

  • (推荐)改用ALB访问控制功能,在ALB层直接配置IP黑白名单。

  • Nginx中通过X-Forwarded-For请求头获取客户端真实IP,再基于真实IP配置allow/deny规则。

想对单个域名或URL路径做访问限制

说明:访问控制ACL作用于监听级别,无法按域名或路径区分。开启后该监听下所有域名均受影响。

替代方案:标准版或WAF增强版ALB可通过转发规则实现——在转发条件中同时配置域名/路径SourceIp条件,对匹配的请求返回固定响应(如403)。单条转发规则的SourceIp条件最多支持5IP/CIDR段,且不支持0.0.0.0/x格式。如IP数量较多或使用基础版ALB,建议接入WAF,通过自定义规则实现域名/路径与IP组合的访问控制。

想封禁国外IP

说明:ALB访问控制不提供地域封禁功能,无法自动识别IP所属国家。

替代方案:可以手动将已知国外IP段加入黑名单,但无法自动更新且条目数有上限。建议使用WAF区域封禁功能实现。

多层代理场景的访问控制

ALB前存在七层代理时,ALB访问控制(四层生效)只能看到上一跳代理的回源IP,无法识别客户端真实IP,需在正确的层级配置访问控制。以CNAME接入WAF的场景为例(客户端 → CDN → WAF → ALB → ECS),各层的源IP和访问控制建议如下。

WAF增强版ALB通过SDK集成实现防护,WAF不参与流量转发,因此不存在WAF回源环节。如果ALB前无CDN等七层代理,则不存在本节描述的问题。

层级

看到的源IP

访问控制建议

WAF

  • CDN时为客户端真实IP。

  • CDN时为CDN回源IP,需在WAF接入配置中设置客户端IP判定方式以获取真实客户端IP。

推荐在此层做IP黑白名单。WAF正确配置后可基于客户端真实IP进行拦截,同时支持地域封禁功能。

ALB

WAF的回源IP。

ALB配置白名单,仅允许WAF的回源IP段访问,防止攻击者绕过WAF直接访问ALB公网IP。WAF回源IP可在WAF控制台的接入管理页面查看。

后端ECS

ALBLocal IP(从ALB实例所在交换机分配的私网地址)。

ECS安全组需放行ALBLocal IP网段(否则健康检查和请求转发会失败)。

计费

访问控制功能本身不产生额外费用。ALB实例的计费规则请参见ALB计费说明

配额

限制项

功能版本

上限

一个访问控制策略组可关联的监听数

基础版/标准版/WAF增强版

50

一个监听可关联的访问控制策略组数

基础版/标准版/WAF增强版

3

一个地域可支持的访问控制策略组数

基础版/标准版/WAF增强版

1000

一个访问控制策略组可添加的条目数

基础版/标准版/WAF增强版

500

一个ALB实例可关联的访问控制条目数

基础版/标准版/WAF增强版

800

一个监听可关联的访问控制条目数

基础版

300

标准版/WAF增强版

500

上述指标为硬限制,无法提升,详见ALB配额与限制