Terraform集成示例

Terraform是一种开源工具,用于安全高效地预配和管理云基础结构。您可以使用Terraform管理操作审计资源。本文为您演示如何通过Terraform创建一个操作审计的跟踪。

支持资源列表

支持Terraform编排和使用操作审计的部分资源和数据源清单,请参见操作审计Terraform资源和数据源。如果您还不了解Terraform,请参见什么是Terraform

资源类型

资源链接

说明

Resource

alicloud_actiontrail_global_events_storage_region

全局事件存储地域。

alicloud_actiontrail_history_delivery_job

数据回补任务。

alicloud_actiontrail_trail

跟踪。

alicloud_actiontrail

跟踪。

Data Source

alicloud_actiontrail_global_events_storage_region

全局事件存储地域。

alicloud_actiontrail_history_delivery_jobs

数据回补任务。

alicloud_actiontrail_trails

跟踪。

alicloud_actiontrails

跟踪。

操作步骤

配置权限

执行Terraform模板需要RAM用户权限,我们需要创建一个RAM用户,并获取AccessKey,添加权限策略。该AccessKey会配置为Terraform工具的环境变量。Terraform模板会创建操作审计跟踪,您需要为RAM用户添加以下权限:

  • AliyunActionTrailFullAccess:管理操作审计(ActionTrail)的权限。

  • AliyunLogFullAccess:管理日志服务(Log)的权限。

阿里云账号拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。请根据业务的实际情况按需分配权限后进行接口调用。RAM用户需具备操作审计和日志服务资源的权限。具体操作,请参见为RAM用户授权

安装Terraform

  • 在本地安装和配置Terraform,请参见在本地安装和配置Terraform

    安装完成后,您可以打开命令行终端,输入terraform version,看到返回版本信息表示已成功安装。

  • 如果您不想安装Terraform,可以使用阿里云提供的在线服务Cloud Shell,其中内置了Terraform的运行环境。

编写模板

创建一个名为main.tf文件,填入以下内容,用于创建一个跟踪。

variable "default_trail_name" {
  default = "tf-example"
}

resource "random_integer" "default" {
  min = 10000
  max = 99999
}

data "alicloud_regions" "example" {
  current = true
}
data "alicloud_account" "example" {}

resource "alicloud_log_project" "example" {
  project_name = "${var.default_trail_name}-${random_integer.default.result}"
  description  = "tf actiontrail example"
}

data "alicloud_ram_roles" "example" {
  name_regex = "AliyunServiceRoleForActionTrail"
}

resource "alicloud_actiontrail_trail" "example" {
  trail_name         = var.default_trail_name
  sls_write_role_arn = data.alicloud_ram_roles.example.roles.0.arn
  sls_project_arn    = "acs:log:${data.alicloud_regions.example.regions.0.id}:${data.alicloud_account.example.id}:project/${alicloud_log_project.example.project_name}"
}

更多关于alicloud_actiontrail_trail资源类型的配置信息,请参见alicloud_actiontrail_trail

运行模板

该示例以Windows操作为例,在其他操作系统中,运行命令的具体方式可能会有所不同。

  1. 初始化加载模块,包括Provider等模板。

    terraform init

    image

  2. 验证模板语法是否正确。

    terraform validate

    image

  3. 创建执行计划。

    terraform plan

    image

  4. 部署模板。

    terraform apply

    本案例部署时的部分返回日志。

    image

    输入yes后按Enter键,即可真正变更资源。您可以通过terraform destroy释放当前模板创建的资源。

  5. 创建跟踪成功后,您可以通过OpenAPI、SDK或操作审计控制台查看新创建的跟踪。

    image