SLS【数据加工】授权配置

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: SLS【数据加工】功能已经广泛用于数据的内容规整、信息富化、分发和汇总、索引重建等业务场景。因为其免运维、易扩展的特性,使其成为目前 SLS 上数据处理的首选。我们使用数据加工的时候,需如何为其授权呢,这里就给大家纤细介绍。

概述

SLS【数据加工】功能已经广泛用于数据的内容规整、信息富化、分发和汇总、索引重建等业务场景。正是因为其免运维、易扩展的特性,使其成为目前 SLS 上数据处理的首选。数据加工原理如下图:

etl.png

当用户配置好数据加工任务以后,数据加工功能通过如下三个步骤完成对日志数据的加工处理:

  1. 使用协同消费组对源 Logstore A 的日志数据进行读取消费。
  2. 根据用户配置的加工规则,对读取的每一条日志进行加工处理。
  3. 将加工后的日志数据写入指定的目标 Logstore B 中。

以上步骤1和3中,涉及到读/写用户数据,所以,为了使用数据加工功能做数据处理,用户需要给数据加工功能做如下授权:

  • 授权数据加工对您选择的源 Logstore A 的日志数据进行读取消费
  • 授权日志服务将加工结果写入您配置的(多个)目标 Logstore B

您可以通过如下三种方式给数据加工授权,详细的配置流程请参考每种授权方式的文档:

  1. 默认角色授权
  2. 自定义角色授权
  3. 密钥授权

三种授权方式的特点对比:

授权方式 操作便捷 安全性等级 精确授权 写入跨账号目标
默认角色授权 非常便捷 非常安全 不支持 不支持
自定义角色授权 一般 非常安全 支持 支持
密钥授权 一般 用户需要保证 AK 不泄漏 支持 支持

默认角色授权

您可以授予日志服务使用阿里云系统角色 AliyunLogETLRole 来读取源 Logstore 中的数据以及将数据加工结果写入目标 Logstore。操作步骤如下:

  1. 在数据加工页面,单击 高级
  2. 单击 预览数据
  3. 添加预览配置 页面,单击 默认角色 下的 授权系统角色AliyunLogETLRole

etl-ram-1.png

  1. 云资源访问授权 页面,单击 同意授权

该操作仅在首次配置时需要。
如果您使用的是RAM用户,需要由阿里云主账号进行授权。

etl-ram-2.png

自定义角色授权

源 Logstore 访问授权

  1. 使用主账号登录RAM控制台。
  2. 创建具备源Logstore读取权限的策略。

    • 在左侧导航栏中,单击权限管理 > 权限策略管理。
    • 单击新建权限策略。
    • 在新建自定义权限策略页面中,配置如下参数,并单击确定。
      配置模式选择“ 脚本配置”。例如,源Project名称为log-project-prod,源Logstore名称为access_log。在实际场景中,请根据实际情况替换。策略内容如下:

      {
      "Version": "1",
      "Statement": [
      {
        "Action": [
          "log:ListShards",
          "log:GetCursorOrData",
          "log:GetConsumerGroupCheckPoint",
          "log:UpdateConsumerGroup",
          "log:ConsumerGroupHeartBeat",
          "log:ConsumerGroupUpdateCheckPoint",
          "log:ListConsumerGroup",
          "log:CreateConsumerGroup"
        ],
        "Resource": [
          "acs:log:*:*:project/log-project-prod/logstore/access_log",
          "acs:log:*:*:project/log-project-prod/logstore/access_log/*"
        ],
        "Effect": "Allow"
      }
      ]
      }
  3. 创建RAM角色,详情请参见创建RAM角色。
  4. 授予RAM角色读取源Logstore数据的权限策略。

    • 在RAM角色管理页面,找到目标RAM角色,单击添加权限。
    • 选择自定义权限策略,并选中步骤2中创建的权限策略(本文以log-etl-source-reader-1-policy为例。),单击确定。
    • 确认授权结果,单击完成。
  5. 获取RAM角色标识(ARN)。在该角色的基本信息中查看,例如 acs:ram::13234:role/logrole

目标 Logstore 访问授权

  1. 使用主账号登录RAM控制台。
  2. 创建具备读写目标Logstore权限的策略。

    • 在左侧导航栏中,单击权限管理 > 权限策略管理。
    • 单击新建权限策略。
    • 在新建自定义权限策略页面中,配置如下参数,并单击确定。
      配置模式选择“ 脚本配置”。例如,目标Project名称为log-project-prod,目标Logstore名称为access_log_output。在实际场景中,请根据实际情况替换。

      {
      "Version": "1",
      "Statement": [
      {
        "Action": [
          "log:Post*"
        ],
         "Resource": "acs:log:*:*:project/log-project-prod/logstore/access_log_output",
        "Effect": "Allow"
      }
      ]
      }
  3. 创建RAM角色,详情请参见创建RAM角色。
  4. 授予RAM角色读写目标Logstore的权限策略。

    • 在RAM角色管理页面,找到目标RAM角色,单击添加权限。
    • 选择自定义权限策略,并选中步骤2中创建的权限策略(本文以log-etl-source-reader-1-policy为例。),单击确定。
    • 确认授权结果,单击完成。
  5. 获取RAM角色标识(ARN)。在该角色的基本信息中查看,例如 acs:ram::13234:role/logrole

写入跨账号目标Logstore授权

如果源Logstore和目标Logstore不在同一个阿里云账号时,需完成RAM跨账号授权才能进行加工操作,例如将账号A下的源Logstore中的数据加工后保存至账号B下的目标Logstore中,您可以按照以下步骤进行授权。

  1. 账号B已完成目标Logstore访问授权中的配置。
  2. 使用账号B登录RAM 控制台。
  3. 在左侧导航栏中,单击RAM角色管理。
  4. 在RAM角色列表中,单击目标Logstore所属的RAM角色。
  5. 在信任策略管理页签中,单击修改信任策略。
  6. 修改信任策略。 在Service配置项中添加源Logstore所属账号A的主账号ID@log.aliyuncs.com,其中请根据实际情况替换源Logstore所属账号A的主账号ID,您可以在账号管理 > 安全设置中查看主账号ID。该策略表示账号A有权限通过日志服务获取临时Token来操作账号B的资源。

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "<源Logstore所属账号A的主账号ID>@log.aliyuncs.com"
                    ]
                }
            }
        ],
        "Version": "1"
    }
  7. 获取RAM角色标识(ARN)。在该角色的基本信息中查看,例如 acs:ram::13234:role/logrole

密钥授权

配置源Logstore访问密钥

  1. 使用主账号登录RAM控制台。
  2. 创建RAM用户,详情请参见创建RAM用户。在创建RAM用户时,访问方式请选择为编程访问,并保存AccessKey信息。

RAM用户最多可以创建2个AccessKey。
RAM用户创建AccessKey后,无法再通过控制台查看AccessKeySecret,请您妥善保存AccessKeySecret,谨防泄露。

  1. 创建从源Logstore读取数据的权限策略。

    • 在左侧导航栏中,单击权限管理 > 权限策略管理。
    • 单击新建权限策略。
    • 在新建自定义权限策略页面中,配置如下参数,并单击确定。
      配置模式选择“ 脚本配置”。例如,源Project名称为log-project-prod,源Logstore名称为access_log。在实际场景中,请根据实际情况替换。策略内容如下:

      {
      "Version": "1",
      "Statement": [
      {
        "Action": [
          "log:ListShards",
          "log:GetCursorOrData",
          "log:GetConsumerGroupCheckPoint",
          "log:UpdateConsumerGroup",
          "log:ConsumerGroupHeartBeat",
          "log:ConsumerGroupUpdateCheckPoint",
          "log:ListConsumerGroup",
          "log:CreateConsumerGroup"
        ],
        "Resource": [
          "acs:log:*:*:project/log-project-prod/logstore/access_log",
          "acs:log:*:*:project/log-project-prod/logstore/access_log/*"
        ],
        "Effect": "Allow"
      }
      ]
      }

配置目标Logstore访问密钥

  1. 使用主账号登录RAM控制台。
  2. 创建RAM用户,详情请参见创建RAM用户。在创建RAM用户时,访问方式请选择为编程访问,并保存AccessKey信息。

RAM用户最多可以创建2个AccessKey。
RAM用户创建AccessKey后,无法再通过控制台查看AccessKeySecret,请您妥善保存AccessKeySecret,谨防泄露。

  1. 创建将加工数据写入目标Logstore的权限策略。

    • 在左侧导航栏中,单击权限管理 > 权限策略管理。
    • 单击新建权限策略。
    • 在新建自定义权限策略页面中,配置如下参数,并单击确定。
      配置模式选择“ 脚本配置”。例如,目标Project名称为log-project-prod,目标Logstore名称为access_log_output。在实际场景中,请根据实际情况替换。

      {
      "Version": "1",
      "Statement": [
      {
        "Action": [
          "log:Post*"
        ],
         "Resource": "acs:log:*:*:project/log-project-prod/logstore/access_log_output",
        "Effect": "Allow"
      }
      ]
      }
  2. 为RAM用户授予写入Logstore的权限策略。

    • 在左侧导航栏中,单击人员管理 > 用户。
    • 找到目标RAM用户,单击添加权限。
    • 选择自定义权限策略,并选中步骤3中创建的权限策略(本文以log-etl-target-writer-1-policy为例。),单击确定。

后记

以上就是使用 SLS【数据加工】功能时,需要为数据加工授权的详细步骤。如果您在使用 SLS 过程中有任何问题,请加入我们钉钉服务群,也欢迎关注 SLS 的微信技术公众号和B站视频号。

3.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
64 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
1月前
|
网络协议 Linux Windows
Rsyslog配置不同端口收集不同设备日志
Rsyslog配置不同端口收集不同设备日志
|
1月前
|
数据采集 机器学习/深度学习 存储
使用 Python 清洗日志数据
使用 Python 清洗日志数据
32 2
|
1月前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
34 1
|
1月前
|
数据采集 监控 Java
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
本文是关于SpringBoot日志的详细教程,涵盖日志的定义、用途、SLF4J框架的使用、日志级别、持久化、文件分割及格式配置等内容。
87 0
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
|
3月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
123 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
2月前
|
SQL 人工智能 运维
在阿里云日志服务轻松落地您的AI模型服务——让您的数据更容易产生洞见和实现价值
您有大量的数据,数据的存储和管理消耗您大量的成本,您知道这些数据隐藏着巨大的价值,但是您总觉得还没有把数据的价值变现出来,对吗?来吧,我们用一系列的案例帮您轻松落地AI模型服务,实现数据价值的变现......
182 3
|
3月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
|
3月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决
|
3月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
52 0