本文为您介绍当MaxCompute项目开启白名单功能时,如何添加、查看、修改、关闭经典网络和VPC网络的IP白名单及场景。仅Project Owner和Super_Administrator角色有权限执行此操作。
背景信息
MaxCompute的安全访问控制有多个层次,例如项目空间的多租户及安全认证机制。仅当获取到正确且经过授权的AccessKey ID及AccessKey Secret时,您才能通过鉴权,并在授权范围内进行数据访问和计算。
在安全访问控制基础上,MaxCompute增加IP白名单控制方式。当MaxCompute项目开启白名单功能时,仅允许白名单内的设备访问项目空间;非白名单内的设备访问项目空间时,即使拥有正确的AccessKey
ID及AccessKey Secret,也无法通过鉴权。以下是经典网络和VPC网络添加IP白名单的部分场景。
- 经典网络下的IP白名单。
- 使用MaxCompute客户端访问项目空间,您需要配置部署MaxCompute客户端所在设备的IP地址。
- 使用应用系统访问项目空间,您需要配置部署应用系统Server的设备的IP地址。
- 通过代理服务器或多跳代理服务器访问项目空间,您需要配置的IP地址为最后一跳代理服务器的IP地址。
- 通过ECS设备访问MaxCompute服务,您需要配置的IP地址为NAT IP。NAT IP详情请参见弹性公网IP。
- 部署DataWorks的设备默认在白名单内,通过DataWorks提交MaxCompute作业不受限制,您无需配置白名单。
- VPC网络下的IP白名单。
设置VPC网络下的IP白名单时,您需要:
- 获取VPC网络的区域ID和VPC ID。获取途径参见获取RegionID及VPC ID。
- 配置VPC网络下的Endpoint。详情参见Endpoint。
- 添加所有连接MaxCompute服务的IP地址至白名单列表。例如您如果使用数据集成、数据地图、Flink等服务,则需要添加对应服务的IP地址至白名单列表。
MaxCompute仅支持设置项目级别的IP白名单。支持的IP地址表示形式如下:
- IPv4或IPv6:例如192.168.0.0或2001:db8::。
- 带子网掩码的IP地址:例如172.12.0.0/16或2001:db8::/32。
- 网段:例如192.168.10.0-192.168.255.255或2001:db8:1:1:1:1:1:1-2001:db8:4:4:4:4:4:4。
添加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=cn-beijing_125179[192.168.0.10,192.168.0.20];
- 如果经典网络或VPC网络IP白名单均需要配置,则经典网络和VPC网络访问均受配置限制。配置命令示例如下。
setproject odps.security.ip.whitelist=192.168.0.0 odps.security.vpc.whitelist=cn-beijing_125179[192.168.0.10,192.168.0.20];
说明 设置IP白名单后,您需要等待五分钟后才会生效。
查看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=cn-beijing_125179[192.168.0.10,192.168.0.20]
修改IP白名单
您可以执行
setproject
命令,分别修改经典网络或VPC网络的IP白名单列表。修改后,旧的IP白名单列表会失效,系统以新的IP白名单列表为准控制访问权限。
- 修改经典网络IP白名单
setproject odps.security.ip.whitelist=192.168.0.10;
- 修改VPC网络IP白名单
setproject odps.security.vpc.whitelist=cn-beijing_125179[192.168.10.10,192.168.0.20];
关闭IP白名单
执行如下命令关闭IP白名单功能,经典网络和VPC网络访问将不受限制。
setproject odps.security.ip.whitelist= odps.security.vpc.whitelist= ;
说明 经典网络和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.0.0/8,33.0.0.0/8,100.64.0.0/10 odps.security.vpc.whitelist=<regionname>_*,cn_*;
odps.security.ip.whitelist
:经典网络的IP白名单。取值无需修改,按照上述IP填写即可,如果还有其他需要设置的IP地址,直接追加到IP地址列表。regionname
:阿里云产品所在RegionID。
获取RegionID及VPC ID
VPC网络所在的区域ID如下。
区域 | RegionID |
---|---|
华北3(张家口) | cn-zhangjiakou |
华北2(北京) | cn-beijing |
华南1(深圳) | cn-shenzhen |
西南1(成都) | cn-chengdu |
华东2(上海) | cn-shanghai |
华东1(杭州) | cn-hangzhou |
上海中心 | cn |
中国(香港) | cn-hongkong |
新加坡 | ap-southeast-1 |
澳大利亚(悉尼) | ap-southeast-2 |
马来西亚(吉隆坡) | ap-southeast-3 |
印度尼西亚(雅加达) | ap-southeast-5 |
日本(东京) | ap-northeast-1 |
德国(法兰克福) | eu-central-1 |
美国(硅谷) | us-west-1 |
美国(弗吉尼亚) | us-east-1 |
印度(孟买) | ap-south-1 |
阿联酋(迪拜) | me-east-1 |
英国(伦敦) | eu-west-1 |
VPC网络ID号获取方式如下:
- 如果您是首次设置VPC网络的IP白名单,请运行MaxCompute客户端,执行如下命令获取VPC ID。
说明
- 需要在VPC网络内的机器执行该命令才能获取VPC ID。
- 客户端(odpscmd)0.31.2及以上版本支持该命令。
whoami;
返回结果如下。
- 如果需要在已有的白名单中新增VPC IP,您可以通过新VPC IP访问MaxCompute时返回的错误信息获取区域ID。由于新的IP未被授权,访问时会报错。
受白名单限制报错示例
- 受经典网络IP白名单限制后,报错如下:
表示当前发起访问请求的IP(sourceIP)不在经典网络IP白名单中,对应的Project为报错信息中的FAILED: Access denied by project ip white list: sourceIP:'xxxxx' is not in white list. project: xxx
project: xxx
。您需要将
sourceIP
加到对应Project的经典网络IP白名单列表中。 - 受VPC IP白名单限制后,报错如下:
表示当前发起访问请求的VPC IP不在VPC白名单中,对应的Project为报错信息中的FAILED: Access denied by project ip white list: sourceIP:'xxxxx' is not in white list. project: xxxFAILED:Access denied by project vpc white list:vpc:'vpc-xxx' not in vpc white list, ip: 'xxxx'. project: xxx
project: xxx
。您需要将这个VPC IP加到对应Project的VPC IP白名单列表中。