通过自定义角色读取Logstore数据

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

前提条件

已创建RAM角色(例如MaxcomputeShipRole)。具体操作,请参见创建可信实体为阿里云服务的RAM角色

重要

创建RAM角色时,必须选择可信实体类型阿里云服务

操作步骤

授予RAM角色读取Logstore数据的权限后,MaxCompute投递任务可以使用该角色读取Logstore中的数据。

  1. 登录RAM控制台

  2. 创建具备读取Logstore数据权限的策略。

    1. 在左侧导航栏中,选择权限管理 > 权限策略

    2. 单击创建权限策略

    3. 创建权限策略页面的脚本编辑页签中,将配置框中的原有脚本替换为如下内容,然后单击继续编辑基本信息

      • 精确授权。

        在实际场景中,请根据实际情况替换Project名称和Logstore名称。

        {
            "Version":"1",
            "Statement":[
                {
                    "Action":[
                        "log:GetCursorOrData",
                        "log:ListShards"
                    ],
                    "Resource":[
                        "acs:log:*:*:project/Project名称/logstore/Logstore名称/*"
                    ],
                    "Effect":"Allow"
                }
            ]
        }
      • 模糊匹配授权。

        例如Project名称为log-project-dev-a、log-project-dev-b、log-project-dev-c等,Logstore名称为website_a_log、website_b_log、website_c_log等,则您可以使用模糊匹配授权。在实际场景中,请根据实际情况替换Project名称和Logstore名称。

        {
            "Version":"1",
            "Statement":[
                {
                    "Action":[
                        "log:GetCursorOrData",
                        "log:ListShards"
                    ],
                    "Resource":[
                        "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*"
                    ],
                    "Effect":"Allow"
                }
            ]
        }
    4. 设置名称,然后单击确定

      例如设置策略名称为log-maxcompute-export-source-policy

  3. 为RAM角色授权。

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

    2. 单击目标RAM角色对应的新增授权

    3. 单击步骤2中创建的权限策略(例如log-maxcompute-export-source-policy)。

    4. 确认授权结果,单击确认新增授权

完成上述操作后,您可以授权MaxCompute投递任务(新版)使用自定义RAM角色读取源Logstore中的数据,即您在创建MaxCompute投递任务(新版)时,选择读日志服务授权自定义角色,然后输入自定义RAM角色的ARN(例如acs:ram::10****12:role/maxcomputeshiprole)。如何获取ARN,请参见查看RAM角色角色标识