在某些场景下,一个云服务为了完成自身的某个功能,需要获取其他云服务的访问权限。阿里云提供了服务关联角色SLR(service-linked role)来满足此类场景的需求。服务关联角色是一种仅允许阿里云服务商扮演的特殊RAM角色,详情请见RAM角色概览、服务关联角色。
使用限制
仅拥有ram:CreateServiceLinkedRole
权限的用户可创建服务关联角色,您可联系管理员为您授权AliyunDataphinFullAccess
RAM角色或联系管理员单击授权。
SLR在Dataphin中的应用场景
场景一:同步阿里云账号信息。
Dataphin服务通过
AliyunServiceRoleForDataphinOnRAM
这一SLR同步当前主账号下的RAM成员信息场景二:创建MaxCompute计算源和数据源。
Dataphin服务通过
AliyunServiceRoleForDataphinOnOdps
这一SLR访问当前主账号下的MaxCompute项目,主要包含以下操作:查询当前主账号下所有的MaxCompute项目。
基于所选择的MaxCompute项目,在该项目中创建MaxCompute项目角色:
dp-project-schedule
。为
AliyunServiceRoleForDataphinOnOdps
这一SLR授权dp-project-schedule
权限。
说明采用SLR创建的MaxCompute项目,仅支持使用Python 3.11版本来创建Pyodps任务。
场景三:创建阿里云数据源。
Dataphin服务通过
AliyunServiceRoleForDataphinOnDataBase
这一SLR访问当前主账号下指定类型的阿里云数据源,主要包含如下操作:查询当前主账号下RDS MySQL、AnalyticDB MySQL的实例列表。
查询指定RDS MySQL实例的连接地址、实例ID等基本信息。
不同SLR的详细权限
SLR权限查看入口:在RAM控制台的左侧导航栏中,选择身份管理 > 角色,查看服务关联角色信息。
Dataphin日常运行依赖以下SLR,仅当Dataphin处于到期状态,才可以删除SLR。
角色名称:
AliyunServiceRoleForDataphinOnRAM
角色说明:允许Dataphin查询RAM中的用户信息。
角色权限:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ram:ListUserBasicInfos", "Resource": "*" }, { "Action": "ram:DeleteServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "ram.dataphin.aliyuncs.com" } } } ] }
角色名称:
AliyunServiceRoleForDataphinOnOdps
角色说明:Dataphin使用此角色来访问您在MaxCompute中的资源。
角色权限:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "odps:CreateRole", "odps:UpdateUsersToRole", "odps:ListProjects" ], "Resource": "*" } ] }
角色名称:
AliyunServiceRoleForDataphinOnDataBase
角色说明:Dataphin使用此角色来访问您在云数据库中的资源。
角色权限:
{ "Version": "1", "Statement": [ { "Action": [ "rds:DescribeDBInstanceAttribute", "rds:DescribeDBInstanceNetInfo", "rds:DescribeDBInstances", "rds:DescribeRegions", "rds:DescribeDatabases", "rds:DescribeSecurityGroupConfiguration", "rds:DescribeDBInstanceIPArrayList", "rds:ModifySecurityGroupConfiguration", "rds:ModifySecurityIps" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "gpdb:DescribeDBInstanceAttribute", "gpdb:DescribeDBInstances", "gpdb:DescribeResourceUsage", "gpdb:DescribeDBInstanceIPArrayList", "gpdb:DescribeDBClusterIPArrayList", "gpdb:DescribeDBInstancePerformance", "gpdb:DescribeDBInstanceNetInfo", "gpdb:DescribeRegions", "gpdb:ModifySecurityIps" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "polardb:DescribeClusterInfo", "polardb:DescribeDBClusterParameters", "polardb:DescribeDBClusterEndpoints", "polardb:ModifyDBClusterAccessWhitelist", "polardb:DescribeDBClusterAccessWhitelist", "polardb:DescribeRegions" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "adb:DescribeDBClusters", "adb:DescribeDBClusterAttribute", "adb:DescribeClusterAccessWhiteList", "adb:DescribeClusterNetInfo", "adb:ModifyClusterAccessWhiteList" ], "Resource": "*", "Effect": "Allow" } ] }