本文为您介绍当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.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白名单

经典网络的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_ID 结果
  • 如果需要在已有的白名单中新增VPC IP,您可以通过新VPC IP访问MaxCompute时返回的错误信息获取区域ID。由于新的IP未被授权,访问时会报错。报错信息

受白名单限制报错示例

  • 受经典网络IP白名单限制后,报错如下:
    FAILED: Access denied by project ip white list: sourceIP:'xxxxx' is not in white list. project: xxx
    表示当前发起访问请求的IP(sourceIP)不在经典网络IP白名单中,对应的Project为报错信息中的project: xxx

    您需要将sourceIP加到对应Project的经典网络IP白名单列表中。

  • 受VPC IP白名单限制后,报错如下:
    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
    表示当前发起访问请求的VPC IP不在VPC白名单中,对应的Project为报错信息中的project: xxx

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