使用Terraform玩转SLS日志审计自动化部署

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: Terraform是一种开源工具,用于安全高效地预览,配置和管理云基础架构和资源。阿里云的terraform-provider-alicloud目前已经提供了超过 163 个 Resource 和 113 个 Data Source,覆盖计算,存储,网络,负载均衡,CDN,容器服务,中间件,访问控制,数据库等超过35款产品。本文主要介绍如何使用Terraform自动化部署阿里云日志服务下的日志审计服务。

背景

1. 什么是Terraform

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

阿里云作为国内第一家与 Terraform 集成的云厂商,terraform-provider-alicloud目前已经提供了超过 163 个 Resource 和 113 个 Data Source,覆盖计算,存储,网络,负载均衡,CDN,容器服务,中间件,访问控制,数据库等超过35款产品,已经满足了大量大客户的自动化上云需求。

2. Terraform的优势

  • 将基础结构部署到多个云

Terraform适用于多云方案,将类似的基础结构部署到阿里云、其他云提供商或者本地数据中心。开发人员能够使用相同的工具和相似的配置文件同时管理不同云提供商的资源。

  • 自动化管理基础结构

Terraform能够创建配置文件的模板,以可重复、可预测的方式定义、预配和配置ECS资源,减少因人为因素导致的部署和管理错误。能够多次部署同一模板,创建相同的开发、测试和生产环境。

  • 基础架构即代码(Infrastructure as Code)

可以用代码来管理维护资源。允许保存基础设施状态,从而使您能够跟踪对系统(基础设施即代码)中不同组件所做的更改,并与其他人共享这些配置 。

  • 降低开发成本

您通过按需创建开发和部署环境来降低成本。并且,您可以在系统更改之前进行评估。


安装和配置Terraform

  1. 在cloudshell中使用Terraform
  2. 在本地安装和配置Terraform


使用Terraform配置日志审计

操作步骤

一、配置身份信息以及日志审计服务的中心化区域

在环境变量中配置用户身份信息以及日志审计服务的中心Project所在区域

export ALICLOUD_ACCESS_KEY="LTAIUrZCw3********"
export ALICLOUD_SECRET_KEY="zfwwWAMWIAiooj14GQ2*************"
export ALICLOUD_REGION="cn-huhehaote"

二、操作RAM授权

使用Terraform调用RAM接口完成RAM授权,接口详情请参见alicloud_ram_policy。在调用RAM接口时,需配置审计相关权限(策略内容、角色名称等),详情请参见手动授权日志采集与同步


三、配置日志采集

  1. 创建一个terraform工作目录(文件夹),并在该目录下创建一个名为terraform.tf的文件,文件内容为
resource "alicloud_log_audit" "example" {
  display_name = "tf-audit-test"
  aliuid       = "12345678"
}

上述文件内容中,"example"以及"tf-audit-test"用户可自定义,aliuid填写用户自己的阿里云主账号ID。


  1. 在上一步创建的工作目录下执行terraform init来初始化terraform工作目录

1.png

执行完毕后,提示“Terraform has been successfully initialized!”代表初始化成功


  1. 编辑terraform.tf文件,填写日志审计服务的相关参数,以此配置日志采集。配置样例如下
resource "alicloud_log_audit" "example" {
  display_name = "tf-audit-test"
  aliuid       = "12345678"
  variable_map = {
    "actiontrail_enabled" = "true",
    "actiontrail_ttl" = "180"
  }
}

上述配置表示开启操作审计(Actiontrail)日志的采集,存储时长(ttl)为180天。

用户还可以配置多账号采集,其配置样例如下

resource "alicloud_log_audit" "example" {
  display_name = "tf-audit-test"
  aliuid       = "12345678"
  variable_map = {
    "actiontrail_enabled" = "true",
    "actiontrail_ttl" = "180"
  }
  multi_account = ["123456789123", "12345678912300123"]
}

其中multi_account的值是要采集的多账号的阿里云主账号ID列表。

terraform中日志审计采集配置的完整参数列表参考:Terraform-Aliyun Log Audit


  1. 执行terraform apply,使terraform.tf中的采集配置生效

2.png

输入yes确认应用配置,如果提示Apply complete则表示采集配置应用成功,日志审计服务会按照配置进行日志采集和存储。

3.png

四、其他常用操作

  1. 导入已有审计配置

terraform命令:terraform import alicloud_log_audit.example tf-audit-test

其中exampletf-audit-test用户可自定义修改

4.png

执行完毕后,查看terraform工作目录下terraform.tfstate文件内容,即是导入的配置。

注意:

  • 如果想要将terraform import导入的配置迁移到terraform.tf配置文件中,需要手动拷贝过去,并对格式作适当调整,满足配置文件的格式要求。
  • 如果当前terraform工作目录已经执行过terrraform apply或者terraform import,此时执行terraform import会失败,需要将当前目录下的terraform.tfstate文件删除后再重新导入。


  1. 查看当前审计配置

terraform命令:terraform show

5.png


  1. 查看当前terraform工作目录下的terraform.tf配置文件与已生效(apply)的配置的差异(资源预览)

terraform命令:terraform plan

6.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1天前
|
安全 Linux 网络安全
/var/log/secure日志详解
Linux系统的 `/var/log/secure` 文件记录安全相关消息,包括身份验证和授权尝试。它涵盖用户登录(成功或失败)、`sudo` 使用、账户锁定解锁及其他安全事件和PAM错误。例如,SSH登录成功会显示"Accepted password",失败则显示"Failed password"。查看此文件可使用 `tail -f /var/log/secure`,但通常只有root用户有权访问。
152 4
|
1天前
|
运维 监控 数据可视化
日志服务 HarmonyOS NEXT 日志采集最佳实践
鸿蒙操作系统(HarmonyOS)上的日志服务(SLS)SDK 提供了针对 IoT、移动端到服务端的全场景日志采集、处理和分析能力,旨在满足万物互联时代下应用的多元化设备接入、高效协同和安全可靠运行的需求。
116794 10
|
1天前
|
监控 Linux 网络安全
/var/log/auth.log日志说明
`/var/log/auth.log`是Linux系统记录身份验证和授权事件的日志文件,包括登录尝试、SSH连接、sudo操作等。系统管理员可通过它监控用户登录、检查失败尝试、跟踪SSH活动、查看sudo/su操作及PAM活动。日志内容可能因系统配置而异,可能存在于其他日志文件中。分析这些日志可使用`tail`、`grep`等命令或专用日志分析工具。了解系统和其服务详情有助于提取有用信息。
63 2
|
1天前
|
安全 Ubuntu Unix
/var/log/syslog日志说明
`/var/log/syslog`是Unix和Linux的日志文件,记录系统事件和消息,由`syslogd`或`rsyslogd`生成。日志条目含时间戳、主机名、PID、日志级别(如DEBUG、ERROR)和事件描述。内容涵盖系统启动/关闭、硬件错误、网络、用户登录、安全事件等。查看日志可使用`cat`、`tail`、`less`或`grep`命令。不过,不同Linux发行版可能有变,如Ubuntu使用`journald`和`journalctl`。
70 3
|
1天前
|
C++
JNI Log 日志输出
JNI Log 日志输出
18 1
|
1天前
|
存储 运维 大数据
聊聊日志硬扫描,阿里 Log Scan 的设计与实践
泛日志(Log/Trace/Metric)是大数据的重要组成,伴随着每一年业务峰值的新脉冲,日志数据量在快速增长。同时,业务数字化运营、软件可观测性等浪潮又在对日志的存储、计算提出更高的要求。
|
1天前
|
XML Java Maven
Springboot整合与使用log4j2日志框架【详解版】
该文介绍了如何在Spring Boot中切换默认的LogBack日志系统至Log4j2。首先,需要在Maven依赖中排除`spring-boot-starter-logging`并引入`spring-boot-starter-log4j2`。其次,创建`log4j2-spring.xml`配置文件放在`src/main/resources`下,配置包括控制台和文件的日志输出、日志格式和文件切分策略。此外,可通过在不同环境的`application.yml`中指定不同的log4j2配置文件。最后,文章提到通过示例代码解释了日志格式中的各种占位符含义。
|
1天前
|
运维 监控 Go
Golang深入浅出之-Go语言中的日志记录:log与logrus库
【4月更文挑战第27天】本文比较了Go语言中标准库`log`与第三方库`logrus`的日志功能。`log`简单但不支持日志级别配置和多样化格式,而`logrus`提供更丰富的功能,如日志级别控制、自定义格式和钩子。文章指出了使用`logrus`时可能遇到的问题,如全局logger滥用、日志级别设置不当和过度依赖字段,并给出了避免错误的建议,强调理解日志级别、合理利用结构化日志、模块化日志管理和定期审查日志配置的重要性。通过这些实践,开发者能提高应用监控和故障排查能力。
89 1
|
1天前
|
弹性计算 运维 Shell
|
1天前
|
Java
log4j异常日志过滤规则配置
log4j异常日志过滤规则配置
92 0

相关产品

  • 日志服务
  • 推荐镜像

    更多