Terraform集成示例

Terraform是一种开源工具,用于安全高效地预配和管理云基础结构。您可以使用Terraform管理配置审计资源。本文为您介绍如何通过Terraform创建一个配置审计的投递渠道。

支持资源列表

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

资源类型

资源链接

说明

Resources

alicloud_config_aggregate_compliance_pack

创建账号组合规包

alicloud_config_aggregate_config_rule

创建账号组规则

alicloud_config_aggregate_delivery

创建投递渠道

alicloud_config_aggregator

创建账号组

alicloud_config_compliance_pack

创建合规包

alicloud_config_configuration_recorder

设置资源监控范围

alicloud_config_delivery

创建或更新投递渠道(推荐使用)

alicloud_config_delivery_channel

创建或更新投递渠道(不推荐)

alicloud_config_remediation

创建规则修正

alicloud_config_rule

新建或修改规则

Data Sources

alicloud_config_aggregate_compliance_packs

查询账号组合规包

alicloud_config_aggregate_config_rules

查询账号组规则

alicloud_config_aggregate_deliveries

查询投递渠道基本信息

alicloud_config_aggregators

查询账号组

alicloud_config_compliance_packs

查询指定账号组合规包信息

alicloud_config_configuration_recorders

查询资源监控范围

alicloud_config_deliveries

查询投递渠道(推荐使用)

alicloud_config_delivery_channels

查询投递渠道(不推荐)

alicloud_config_rules

查询规则信息

操作步骤

配置权限

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

  • AliyunConfigFullAccess:管理配置审计资源的权限。

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

安装Terraform

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

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

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

编写模板

创建一个名为main.tf文件,填入以下内容,用于创建一个投递渠道。

variable "name" {
  default = "tf-example-sls"
}
data "alicloud_account" "this" {}
data "alicloud_regions" "this" {
  current = true
}

resource "alicloud_log_project" "default" {
  name = var.name
}
resource "alicloud_log_store" "default" {
  name    = var.name
  project = alicloud_log_project.default.name
}

resource "alicloud_config_delivery" "default" {
  configuration_item_change_notification = true
  non_compliant_notification             = true
  delivery_channel_name                  = var.name
  delivery_channel_target_arn            = "acs:log:${data.alicloud_regions.this.ids.0}:${data.alicloud_account.this.id}:project/${alicloud_log_project.default.name}/logstore/${alicloud_log_store.default.name}"
  delivery_channel_type                  = "SLS"
  description                            = var.name
}

更多关于alicloud_config_delivery资源类型的配置信息,请参见配置审计Terraform资源和数据源

运行模板

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

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

    terraform init

    image

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

    terraform validate

    image

  3. 创建执行计划。

    terraform plan

    image

  4. 部署模板。

    terraform apply

    image

    执行命令后输入yes即可真正变更资源。您可以通过terraform destroy释放当前模板创建的资源。

  5. 您可以通过OpenAPI、SDK或者配置审计控制台等方式,检查操作是否正确完成。

    image