附录:DataWorks访问其他引擎产品的服务关联角色

在DataWorks上操作其他引擎时,您需先授权DataWorks可访问其他引擎(例如,MaxCompute、EMR等)的相关权限。授权成功后,系统会自动创建一个对应引擎服务关联角色。本文为您介绍在DataWorks上授权使用引擎类云产品时自动创建的角色及角色权限策略详情。

背景信息

当在DataWorks控制台进行引擎相关操作时(如新增引擎实例、编辑已有引擎),界面会提示您需先完成授权相关操作,您根据界面提示完成授权操作后,系统会自动为您创建好对应服务的关联角色。

说明
  • 仅阿里云主账号及拥有AliyunDataWorksFullAccess角色权限的RAM用户(即子账号),可授权DataWorks操作其他引擎。如果RAM用户没有AliyunDataWorksFullAccess,请为对应RAM用户授权,授权操作请参见为RAM用户授权

  • 触发授权的DataWorks操作包括:创建并管理数据源

  • 您可以在RAM控制台身份管理 > 角色页面,搜索并查看该角色的详细信息,更多服务关联角色的介绍请参见服务关联角色

当前DataWorks支持通过授权自动创建的角色列表及对应的角色详情介绍引导如下。

角色列表

角色用途

详情链接

AliyunServiceRoleForDataworksEngine

授权DataWorks访问MaxCompute。

角色1:AliyunServiceRoleForDataworksEngine

AliyunServiceRoleForDataworksOnEmr

获取EMR(新版数据湖)的元数据信息,用于数据地图预览数据记录值。

角色2:AliyunServiceRoleForDataworksOnEmr

AliyunServiceRoleForDataWorks

获取、修改VPC网络配置及安全组配置,用于打通DataWorks独享资源组与数据源间的网络链路,实现网络连通。

DataWorks服务关联角色

AliyunServiceRoleForDataWorksDI

获取RAM角色列表,在配置角色访问数据源功能时支持选择角色。

AliyunServiceRoleForDataWorksDI介绍

AliyunDIDefaultRole

在进行数据源配置、任务配置、数据同步时,允许DataWorks访问当前云账号下的其他云产品资源。包含RDS、Redis、MongoDB、PolarDB-X、HybridDB for MySQL、AnalyticDB for PostgreSQL、PolarDB、DMS、DLF等云资源的部分管理权限。

AliyunDIDefaultRole介绍

AliyunServiceRoleForDataWorksOpenPlatform

获取与修改EventBridge中的事件,用于支撑DataWorks开放平台中的产品消息事件能力。

附录:DataWorks服务关联角色

AliyunServiceRoleForDataWorksAccessDLF

获取数据湖构建(DLF)元数据信息、执行元数据权限授予与回收等操作,用于实现安全中心对DLF元数据进行申请、审批能力。

附录:DataWorks访问DLF的服务关联角色

AliyunServiceRoleForDataworksDataMap

读取OSS Bucket、Object及日志信息,删除某个存储空间(Bucket)中指定的清单(Inventory)任务。

附录:数据地图服务关联角色

下文为您重点介绍MaxCompute引擎、EMR(新版数据湖)相关的角色详情。

角色1:AliyunServiceRoleForDataworksEngine

  • 角色名称:AliyunServiceRoleForDataworksEngine

  • 角色用途:用于授权DataWorks访问MaxCompute。

  • 绑定的角色策略:AliyunServiceRolePolicyForDataworksEngine

  • 权限策略详情:

    {
      "Version": "1",
      "Statement": [
        {
          "Action": "odps:*",
          "Effect": "Allow",
          "Resource": "*"
        },
        {
          "Action": [
            "pai:*",
            "paiplugin:*",
            "eas:*"
          ],
          "Resource": "*",
          "Effect": "Allow"
        },
        {
          "Action": "ram:DeleteServiceLinkedRole",
          "Resource": "*",
          "Effect": "Allow",
          "Condition": {
            "StringEquals": {
              "ram:ServiceName": "engine.dataworks.aliyuncs.com"
            }
          }
        }
      ]
    }

角色2:AliyunServiceRoleForDataworksOnEmr

重要

授权后自动生成的角色及角色权限策略请勿随意修改、删除,否则会无法正常使用DataWorks on EMR功能。

  • 角色名称:AliyunServiceRoleForDataworksOnEmr

  • 角色用途:用于在数据地图中预览数据记录值、获取EMR集群(DLF类型)的元数据信息以及获取EMR集群的各项配置信息。

  • 绑定的角色策略:AliyunServiceRolePolicyForDataworksOnEmr

  • 权限策略详情:

    • EMR 的访问权限

      {
          "Version": "1",
          "Statement": [
              {
                "Action": [
                    "emr:GetCluster",
                    "emr:GetOnKubeCluster",
                    "emr:GetClusterClientMeta",
                    "emr:GetApplicationConfigFile",
                    "emr:ListClusters",
                    "emr:ListNodes",
                    "emr:ListNodeGroups",
                    "emr:ListApplications",
                    "emr:ListApplicationConfigs",
                    "emr:ListApplicationConfigFiles",
                    "emr:ListApplicationLinks",
                    "emr:ListComponentInstances"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    • DLF(数据湖构建)的访问权限

      如果EMR集群使用DLF来统一管理元数据时,自动创建的角色权限策略中还会包含以下DLF的访问权限,用于DataWorks获取EMR的元数据信息。

      {
        "Action": [
          "dlf:SubmitQuery",
          "dlf:GetQueryResult",
          "dlf:GetTable",
          "dlf:ListDatabases",
          "dlf:GetTableProfile",
          "dlf:GetCatalogSettings",
          "dlf:BatchGrantPermissions",
          "dlf:ListPartitionsByFilter",
          "dlf:ListPartitions"
        ],
        "Resource": "*",
        "Effect": "Allow"
      }
    • ACK(容器服务 Kubernetes 版)的访问权限

      如果EMR集群是EMR on ACK时,自动创建的角色权限策略中还会包含以下ACK的访问权限。

      {
        "Action": [
          "cs:DescribeUserPermission",
          "cs:DescribeClusterDetail",
          "cs:DescribeClusterUserKubeconfig",
          "cs:GetClusters",
          "cs:GrantPermissions",
          "cs:RevokeK8sClusterKubeConfig"
        ],
        "Resource": "*",
        "Effect": "Allow"
      }
    • Serverless Spark的访问权限

      如果EMR集群是EMR Serverless Spark时,自动创建的角色权限策略中还会包含以下Serverless Spark的访问权限。

      {
        "Effect": "Allow",
        "Action": [
          "emr-serverless-spark:TerminateSqlStatement",
          "emr-serverless-spark:CreateSqlStatement",
          "emr-serverless-spark:GetSqlStatement",
          "emr-serverless-spark:TerminateSqlStatement",
          "emr-serverless-spark:ListSessionClusters",
          "emr-serverless-spark:ListWorkspaces",
          "emr-serverless-spark:ListWorkspaceQueues",
          "emr-serverless-spark:ListReleaseVersions",
          "emr-serverless-spark:CancelJobRun",
          "emr-serverless-spark:ListJobRuns",
          "emr-serverless-spark:GetJobRun",
          "emr-serverless-spark:StartJobRun",
          "emr-serverless-spark:AddMembers",
          "emr-serverless-spark:GrantRoleToUsers"
          ],
        "Resource": "*"
      }

      上传SQL文件、JAR包或保存临时查询结果时还会包含如下OSS权限。

      {
        "Action": [
          "oss:PutObject",
          "oss:GetObject",
          "oss:DeleteObject"
          ],
        "Resource": [
          "acs:oss:*:*:*/.dataworks/*",
          "acs:oss:*:*:*/.dlsdata/*"
          ],
        "Effect": "Allow"
      },
      {
        "Action": "oss:PostDataLakeStorageFileOperation",
        "Resource": "*",
        "Effect": "Allow"
      }