赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 消费与投递
  6. 数据投递
  7. 投递日志到MaxCompute(新版)
  8. 授权
  9. 授权自定义角色写数据到MaxCompute

授权自定义角色写数据到MaxCompute

  • 授权
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

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

前提条件

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

  • 将您的MaxCompute项目创建为DataWorks的MaxCompute数据源。更多信息,请参见创建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角色信任策略。

    1. 登录RAM控制台。

    2. 在左侧导航栏中,选择身份管理 > 角色。

    3. 在RAM角色列表中,单击目标RAM角色,例如MaxComputeShipRole。

    4. 在信任策略页签下,单击编辑信任策略。

    5. 将原有的信任策略替换为如下内容,然后单击保存信任策略。

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

    您可以通过可视化界面或命令行授予RAM角色写MaxCompute权限。

    通过可视化界面完成授权

    1. 登录DataWorks控制台。

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

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

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

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

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

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

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

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

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

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

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

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

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

      7. 在编辑角色对话框的Table页签下,选择目标MaxCompute表,选中Describe、Alter和Update。image.png

    重要

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

    通过命令行完成授权

    1. 登录DataWorks控制台。

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

    3. 在左侧导航栏中,单击工作空间列表。

    4. 在工作空间列表页面,将鼠标悬停至目标工作空间对应的快速进入,然后单击数据开发。

    5. 新建业务流程。

      1. 在数据开发页面,选择新建 > 新建业务流程。

      2. 在新建业务流程对话框中,设置业务名称,然后单击新建。

    6. 新建节点。

      1. 在数据开发页面,选择新建 > 新建节点 > MaxCompute > ODPS SQL。

      2. 在新建节点对话框中,设置节点名称和路径,然后单击确认。

        其中,路径需设置为您在上一步中所创建的业务流程。

    7. 在已创建的节点编辑框中,执行如下命令,完成授权。

      MaxCompute授权

      命令

      说明

      USE project-name;

      指定MaxCompute项目,需与您在创建MaxCompute投递任务(新版)时设置的MaxCompute项目保持一致。更多信息,请参见创建MaxCompute投递任务(新版)。

      ADD USER RAM$****.aliyunid.com:`role/maxcomputeshiprole`;

      在MaxCompute项目空间中添加用户。

      • ****.aliyunid.com为MaxCompute项目所属的阿里云账号。您可以通过list users;命令查看对应的阿里云账号。

      • maxcomputeshiprole为自定义RAM角色的名称,必须为小写格式。

      GRANT CreateInstance ON PROJECT project-name TO USER RAM$*****:`role/maxcomputeshiprole`;

      授予用户在项目空间名为project-name的CreateInstance(创建实例)权限。

      project-name为MaxCompute项目名称。

      GRANT DESCRIBE, ALTER, UPDATE ON TABLE table-name to user RAM$****.aliyunid.com:`role/maxcomputeshiprole`;

      授予用户查看、修改、更新目标MaxCompute表的权限。

      table-name为MaxCompute表名。

      说明

      该授权只针对指定的MaxCompute表,如果您希望目标用户可以操作当前MaxCompute项目下的所有表,请执行GRANT admin to user RAM$****.aliyunid.com:`role/maxcomputeshiprole`;命令完成授权。

      SHOW GRANTS FOR `RAM$****.aliyunid.com:role/maxcomputeshiprole`;

      确认授权是否成功。

      如果返回如下类似信息表示授权成功。

      Authorization Type: ACL
      [user/RAM$****.aliyunid.com:role/maxcomputeshiprole]
      A       projects/default_project_****: CreateInstance
      A       projects/default_project_****/tables/****: Describe | Alter | Update

      在授权过程中,可能发生如下报错。

      • 在操作过程中出现FAILED: mismatched input错误,表示当前的RAM用户没有执行ADD USER等语句的权限。更多信息,请参见出现FAILED: mismatched input错误时,如何解决。

      • 在操作过程中出现FAILED: ODPS-0130013:Authorization exception - Authorization Failed [4003], You have NO privilege to do the PROJECT SECURITY OPERATION for {acs:odps:*:projects/xxxxxx/authorization/users}. Context ID:1111-11111-1111-1111-11111.错误,表示当前的操作用户无MaxCompute账户操作或者授权权限。更多信息,请参见出现操作用户无权限错误时,如何解决。

后续操作

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

跨账号投递

日志服务和MaxCompute属于不同的阿里云账号,例如日志服务属于账号A,MaxCompute属于账号B。则需授予账号B下的RAM角色MaxComputeShipRole写MaxCompute的权限。授权完成后,MaxCompute投递任务可以使用该RAM角色将Logstore中的数据写入到目标MaxCompute表中。

操作步骤

  1. 修改账号B下RAM角色的信任策略。

    1. 使用阿里云账号B登录RAM控制台。

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

      重要
      • 创建RAM角色时,必须选择可信实体类型为阿里云服务,且必须选择受信服务为日志服务。

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

        {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": [
                  "log.aliyuncs.com"
                ]
              }
            }
          ],
          "Version": "1"
        }
    3. 修改RAM角色信任策略

      1. 在左侧导航栏中,选择身份管理 > 角色。

      2. 在RAM角色列表中,单击RAM角色MaxComputeShipRole。

      3. 在信任策略页签中,单击编辑信任策略。在Service配置项中添加{阿里云账号A的ID}@log.aliyuncs.com和dataworks.aliyuncs.com。其中{阿里云账号A的ID},需根据实际情况替换,您可以在账号中心查看阿里云账号ID。

        说明

        该策略表示账号A有权限通过日志服务获取临时Token来操作账号B中的资源。

        {
            "Statement": [
                {
                    "Action": "sts:AssumeRole",
                    "Effect": "Allow",
                    "Principal": {
                        "Service": [
                            "log.aliyuncs.com",
                            "dataworks.aliyuncs.com",
                            "{阿里云账号A的ID}@log.aliyuncs.com"
                        ]
                    }
                }
            ],
            "Version": "1"
        }
      4. 确认无误后,单击保存信任策略。

  2. 添加账号B下的RAM角色MaxComputeShipRole为工作空间成员。

    您可以在账号B下通过可视化界面或命令行进行RAM角色授权。具体操作,请参见通过可视化界面完成授权或通过命令行完成授权。

后续操作

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

相关文章

授权RAM用户管理MaxCompute投递任务 2025-04-22 10:48

当您使用RAM用户、RAM角色操作MaxCompute投递(新版)功能时,需要具备投递任务的管理权限,本文介绍如何授予投递任务的管理权限。 前提条件 已创建RAM用户。具体操作,请参见创建RAM用户。

授权RAM角色读取Logstore数据 2025-04-22 10:48

导出日志数据到MaxCompute时,需要使用默认角色或自定义角色读取Logstore中的日志数据。本文介绍如何配置默认角色和自定义角色读取日志服务权限。 为默认角色授权 操作步骤<

授权默认角色写数据到MaxCompute 2025-04-22 10:48

MaxCompute投递任务(新版)运行时,需要将读取到的Logstore数据投递到MaxCompute表中,您可以授权MaxCompute投递任务(新版)扮演默认角色完成该操作。 前提条件

授权自定义角色写数据到MaxCompute 2025-04-22 10:48

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

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号