适用于通过MaxCompute SQL、UDF、Spark、PyODPS/Mars、外部表或基于湖仓一体架构访问处于VPC网络下的RDS、HBase集群、Hadoop集群等场景。
该方案会创建两个安全组用于回程流量的开通,名称为MaxCompute-vpc-xxx和MaxCompute-backup-vpc-xxx(根据用户填写的vpcid补充名称),请勿修改这两个安全组的规则,也不要用这两个安全组管理其他组件的安全规则,如修改导致问题,平台不承担相应责任。
操作步骤
步骤一:账号及项目准备
开通MaxCompute与目标服务间的网络连接前,需要确认以下两个条件。
创建MaxCompute项目。在湖仓一体场景中,建议设置MaxCompute项目的数据类型为Hive兼容类型。
如果需要访问位于VPC网络中的目标服务,请确保VPC所有者账号、访问MaxCompute项目的阿里云账号,以及目标服务环境或集群的管理员账号是同一个主账号或同在一个主账号下。
步骤二:开通专线网络连接
1. 授权
对操作用户授权:为操作用户授予创建网络连接对象的权限。
授权用户需要是项目所有者(Project Owner),或具备租户级别的Super_Administrator或Admin角色的用户(详情请参见角色规划)。
授权过程可参见租户内对象权限一览表。
对MaxCompute授权:允许MaxCompute在VPC内创建ENI网卡,以实现MaxCompute到用户VPC的连通。用户只要在阿里云账号登录状态下单击授权即可。
2. 配置安全组规则
在VPC实例下,创建独立安全组用于控制MaxCompute对VPC网络内的各种资源的访问权限。
推荐新建一个普通安全组,尽量避免使用其他类型的安全组或正在被使用的安全组。MaxCompute会在当前用户的专有网络VPC下创建ENI网卡,用于访问用户服务。
设置该安全组的规则出方向,控制MaxCompute作业(ENI网卡)可以访问的目标地址(如无特殊需要,出方向保持默认);
入ENI的流量为回包,所以入方向的全部流量都打开。
登录专有网络管理控制台。
在左侧导航栏选择专有网络,在左上角选择地域。
在专有网络页面,单击目标专有网络实例ID/名称。
在专有网络详情页,选择资源管理页签。
在资源管理页签的专有网络资源区域,将鼠标悬停至安全组数值上方,单击添加。
安全组类型选择普通安全组。
普通安全组出口默认开启。企业安全组出口默认关闭,会导致无法访问VPC内的任何服务。
选择与连通服务相同的VPC网络。
更多创建安全组操作,请参见创建安全组。
配置安全组支持MaxCompute网络
单击目标安全组操作列的管理规则。
在访问规则区域,选择入方向页签。单击目标规则对应的操作列的编辑。按照如下配置开放入方向的所有流量。
授权策略选择允许。
优先级为1。
协议选择所有流量。
访问来源加入VPC对应的网段或者被访问的云服务所在VSW的网段。
访问目的默认为全部(-1/-1)。
配置方法详情请参见安全组应用指导和案例。
在HBase场景,如果HBase无法对某个安全组开放网络权限,可以将MaxCompute创建的ENI IP添加至白名单。由于ENI IP可能会发生变化,推荐添加VPC实例对应交换机的IP网段至白名单。登录ECS管理控制台,在左侧导航栏,单击弹性网卡,获取ENI IP。
MaxCompute在后续的创建网络通路过程中会默认自动根据带宽需求创建2个ENI,不收取费用,由MaxCompute创建的ENI将位于这个安全组内。
3. 创建MaxCompute与目标VPC网络间的网络连接
阿里云账号(主账号)或拥有MaxCompute租户级别的Super_Administrator或Admin角色的RAM子账号(详情请参见MaxCompute租户级别角色),可以在MaxCompute控制台创建MaxCompute与VPC网络之间的连接。操作如下:
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择 。
在网络连接页面,单击新增网络连接。
在弹出的新增网络连接对话框,根据界面提示文案配置项目信息,单击确定。首次新增需先前往授权,允许MaxCompute平台代理申请网卡,否则连接将创建失败。
在弹出的新增网络连接对话框,根据界面提示文案配置项目信息,单击确定。首次新增需先前往授权,允许MaxCompute平台代理申请网卡,否则连接将创建失败。
配置参数如下:
参数
是否必填
描述
连接名称:
必填
自定义连接名称。格式如下:
字母开头。
只能包含字母、下划线(_)和数字。
长度在1-63个字符。
类型:
必填
默认为直通连接(passthrough)。
直通连接(passthrough)对应的即是专有网络连接方案。
区域:
必填
系统根据左上角选择的地域自动生成。详情请参见开通地域。
已选择VPC:
必填
专有网络VPC是云上安全隔离的虚拟网络环境,提供了类似于传统数据中心的安全和可配置的私有网络空间。
交换机:
必填
交换机用来划分子网,同一VPC内的不同交换机之间内网互通。通过在多个不同可用区的交换机中同时部署云产品资源,可以避免应用受到单一可用区故障的影响。
安全组:
必填
安全组扮演云上虚拟防火墙的角色,通过管理安全组和规则,可提供精细化的网络安全隔离与访问控制。
安全组ID,如需创建安全组,请参考创建安全组。
4. 配置目标服务的安全组
在完成上述操作(即ENI专线开通)后,还需要在待访问的服务中增加相关安全规则,授权代表MaxCompute的安全组,即安全组能访问哪些服务的具体端口(例如9200、31000等)。
例如,用户需要访问阿里云RDS,则需要在RDS中增加规则,允许第2步中创建的安全组访问。如果用户需要访问的服务无法添加安全组,只能添加IP,那么需要将目标服务所在vSwitch网段都添加进来。
配置Hadoop集群安全组。
为Hadoop集群的安全组配置如下信息,确保MaxCompute可以访问Hadoop集群。安全组配置内容如下:
配置Hadoop集群所在安全组的入方向访问规则。
授权对象为ENI所在的安全组,即步骤2中创建的安全组。
HiveMetaStore端口:9083。
HDFS NameNode端口:8020。
HDFS DataNode端口:50010。
例如,当连接在阿里云E-MapReduce上创建的Hadoop集群时,需要配置的安全组规则如下图所示。更多配置操作,请参见创建安全组。

配置HBase集群安全组。
将为MaxCompute创建的安全组或ENI IP加入HBase集群的安全组或IP白名单中。
例如,当连接阿里云HBase集群时:
登录HBase管理控制台,在左上角选择地域。
在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称。
在左侧导航栏选择访问控制。
可以在白名单设置和安全组页签,增加分组白名单或添加安全组。如果不允许添加安全组,在白名单设置页签添加MaxCompute创建的ENI IP。当MaxCompute配置变更时,ENI IP可能会发生变化,推荐将交换机ID的IP网段添加至白名单。
更多关于添加安全组或IP白名单操作,请参见设置白名单和安全组。
配置RDS安全组。
将为MaxCompute创建的安全组或ENI IP加入RDS安全组或IP白名单中。
例如,当连接阿里云RDS时:
登录RDS 控制台。
在左侧导航栏,选择实例列表,在左上角选择地域。
在左侧导航栏,单击白名单与安全组。
可以在白名单设置和安全组页签添加IP白名单或安全组。当MaxCompute配置变更时,ENI IP可能会发生变化,推荐将交换机ID的IP网段添加至白名单。
步骤三:使用网络连接访问VPC内的地址
使用SQL或者Spark访问VPC网络时,在完成上述开通专线网络连接操作后,需要添加以下配置。
其他类型的任务,请根据相应的任务类型调整配置。
使用SQL访问VPC网络
UDF访问VPC网络(详情请参见:通过UDF访问VPC网络资源)。代码如下:
--设置网络连接名称,即基于专有网络连接方案配置的网连接名称,仅本Session有效: SET odps.session.networklink=testLink;外部表访问VPC网络(详情请参见RDS MySQL外部表、HBase外部表、Lindorm外部表)。代码如下:
-- 在建表语句中设置参数 TBLPROPERTIES( 'networklink'='<networklink_name>')湖仓一体配置Networklink(详情请参见:湖仓一体2.0使用指南)。
使用Spark访问VPC网络
运行Spark作业,需要增加如下配置,即可使用ENI专线连通目标VPC内的服务(详情请参见:Spark访问VPC实例)。
spark.hadoop.odps.cupid.eni.enable = truespark.hadoop.odps.cupid.eni.info=regionid:vpc id
(可选)步骤四:添加白名单
如果用户服务端有访问控制,需要将创建专线网络连接的安全组添加进服务端白名单。