在DataWorks上操作其他引擎时,您需先授权DataWorks可访问其他引擎(例如,MaxCompute、EMR等)的相关权限。授权成功后,系统会自动创建一个对应引擎服务关联角色。本文为您介绍在DataWorks上授权使用引擎类云产品时自动创建的角色及角色权限策略详情。
背景信息
当在DataWorks控制台进行引擎相关操作时(如新增引擎实例、编辑已有引擎),界面会提示您需先完成授权相关操作,您根据界面提示完成授权操作后,系统会自动为您创建好对应服务的关联角色。
当前DataWorks支持通过授权自动创建的角色列表及对应的角色详情介绍引导如下。
角色列表 | 角色用途 | 详情链接 |
AliyunServiceRoleForDataworksEngine | 授权DataWorks访问MaxCompute。 | |
AliyunServiceRoleForDataworksOnEmr | 获取EMR(新版数据湖)的元数据信息,用于数据地图预览数据记录值。 | |
AliyunServiceRoleForDataWorks | 获取、修改VPC网络配置及安全组配置,用于打通DataWorks独享资源组与数据源间的网络链路,实现网络连通。 | |
AliyunServiceRoleForDataWorksDI | 获取RAM角色列表,在配置角色访问数据源功能时支持选择角色。 | |
AliyunDIDefaultRole | 在进行数据源配置、任务配置、数据同步时,允许DataWorks访问当前云账号下的其他云产品资源。包含RDS、Redis、MongoDB、PolarDB-X、HybridDB for MySQL、AnalyticDB for PostgreSQL、PolarDB、DMS、DLF等云资源的部分管理权限。 | |
AliyunServiceRoleForDataWorksOpenPlatform | 获取与修改EventBridge中的事件,用于支撑DataWorks开放平台中的产品消息事件能力。 | |
AliyunServiceRoleForDataWorksAccessDLF | 获取数据湖构建(DLF)元数据信息、执行元数据权限授予与回收等操作,用于实现安全中心对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" }