Dataphin服务关联角色

在某些场景下,一个云服务为了完成自身的某个功能,需要获取其他云服务的访问权限。阿里云提供了服务关联角色SLR(service-linked role)来满足此类场景的需求。服务关联角色是一种仅允许阿里云服务商扮演的特殊RAM角色,详情请见RAM角色概览服务关联角色

使用限制

仅拥有ram:CreateServiceLinkedRole权限的用户可创建服务关联角色,您可联系管理员为您授权AliyunDataphinFullAccessRAM角色或联系管理员单击授权。

SLRDataphin中的应用场景

  • 场景一:同步阿里云账号信息。

    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"
        }
      ]
    }