日志审计多帐号采集方案升级--资源目录集成

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 阿里云SLS日志服务集成阿里云资源目录服务,支持跨账号实时自动化、中心化采集阿里云产品日志。

背景

日志审计服务是在SLS平台能力基础上提供的一款审计服务,支持多账户场景下实时自动化、中心化地采集阿里云上的云产品日志。具有如下优点:

  • 丰富的云产品支持,目前覆盖基础(ActionTrail、容器服务Kubernetes版)、存储(OSS、NAS)、网络(SLB、API网关)、数据库(关系型数据库RDS、云原生分布式数据库PolarDB-X 1.0、云原生数据库PolarDB)、安全(WAF、DDoS防护、云防火墙、云安全中心)。
  • 跨账号:与阿里云资源目录集成,支持将多个主账号下的日志采集到一个中心主账号下。
  • 一键式采集:一次性配置采集规则后,即可完成自动实时发现新资源并实时采集日志。
  • 中心化存储:将采集到的日志存储到某个地域的中心化Project中,方便后续查询分析、可视化与告警、二次开发等。
  • 丰富的内置告警规则,一键建立安全防护网。

1.日志审计多账号管理现状

跨账号采集是日志审计服务的一大特色,当进行跨账号采集云产品日志时,首先要解决的是中心主账号和其他主账号的双向授权问题。目前日志审计的授信关系建立是基于RAM开发的自定义鉴权机制,但是该机制存在如下不足:

  • 需要每个成员账号,提供具有RAM写权限的AK用于信任关系的建立。或者针对每个成员账号,手动建立被中心账号信任的RAM角色。
  • 创建出的RAM角色因为是自定义角色,会被用户有意或无意修改导致授权失效等问题。


RD(Resource Directory,资源目录)作为一套面向企业客户的多级账号管理服务,正好解决了日志审计多账号场景下账号间授信关系建立的问题。

2.资源目录简介

资源目录RD(Resource Directory)是阿里云面向企业客户提供的一套多级账号和资源关系管理服务。


名称

说明

管理账号

  • 是RD的超级管理员,也是一个企业中开通RD的初始账号
  • 企业管理账号,具有组织内所有成员账号的Full Access管理权限
  • 每个RD有且只有一个企业管理员账号

资源夹

  • 即分组,代表企业的组织单元,通常用于指代企业的分公司、业务线或产品项目
  • 资源夹不是账号,也不是云资源,可以理解成类似电脑的文件夹
  • 最多支持创建五层级的资源夹(不包含Root资源夹

Root资源夹

  • Root资源夹位于资源目录的顶层,没有父资源夹。资源关系依据Root资源夹向下分布。

成员

  • 成员账号有两种类型:云账号和资源账号。
  • 云账号就是普通的阿里云账号,通常账号密码登陆官网。
  • 资源账号是特殊的阿里云账号,被限制了root登陆,即不能通过账号密码直接登录官网,而是通过用户(RAM user或role)访问。
  • 企业管理员账号可以创建新的资源账号,或邀请已有的云账号加入rd组织

委派管理员

  • 指在某个指定云服务中,代表组织执行管理任务的成员账号
  • 只有企业管理员账号,可以将组织的成员账号设置为某个云服务的委派管理员

3.日志审计与资源目录集成后的优势

  • 账号间信任关系建立 --- 解决审计场景下账号间信任关系建立问题。
  • 利用RD体系创建新账号:省去人工创建账号并做实名认证的繁琐流程。
  • 邀请已有阿里云账号加入组织:如果企业已经在阿里云有账号,可通过邀请方式将已有账号加入企业RD组织。
  • 依据企业业务环境构建目录结构 --- 通过订阅资源目录分组,可以解决企业内组织多账号自动发现的问题
  • 客户根据自己的业务情况,按照应用程序、环境、团队或任何其他对业务有意义的业务单元进行账号分组管理,建立树状的组织多账号结构。
  • 为集成产品在组织成员账号中创建服务关联角色 --- 解决RAM角色被用户有意或无意修改问题。
  • 支持在云服务中指定委派管理员 -- 通过委派管理员账号,可以将组织管理任务与业务管理任务相分离,管理账号执行资源目录的组织管理任务。

使用资源目录采集多帐号日志

要使用资源目录完成跨账号中心化采集,需要以下几个步骤:

  • 开通资源目录,并邀请成员账号。并设置委派管理员。具体操作,请参考资源目录
  • 将委派管理员作为日志审计的中心账号,完成日志审计服务的开通。在日志审计服务中,添加要采集的成员账号(全选或者指定RD中的特定成员账号)。
  • 开启对应的云产品采集开关,就可以建立跨账号采集链路了。


需要注意的是:在通过日志审计服务完成日志的中心化采集后,成员账号还保留单独采集,比如RDS使用RDS审计中心app,SLB(在SLB控制台)。

以下针对控制台和Terraform分别介绍日志审计如何使用资源目录管理模式设置多帐号采集。

控制台操作

以下两种账号控制台操作需要以子账号的身份操作,这样符合最佳实践。

1. 委派管理员账号登录

点击日志审计服务-多帐号配置-全局配置tab页修改可选择配置账号的两种模式:全员、自定义

  • 全员模式,会自动采集委派管理员所在资源目录下的所有成员账号的日志审计
  • 新增资源目录成员,该成员会自动纳入委派管理员的日志审计采集账号
  • 移除资源目录成员,该成员会自动移出委派管理员的日志审计采集账号
  • 自定义模式,只会采集配置时设置的采集账号
  • 新增资源目录成员,该成员不会纳入委派管理员的日志审计采集账号
  • 移除资源目录成员,若该成员在自定义勾选的账号内,该成员会自动移出委派管理员的日志审计采集账号

2. 普通账号登录

普通账号仅支持使用自定义鉴权管理模式(需要手动秘钥授权,在无RD的场景下推荐使用)。访问资源目录管理模式页面仅展示多帐号管理的引导步骤,无法勾选设置多帐号采集

Terraform

Terraform是一种开源工具,用于安全高效地预览、配置和管理云基础架构和资源。Terraform的命令行接口(CLI)提供了一种简单机制,用于将配置文件部署到阿里云或其他任意支持的云上,并对其进行版本控制。

在使用前请确保已安装和配置Terraform。请参见Cloud Shell中使用Terraform链接在本地安装和配置Terraform完成配置操作。

操作步骤准备:

创建一个Terraform工作目录sls,并在该目录下执行terraform init初始化工作目录,完成后创建一个名为terraform.tf的文件

步骤一、配置身份信息

使用Terraform进行RD多帐号采集配置的身份认证支持主账号、子账号(环境变量、静态aksk设置)、ECS Role以及AssumeRole,下面围绕这几种方式分开介绍,详情可参考Terraform认证方式设置

方式一、环境变量中配置用户身份以及日志审计服务的中心Project所在地域

exportALICLOUD_ACCESS_KEY="AK****"exportALICLOUD_SECRET_KEY="SK****"exportALICLOUD_REGION="cn-huhehaote"

方式二、 静态AKSK设置

terraform.tf中配置provider信息

provider "alicloud" {
  access_key ="AK****"  secret_key ="SK****"  region     ="cn-huhehaote"}

方式三、 ECS Role

借助实例RAM角色,可将角色和ECS实例关联起来,使用STS临时凭证访问阿里云的日志审计服务,并且无需自行在实例中保存AccessKey。

  • 云账号登录RAM控制台,在左侧导航栏,单击RAM角色管理->创建RAM角色,当前可信实体类型选择为阿里云服务,单击下一步;选择角色类型为普通服务角色,输入角色名称,受信服务为云服务器,点击完成
  • 创建的RAM角色授予访问日志服务SLS的权限,参见权限附录说明日志审计所需最小权限
  • 为ECS绑定RAM角色,登录ECS管理控制台,在左侧导航栏点击实例与镜像->实例,找到要操作的ECS实例,选择更多->实例设置->授予/收回RAM角色,在弹窗重,选择创建前面步骤中创建好的实例RAM角色,点击确定完成授予。

也可以在创建ECS实例时,在系统配置页面的RAM角色属性中为实例选择已创建好的实例RAM角色

provider "alicloud" {
  ecs_role_name ="创建的RAM角色名"  region        ="cn-huhehaote"}


方式四、AssumeRole

主账号给子账号授予AliyunSTSAssumeRoleAccess权限,并创建RAM角色(RAM角色需添加自定义的日志审计所需最小写权限),为受信账号下的RAM用户授予AssumeRole权限、获取RAM用户角色的临时安全令牌,参见授予用户角色

provider "alicloud" {
  assume_role {
    role_arn           ="acs:ram::主账号uid:role/sls-test"    session_name       ="AuditRoleSession"    session_expiration =999  }
}

步骤二、配置日志审计采集

terraform.tf文件中配置日志审计采集参数如下,日志审计采集配置的完整参数说明请查看Terraform-Aliyun Log Audit

参数

说明

display_name

采集配置名称。自定义配置。

aliuid

阿里云账号ID。

multi_account

多账号采集时,需配置多个阿里云账号ID。

resource_directory_type

资源目录管理模式:

  • resource_directory_type不存在,自定义鉴权管理模式
  • resource_directory_type=custom,资源目录管理-自定义模式,此时multi_account的账号数组代表资源目录自定义配置的多帐号
  • resource_directory_type=all,资源目录管理-全员模式,此时multi_account为空数据或者不传入该字段

actiontrail_enabled

是否开启操作审计(Actiontrail)日志的采集,取值:

  • true:开启。
  • false:关闭。

actiontrail_ttl

设置操作审计日志的存储时间。

terraform.tf配置示例:

resource "alicloud_log_audit""rdtest" {
  display_name ="tf-audit-rd-test"  aliuid ="主账号uid"  variable_map = {
"actiontrail_enabled"="false",
"actiontrail_ttl"="180"  }
  multi_account = ["11212279087***"]
resource_directory_type="custom"}

步骤三、使terraform.tf文件中的采集配置生效

  1. 执行如下命令。terraform apply
  2. 输入yes。如果返回结果中提示Apply complete!,表示应用采集配置成功,日志审计服务将按照采集配置进行日志采集和存储。

多帐号采集模式切换说明

委派管理员设置资源目录管理模式以及自定义鉴权模式这两种模式之前的切换注意点:

  • 委派管理员设置过资源目录管理模式后前端页面会显示无法切换至自定义鉴权管理模式,如需切换,需清除所有的采集账号才可切换使用自定义鉴权管理模式。

  • 自定义鉴权管理模式可覆盖切换成资源目录管理模式

附录

日志审计所需最小写权限

该配置也是控制台和terraform操作开通配置的最小权限

{
"Version": "1",
"Statement": [
        {
"Effect": "Allow",
"Action": [
"log:GetApp",
"log:CreateApp"            ],
"Resource": [
"acs:log:*:*:app/audit"            ]
        },
        {
"Effect": "Allow",
"Action": [
"log:Get*",
"log:List*",
"log:CreateJob",
"log:UpdateJob",
"log:CreateProject"            ],
"Resource": [
"acs:log:*:*:project/slsaudit-*"            ]
        }
    ]
}

参考

  • 日志审计
  • 资源目录
  • 欢迎扫群加入阿里云-日志服务(SLS)技术交流(集团同学请直接搜索群号11702236加入), 获得第一手资料与支持
  • 后续系列直播与培训视频会同步到B站,敬请留意

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
7月前
|
存储 调度 C++
16 倍性能提升,成本降低 98%! 解读 SLS 向量索引架构升级改造
大规模数据如何进行语义检索? 当前 SLS 已经支持一站式的语义检索功能,能够用于 RAG、Memory、语义聚类、多模态数据等各种场景的应用。本文分享了 SLS 在语义检索功能上,对模型推理和部署、构建流水线等流程的优化,最终带给用户更高性能和更低成本的针对大规模数据的语义索引功能。
611 62
|
7月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
628 0
|
8月前
|
机器学习/深度学习 算法 物联网
面向能效和低延迟的语音控制智能家居:离线语音识别与物联网集成方案——论文阅读
本文提出一种面向能效与低延迟的离线语音控制智能家居方案,通过将关键词识别(KWS)集成至终端设备,结合去中心化Mesh网络与CoAP协议,实现本地化语音处理。相较云端方案,系统能耗降低98%,延迟减少75%以上,显著提升响应速度与能源效率,为绿色智能家居提供可行路径。(236字)
762 17
面向能效和低延迟的语音控制智能家居:离线语音识别与物联网集成方案——论文阅读
编解码 算法 vr&ar
598 0
|
9月前
|
自然语言处理 负载均衡 算法
推理速度提升300%:LLaMA4-MoE的FlashAttention-2集成与量化部署方案
本文详解LLaMA4-MoE模型架构与实现全流程,涵盖语料预处理、MoE核心技术、模型搭建、训练优化及推理策略,并提供完整代码与技术文档,助你掌握大模型MoE技术原理与落地实践。
557 6
|
10月前
|
缓存 人工智能 监控
MCP资源管理深度实践:动态数据源集成方案
作为一名深耕AI技术领域多年的开发者,我见证了从传统API集成到现代化协议标准的演进历程。今天要和大家分享的MCP(Model Context Protocol)资源管理实践,是我在实际项目中积累的宝贵经验。MCP作为Anthropic推出的革命性AI连接标准,其资源管理机制为我们提供了前所未有的灵活性和扩展性。在过去的几个月里,我深度参与了多个企业级MCP项目的架构设计和实施,从最初的概念验证到生产环境的大规模部署,每一个环节都让我对MCP资源管理有了更深刻的理解。本文将从资源生命周期管理的角度出发,详细探讨文件系统、数据库、API等多种数据源的适配策略,深入分析实时数据更新与缓存的最佳实践
362 0
|
10月前
|
人工智能 安全 API
MCP vs 传统集成方案:REST API、GraphQL、gRPC的终极对比
作为一名长期关注AI技术发展的博主摘星,我深刻感受到了当前AI应用集成领域正在经历的巨大变革。随着Anthropic推出的Model Context Protocol(MCP,模型上下文协议)逐渐成熟,我们不得不重新审视传统的系统集成方案。在过去的几年中,REST API凭借其简单易用的特性成为了Web服务的标准选择,GraphQL以其灵活的数据查询能力赢得了前端开发者的青睐,而gRPC则以其高性能的特点在微服务架构中占据了重要地位。然而,当我们将视角转向AI应用场景时,这些传统方案都暴露出了一些局限性:REST API的静态接口设计难以适应AI模型的动态需求,GraphQL的复杂查询机制在处
541 0
MCP vs 传统集成方案:REST API、GraphQL、gRPC的终极对比
|
10月前
|
JSON API 开发者
Django集成Swagger全指南:两种实用方案详解
本文介绍了在 Django 项目中集成 Swagger 的两种主流方案 —— drf-yasg 和 drf-spectacular,涵盖安装配置、效果展示及高级用法,助力开发者高效构建交互式 API 文档系统,提升前后端协作效率。
428 5
|
10月前
|
运维 监控 安全
2025 年 Splunk 的 5 大替代方案:企业日志管理工具新选择
Splunk 虽强大,但高昂成本和复杂性促使企业寻找替代方案。本文推荐 2025 年五大日志管理与安全分析工具:Log360、Elastic Security、Datadog、Graylog 和 Sumo Logic,涵盖开源、云原生与高性能方向,适配不同企业需求,助你提升安全与运维效率。
835 0
|
11月前
|
存储 Kubernetes 监控
Docker与Kubernetes集成挑战及方案
面对这些挑战,并不存在一键解决方案。如同搭建灌溉系统需要考虑多种因素,集成Docker与Kubernetes也需要深思熟虑的规划、相当的技术知识和不断的调试。只有这样,才能建立起一个稳定、健康、高效的Docker-Kubernetes生态,让你的应用像花园中的植物一样繁荣生长。
430 63

热门文章

最新文章

相关产品

  • 日志服务