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

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
1月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
210 0
|
2月前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
646 57
|
2月前
|
数据采集 运维 监控
不重启、不重写、不停机:SLS 软删除如何实现真正的“无感数据急救”?
SLS 全新推出的「软删除」功能,以接近索引查询的性能,解决了数据应急删除与脏数据治理的痛点。2 分钟掌握这一数据管理神器。
234 30
|
3月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
A+流量分析平台是阿里集团统一的全域流量数据分析平台,致力于通过埋点、采集、计算构建流量数据闭环,助力业务提升流量转化。面对万亿级日志数据带来的写入与查询挑战,平台采用Flink+Paimon+StarRocks技术方案,实现高吞吐写入与秒级查询,优化存储成本与扩展性,提升日志分析效率。
476 1
|
6月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
本文介绍了阿里集团A+流量分析平台的日志查询优化方案,针对万亿级日志数据的写入与查询挑战,提出基于Flink、Paimon和StarRocks的技术架构。通过Paimon存储日志数据,结合StarRocks高效计算能力,实现秒级查询性能。具体包括分桶表设计、数据缓存优化及文件大小控制等措施,解决高并发、大数据量下的查询效率问题。最终,日志查询耗时从分钟级降至秒级,显著提升业务响应速度,并为未来更低存储成本、更高性能及更多业务场景覆盖奠定基础。
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
522 5
|
安全 BI 网络安全
EventLog Analyzer 如何满足等保合规要求?密码有效期、产品日志保留、配置备份三大核心问题全面解答
EventLog Analyzer(ELA)助力企业满足网络安全等级保护要求,支持配置自动/手动备份、日志180天留存及密码策略管理,提升合规性与安全运营效率。
|
3月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
316 0
|
3月前
|
数据采集 运维 监控
下一篇
oss云网关配置