IP访问控制
是API网关
提供的 API 安全防护组件之一,负责控制 API 的调用来源 IP (支持IP段)。您可以通过配置某个 API 的 IP 白名单/黑名单来允许/拒绝某个来源的API请求。
IP访问控制
现在合并进了插件体系。现存的控制台界面与接口仍然可以使用,IP访问控制策略
与IP访问控制插件
属于同一种插件类型,受到同类型插件绑定的限制。
使用原有的IP访问控制
接口或控制台创建或更改IP访问控制
,会同步数据至插件系统,但不会反向同步。
如何使用
支持白名单或黑名单方式:
- 白名单: 支持配置 IP 或者 APPID + IP 的白名单访问,不在白名单列表的请求将会被拒绝。
- IP 白名单,只允许设定的调用来源 IP 的请求被允许。
- APPID + IP 此APPID只能在设定的 IP 下访问,其他 IP 来源将被拒绝。
- 黑名单: 您可以配置 IP 黑名单,黑名单中 IP 的访问将被 API 网关拒绝。
插件配置
可以选择json或者yaml格式的来配置您的插件,两种格式的schema相同,可以搜索yaml to json
转换工具来进行配置格式的转换,yaml格式的模板见下表。
---
type: ALLOW # 控制模式,支持白名单模式'ALLOW'和黑名单模式'REFUSE'
resource: "XFF:-1" # 可选字段,如果设置本字段,取X-Forwarded-For头中的IP作为判断依据,本示例取XFF头的倒数第一个IP作为客户端源IP判断,
items:
- blocks: # IP地址段
- 61.3.9.0/24 # 使用CIDR方式配置
appId: 219810 # (可选) 如果配置了appId则该条目仅对该AppId生效
- blocks: # IP地址
- 79.11.12.2 # 使用IP地址方式配置
- blocks: # 用户VPC
- 192.168.0.1/32 # 专项实例场景,从用户VPC内访问API网关的请求,API网关看到的来源地址处于这个地址段
需要特别注意最后一点,专项实例场景,API网关允许从用户VPC内发送请求到API网关,此时API网关可以直接读取来源VPC内的地址,比如192.168.0.1,用户设置黑白名单时可以直接使用VPC内地址作为配置值。
穿透WAF配置
resource字段为可选字段,如果不填写,取和网关直接连接前一跳的IP作为判断依据。如果填写本字段,允许设置X-Forwarded-For头中的值作为IP判断依据。填写格式为“XFF:index”,index的值为X-Forwarded-For头中IP排序序号,从0开始算,允许负数,比如X-Forwarded-For的值为IP1,IP2,IP3,那么如果index值为0,取IP1,如果index的值为-1,取IP3,也就是倒数第一个IP。
如果API网关前面有WAF等中间件,业务需要实现API级别IP黑白名单能力时,就需要用到本特性。WAF会将他收到的请求的源IP加入到X-Forwarded-For头的最后发送给API网关,API网关去判断X-Forwarded-For头中的这个值就可以。这种情况建议用户使用"XFF:-1"来判断WAF前一跳的IP地址。
跨VPC访问
在跨VPC访问的情况,API网关可以直接从请求中读取来源VPC内的IP地址,您可以放心编写针对VPC内IP的IP访问控制插件。API网关还可以读取到来源VPC的VPCID,您可以通过设置访问控制插件来设置只允许某些指定的VPC访问您的API。