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

本文涉及的产品
对象存储 OSS,20GB 3个月
文件存储 NAS,50GB 3个月
对象存储 OSS,内容安全 1000次 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站,敬请留意

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
9天前
|
消息中间件 存储 监控
微服务日志监控的挑战及应对方案
【10月更文挑战第23天】微服务化带来模块独立与快速扩展,但也使得日志监控复杂。日志作用包括业务记录、异常追踪和性能定位。
|
12天前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
45 1
|
19天前
|
存储 JavaScript 数据库
ToB项目身份认证AD集成(一):基于目录的用户管理、LDAP和Active Directory简述
本文介绍了基于目录的用户管理及其在企业中的应用,重点解析了LDAP协议和Active Directory服务的概念、关系及差异。通过具体的账号密码认证时序图,展示了利用LDAP协议与AD域进行用户认证的过程。总结了目录服务在现代网络环境中的重要性,并预告了后续的深入文章。
|
1月前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
41 1
|
2月前
|
Kubernetes API Docker
跟着iLogtail学习容器运行时与K8s下日志采集方案
iLogtail 作为开源可观测数据采集器,对 Kubernetes 环境下日志采集有着非常好的支持,本文跟随 iLogtail 的脚步,了解容器运行时与 K8s 下日志数据采集原理。
|
2月前
|
SQL 搜索推荐 数据管理
离线集成整库迁移再升级,定制化与灵活性全面增强
为了更好地满足客户对于数据库迁移过程中的个性化管理和操作需求,我们最新版本对“离线集成整库迁移”功能进行了更新,旨在解决客户在实际应用中遇到的痛点,进一步提升迁移任务的可管理性和便捷性。
|
3月前
|
移动开发 小程序 测试技术
项目管理和持续集成系统搭建问题之帮助以诺行管理任务和资源如何解决
项目管理和持续集成系统搭建问题之帮助以诺行管理任务和资源如何解决
33 2
|
3月前
|
机器人 C# 人工智能
智能升级:WPF与人工智能的跨界合作——手把手教你集成聊天机器人,打造互动新体验与个性化服务
【8月更文挑战第31天】聊天机器人已成为现代应用的重要组成部分,提供即时响应、个性化服务及全天候支持。随着AI技术的发展,聊天机器人的功能日益强大,不仅能进行简单问答,还能实现复杂对话管理和情感分析。本文通过具体案例分析,展示了如何在WPF应用中集成聊天机器人,并通过示例代码详细说明其实现过程。使用Microsoft的Bot Framework可以轻松创建并配置聊天机器人,增强应用互动性和用户体验。首先,需在Bot Framework门户中创建机器人项目并编写逻辑。然后,在WPF应用中添加聊天界面,实现与机器人的交互。
89 0
|
3月前
|
存储 Prometheus Kubernetes
在K8S中,如何收集K8S日志?有哪些方案?
在K8S中,如何收集K8S日志?有哪些方案?
|
3月前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果

相关产品

  • 日志服务