通过自定义角色访问数据(同账号场景)

OSS投递任务(新版)运行时,将拉取Logstore中的数据并投递到OSS Bucket中,您可以使用自定义角色来完成以上操作。本文介绍如何对自定义角色进行授权。

前提条件

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

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

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

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "log.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

步骤一:授予RAM角色读取Logstore数据的权限

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

  1. 使用阿里云账号(主账号)或RAM管理员登录RAM控制台

  2. 创建一个自定义权限策略,该策略具备读取Logstore数据的权限。

    您可选择使用精确授权模糊匹配授权

    精确授权

    创建权限策略页面,单击脚本编辑页签,并使用以下脚本替换配置框中的原有内容。具体操作,请参见通过脚本编辑模式创建自定义权限策略

    重要

    脚本中的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等,则您可以使用模糊匹配授权。

    • 脚本中的log-project-dev-*website_*_log*请根据实际情况替换。

    {
        "Version":"1",
        "Statement":[
            {
                "Action":[
                    "log:GetCursorOrData",
                    "log:ListShards"
                ],
                "Resource":[
                    "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*"
                ],
                "Effect":"Allow"
            }
        ]
    }
  3. 为RAM角色添加创建的自定义权限。具体操作,请参见为RAM角色授权

步骤二:授予RAM角色写OSS Bucket的权限

授予RAM角色写OSS Bucket的权限后,OSS投递任务可以扮演该角色将Logstore中的数据写入到目标OSS Bucket中。

  1. 使用阿里云账号(主账号)或RAM管理员登录RAM控制台

  2. 创建一个自定义权限策略,该策略具备写OSS Bucket权限。

    创建权限策略页面,单击脚本编辑页签,并使用以下脚本替换配置框中的原有内容。具体操作,请参见通过脚本编辑模式创建自定义权限策略

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "oss:PutObject"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
    说明

    如果您有更细粒度的OSS权限控制需求,请参见RAM Policy

  3. 为RAM角色添加创建的自定义权限。具体操作,请参见为RAM角色授权

后续操作

获取RAM角色标识(ARN),具体操作,请参见查看RAM角色

如果您在创建OSS投递任务时读Logstore RAM角色写OSS RAM角色选择自定义角色,则需要输入该信息。更多信息,请参见创建OSS投递任务(新版)