管理IP白名单

本文为您介绍当MaxCompute项目开启白名单功能时,如何添加、查看、修改、关闭云产品互联网络和VPC网络的IP白名单及场景。仅Project Owner和Super_Administrator角色以及自定义的包含IP白名单管理相关权限的项目管理类角色有权限执行此操作。

背景信息

MaxCompute的安全访问控制有多个层次,例如项目空间的多租户及安全认证机制。仅当获取到正确且经过授权的AccessKey ID及AccessKey Secret时,您才能通过鉴权,并在授权范围内进行数据访问和计算。

在安全访问控制基础上,MaxCompute增加IP白名单控制方式。当MaxCompute项目开启白名单功能时,仅允许白名单内的设备访问项目空间;非白名单内的设备访问项目空间时,即使拥有正确的AccessKey ID及AccessKey Secret,也无法通过鉴权。以下是云产品互联网络和VPC网络添加IP白名单的部分场景。

说明

当MaxCompute项目未开启白名单功能时,您仍可以通过各网络类型访问项目空间,限制如下:

  • 云产品互联网络:同账号、同地域下,所有使用云产品互联网络Endpoint的IP均可访问MaxCompute项目。

  • VPC网络:同VPC下,所有使用VPC网络Endpoint的IP均可访问MaxCompute项目。

  • 公网:所有使用公网Endpoint的IP均可访问MaxCompute项目。

  • 云产品互联网络下的IP白名单。

    • 使用MaxCompute客户端访问项目空间,您需要配置部署MaxCompute客户端所在设备的IP地址。

    • 使用应用系统访问项目空间,您需要配置部署应用系统Server的设备的IP地址。

    • 通过代理服务器或多跳代理服务器访问项目空间,您需要配置的IP地址为最后一跳代理服务器的IP地址。

    • 通过ECS设备访问MaxCompute服务,您需要配置的IP地址为NAT IP。NAT IP详情请参见弹性公网IP

    • 如果您是DataWorks用户,请将DataWorks独享资源组等相关IP地址加入到白名单中。

  • VPC网络下的IP白名单。

    设置VPC网络下的IP白名单时,您需要:

    • 获取VPC网络的VPC实例ID。

    • 配置VPC网络下的Endpoint。详情参见Endpoint

    • 添加所有连接MaxCompute服务的IP地址至白名单列表。例如,如果您使用数据集成、数据地图、Flink等服务,则需要添加对应服务的IP地址至白名单列表。

MaxCompute仅支持设置项目级别的IP白名单。支持的IP地址表示形式如下:

  • IPv4或IPv6:例如192.168.0.02001:db8::

  • 带子网掩码的IP地址:例如172.12.0.0/162001:db8::/32

  • 网段:例如192.168.10.0-192.168.255.2552001:db8:1:1:1:1:1:1-2001:db8:4:4:4:4:4:4

添加IP白名单

MaxCompute支持使用客户端等命令行方式来添加白名单,也支持在MaxCompute的控制台上界面化操作添加白名单。

命令行方式添加IP白名单

公网和云产品互联网络IP白名单参数为odps.security.ip.whitelist;VPC网络的白名单参数为odps.security.vpc.whitelist。更多命令格式及参数说明请参见查看项目空间属性

在MaxCompute客户端执行如下命令将IP地址添加至IP白名单中:

  • 如果只配置公网和云产品互联网络IP白名单,则公网和云产品互联网络访问受配置限制,VPC网络访问全部禁止。配置命令示例如下。

    setproject odps.security.ip.whitelist=192.168.0.0 odps.security.vpc.whitelist=\N;

    设置公网和云产品互联网络的IP白名单时,请在IP白名单中添加操作MaxCompute客户端所在的设备IP,以免将自己屏蔽。经典网络配置检查

  • 如果只配置VPC网络IP白名单,则VPC网络访问受配置限制,公网和云产品互联网络访问全部禁止。配置命令示例如下。

    setproject odps.security.ip.whitelist=\N odps.security.vpc.whitelist=<vpc实例id>[192.168.0.10,192.168.0.20];
  • 如果公网和云产品互联网络IP、VPC网络IP白名单均需要配置,则公网和云产品互联网络、VPC网络访问均受配置限制。配置命令示例如下。

    setproject odps.security.ip.whitelist=192.168.0.0 odps.security.vpc.whitelist=<vpc实例id>[192.168.0.10,192.168.0.20];
  • 如果公网和云产品互联网络IP、VPC网络IP白名单均配置,且有多个公网和云产品互联网络IP、多个VPC实例的IP。配置命令示例如下。

    ● setproject odps.security.ip.whitelist=192.168.0.0,192.168.0.10 odps.security.vpc.whitelist=<vpc实例id1>[192.168.0.10,192.168.0.20],<vpc实例id2>;

    多个公网和云产品互联网络IP使用半角逗号(,)分隔;VPC网络IP的格式为VPC实例ID[IP列表],如果需要把某个VPC实例的所有IP都加入这个白名单,则直接输入VPC实例ID即可。

说明

设置IP白名单后,您需要等待五分钟后才会生效。

控制台上添加IP白名单

您可以登录MaxCompute控制台进入对应地域的项目管理页面,单击目标项目操作列的管理,在参数配置页签中,编辑IP白名单

  • 公网和云产品互联网络IP:IP列表以半角逗号(,)分隔。如果只配置公网和云产品互联网络IP白名单,则公网和云产品互联网络访问受配置限制,VPC网络访问全部禁止。

  • VPC网络IP:IP列表以英文逗号(,)分隔。如果只配置VPC网络IP白名单,则VPC网络访问受配置限制,公网和云产品互联网络访问全部禁止。IP白名单示例:<vpc实例id1>[192.168.0.10,192.168.0.20],<vpc实例id2>

image

查看IP白名单

您可以执行setproject;命令查看IP白名单列表。odps.security.ip.whitelist=odps.security.vpc.whitelist的内容即为白名单列表。如果odps.security.ip.whitelist=odps.security.vpc.whitelist的内容为空,则表示未设置白名单列表。

setproject;

返回结果如下。

odps.security.ip.whitelist=192.168.0.0
odps.security.vpc.whitelist=<vpc实例id>[192.168.0.10,192.168.0.20]
说明

如果您使用之前区域ID和VPC ID的方式配置的VPC网络IP白名单,返回结果示例如下:

odps.security.vpc.whitelist=cn-beijing_125179[192.168.0.10,192.168.0.20]

修改IP白名单

您可以执行setproject命令,分别修改公网和云产品互联网络IP、VPC网络IP的白名单列表。修改后,旧的IP白名单列表会失效,系统以新的IP白名单列表为准控制访问权限。

  • 修改公网和云产品互联网络IP白名单

    setproject odps.security.ip.whitelist=192.168.0.10;
  • 修改VPC网络IP白名单

    setproject odps.security.vpc.whitelist=<vpc实例id>[192.168.10.10,192.168.0.20];

关闭IP白名单

执行如下命令关闭IP白名单功能,公网和云产品互联网络、VPC网络访问将不受限制。

setproject odps.security.ip.whitelist= odps.security.vpc.whitelist= ;
说明

公网和云产品互联网络IP、VPC网络IP的白名单必须同时置为空,才表示关闭了IP白名单功能。

设置阿里云产品访问MaxCompute白名单

您可以通过如下命令设置所有阿里云产品都可以通过VPC网络访问MaxCompute。

setproject odps.security.ip.whitelist=192.168.0.0/16,172.16.0.0/12,10.0.0.0/8,11.0.x.x/8,33.0.x.x/8,100.64.0.0/10 odps.security.vpc.whitelist=<regionname>_*,cn_*;
说明

11.0.x.x/8与33.0.x.x/8地址中的x为占位符,表示0~255之间的任意数值。

  • odps.security.ip.whitelist:公网和云产品互联网络的IP白名单。您可以参考上述IP填写即可,如果还有其他需要设置的IP地址,直接追加到IP地址列表。

  • regionname:阿里云产品所在RegionID。

RegionID

阿里云区域ID如下。

区域

RegionID

华东1(杭州)

cn-hangzhou

华东2(上海)

cn-shanghai

华北2(北京)

cn-beijing

华北3(张家口)

cn-zhangjiakou

华北6(乌兰察布)

cn-wulanchabu

华南1(深圳)

cn-shenzhen

西南1(成都)

cn-chengdu

中国香港

cn-hongkong

华东 2 金融云

cn-shanghai-finance-1

华北 2 阿里政务云 1

cn-north-2-gov-1

华南 1 金融云

cn-shenzhen-finance-1

日本(东京)

ap-northeast-1

新加坡

ap-southeast-1

澳大利亚(悉尼)关停中

ap-southeast-2

马来西亚(吉隆坡)

ap-southeast-3

印度尼西亚(雅加达)

ap-southeast-5

德国(法兰克福)

eu-central-1

英国(伦敦)

eu-west-1

美国(硅谷)

us-west-1

美国(弗吉尼亚)

us-east-1

阿联酋(迪拜)

me-east-1

受白名单限制报错示例

  • 受公网和云产品互联网络IP白名单限制后,报错如下:

    FAILED:Accessdeniedbyprojectipwhitelist:sourceIP:'xxxxx'isnotinwhitelist.project:xxx

    表示当前发起访问请求的IP(sourceIP)不在公网和云产品互联网络IP白名单中,对应的Project为报错信息中的project: xxx

    您需要将sourceIP加到对应Project的公网和云产品互联网络IP白名单列表中。

  • 受VPC IP白名单限制后,报错如下:

    FAILED:Accessdeniedbyprojectipwhitelist:sourceIP:'xxxxx'isnotinwhitelist.project:xxxFAILED:Accessdeniedbyprojectvpcwhitelist:vpc:'vpc-xxx'notinvpcwhitelist,ip:'xxxx'.project:xxx

    表示当前发起访问请求的VPC IP不在VPC白名单中,对应的Project为报错信息中的project: xxx

    您需要将这个VPC IP加到对应Project的VPC IP白名单列表中。