授权自定义角色写数据到MaxCompute(同账号投递)

MaxCompute投递任务(新版)运行时,需要将读取到的Logstore中的数据投递到MaxCompute的表中,您可以授权MaxCompute投递任务(新版)扮演自定义RAM角色完成该操作。本文介绍在MaxCompute和日志服务Project同账号时,如何对自定义RAM角色进行授权。

前提条件

  • 如果您使用的是RAM用户,请确保该用户具备操作RAM角色授权的权限。

  • 将您的MaxCompute项目创建为DataWorksMaxCompute数据源。更多信息,请参见创建MaxCompute数据源

操作步骤

授予RAM角色对MaxCompute的写入权限后,MaxCompute投递任务可以使用该角色将Logstore中的数据写入到目标MaxCompute的表中。此处通过添加RAM角色为工作空间成员的方式完成授权。

  1. 创建RAM角色,例如MaxComputeShipRole。具体操作,请参见创建可信实体为阿里云服务的RAM角色

    重要
    • 创建RAM角色时,信任主体类型应选择云服务,且信任主体名称应选择日志服务

    • 请检查角色的信任策略如下,Service内容至少包含"log.aliyuncs.com"

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
  2. 修改RAM角色信任策略。具体操作,请参见修改RAM角色的信任策略

    将原有的信任策略替换为如下内容。

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "log.aliyuncs.com",
              "dataworks.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }
  3. 添加RAM角色为工作空间成员。

    1. 登录DataWorks控制台

    2. 在页面左上角,选择地域。

    3. 在左侧导航栏中,单击工作空间。在工作空间列表页面,单击目标工作空间对应的管理

    4. 工作空间页面的空间成员页签下,单击添加成员image

    5. 添加成员对话框中,选中当前登录账号和目标RAM角色,完成添加。

      此处需在批量设置角色中选中开发。更多信息,请参见授权给其他用户

    6. 授予RAM角色操作MaxCompute表的权限。

      1. 登录MaxCompute控制台,在左上角选择地域。

      2. 选择工作区 > 项目管理,在项目管理页面,单击目标项目操作列的管理image

      3. MaxCompute项目管理页面,单击角色权限image.png

        如果出现如下报错,您需要在阿里云主账号下将当前登录的RAM账号添加至目标MaxCompute项目,先在角色列表中单击admin对应的成员管理,然后在成员管理对话框中,选中当前登录RAM账号,根据页面提示完成添加。image.png

      4. 在角色列表中,单击role_project_admin角色对应的成员管理

      5. 成员管理对话框中,选中当前登录账号和目标RAM角色账号,如MaxComputeShipRole。完成添加。

      6. 在角色列表中,单击role_project_admin角色对应的编辑角色

      7. 编辑角色对话框的Table页签下,选择目标MaxCompute表,选中DescribeAlterUpdateimage.png

    重要

    上述授权只针对指定的MaxCompute表。如果您希望目标角色可以操作当前MaxCompute空间项目下所有的表,则您可以为当前登录账号和目标角色添加admin角色权限。即在角色列表中,单击admin角色对应的成员管理,然后在成员管理对话框中,选中当前登录账号和目标角色,完成添加。

  4. 创建MaxCompute。

    完成授权后,您可以在创建MaxCompute投递任务(新版)时,选择MaxCompute授权自定义角色,然后输入自定义RAM角色的ARN(如acs:ram::10**12:role/maxcomputeshiprole),即可授权MaxCompute投递任务(新版)使用自定义RAM角色将数据投递到MaxCompute表中。具体操作,请参见创建MaxCompute投递任务(新版)MaxCompute授权

常见问题