You need to enable JavaScript to run this app.
文档中心
云防火墙

云防火墙

复制全文
开发者工具
Terraform
复制全文
Terraform

本文介绍 Terraform 的安装配置。

注意

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

Terraform 介绍

Terraform 是一个开源的 IT 基础设施编排工具,支持使用配置文件定义基础设施或应用。通过 Terraform,可以轻松的编排云防火墙的资源,例如创建和修改访问控制策略等。

前提条件

您已熟悉Terraform的基础知识,包括Terraform介绍安装Terraform以及Terraform工具指南

使用说明

使用示例

本文互联网边界防火墙为例,使用Terraform依次添加地址簿、添加互联网边界防火墙策略、修改优先级、到清理资源。

创建地址簿

地址簿名称

地址簿内容

地址簿类型

地址簿描述

tf-test-ecs-ip

10.0.0.1
10.0.0.2

IP地址簿

volc-terraform-test

resource "volcengine_cfw_address_book" "ip_address_book_1" {
  group_name   = "tf-test-ecs-ip"
  description  = "volc-terraform-test"
  group_type   = "ip"
  address_list = ["10.0.0.1","10.0.0.2"]
}

配置互联网访问控制策略

注意

  • 创建规则时,如果指定的优先级比已有的规则数量大,将会自动调整优先级到当前最大。如当前访问控制策略一共5条规则,其中一条规则优先级配置成10,云防火墙会自动调整将优先级调整为5。
  • 批量创建大量规则时,必须从高到低优先级(优先级数值从小到大)依次创建,并配置好depends_on关系,否则可能出现部分规则的优先级与配置文件不一致。

方向

规则优先级

访问源类型

访问源

访问目的类型

访问目的

协议类型

目的端口

生效时间

策略描述

动作

入站

1

IP

1.1.1.1

地址簿

tf-test-ecs-ip

TCP

80

始终生效

放行1.1.1.1

观察

入站

2

IP

0.0.0.0/0

IP

0.0.0.0/0

ANY

0/65535

始终生效

全阻断兜底策略

阻断

resource "volcengine_cfw_control_policy" "create_1" {
  action            = "accept"
  description       = "放行1.1.1.1"
  destination       = volcengine_cfw_address_book.ip_address_book_1.id
  destination_type  = "group"
  direction         = "in"
  priority          = 1
  proto             = "TCP"
  dest_port         = "80"
  dest_port_type    = "port"
  repeat_type       = "Permanent"
  source            = "1.1.1.1"
  source_type       = "net"
  status            = true
}
resource "volcengine_cfw_control_policy" "create_2" {
  action            = "deny"
  description       = "全阻断兜底策略"
  destination       = "0.0.0.0/0"
  destination_type  = "net"
  direction         = "in"
  priority          = 2
  proto             = "ANY"
  repeat_type       = "Permanent"
  source            = "0.0.0.0/0"
  source_type       = "net"
  status            = true
  depends_on = [volcengine_cfw_control_policy.create_1]
}

调整互联网访问控制策略优先级

注意

  1. 修改已有策略优先级,需要使用防火墙优先级资源进行调整。若直接修改防火墙优先级策略,Terraform不会进行校验,配置无法生效。
  2. 修改规则优先级时,建议单次单条修改优先级,若批量修改优先级容易导致优先级配置错误。

方向

规则优先级

访问源类型

访问源

访问目的类型

访问目的

协议类型

目的端口

生效时间

策略描述

动作

入站

1

IP

0.0.0.0/0

IP

0.0.0.0/0

ANY

0/65535

始终生效

全阻断兜底策略

阻断

入站

2

IP

1.1.1.1

地址簿

tf-test-ecs-ip

TCP

80

始终生效

放行1.1.1.1

观察

resource "volcengine_cfw_control_policy_priority" "prio_1" {
  direction = "in"
  rule_id   = volcengine_cfw_control_policy.create_2.rule_id
  new_prio  = 1
}

批量修改优先级错误示例

若需要将策略5(in5)和策略2(in2)的优先级批量修改分别改成优先级3和优先级4。

方向

规则优先级

访问源类型

访问源

访问目的类型

访问目的

协议类型

目的端口

生效时间

描述

动作

入站

1

IP

0.0.0.0/0

IP

1.1.1.1

ANY

0/65535

始终生效

in1

观察

入站

2

IP

0.0.0.0/0

IP

1.1.1.2

ANY

0/65535

始终生效

in2

观察

入站

3

IP

0.0.0.0/0

IP

1.1.1.3

ANY

0/65535

始终生效

in3

观察

入站

4

IP

0.0.0.0/0

IP

1.1.1.4

ANY

0/65535

始终生效

in4

观察

入站

5

IP

0.0.0.0/0

IP

1.1.1.5

ANY

0/65535

始终生效

in5

观察

入站

6

IP

0.0.0.0/0

IP

1.1.1.6

ANY

0/65535

始终生效

in6

观察

错误示例:

resource "volcengine_cfw_control_policy_priority" "prio_in_2" {
  direction = "in"
  rule_id   = volcengine_cfw_control_policy.in2.rule_id
  new_prio  = 4
}
resource "volcengine_cfw_control_policy_priority" "prio_in_5" {
  direction = "in"
  rule_id   = volcengine_cfw_control_policy.in5.rule_id
  new_prio  = 3
  depends_on = [volcengine_cfw_control_policy_priority.prio_in_2]
}

云防火墙系统将批量修改优先级分成两步修改。先修改策略5再修改策略2,则会出现以下状况:

  • 修改策略5优先级为3

方向

规则优先级

访问源类型

访问源

访问目的类型

访问目的

协议类型

目的端口

生效时间

描述

动作

入站

1

IP

0.0.0.0/0

IP

1.1.1.1

ANY

0/65535

始终生效

in1

观察

入站

2

IP

0.0.0.0/0

IP

1.1.1.2

ANY

0/65535

始终生效

in2

观察

入站

3

IP

0.0.0.0/0

IP

1.1.1.5

ANY

0/65535

始终生效

in5

观察

入站

4

IP

0.0.0.0/0

IP

1.1.1.3

ANY

0/65535

始终生效

in3

观察

入站

5

IP

0.0.0.0/0

IP

1.1.1.4

ANY

0/65535

始终生效

in4

观察

入站

6

IP

0.0.0.0/0

IP

1.1.1.6

ANY

0/65535

始终生效

in6

观察

  • 修改策略2优先级为4

方向

规则优先级

访问源类型

访问源

访问目的类型

访问目的

协议类型

目的端口

生效时间

描述

动作

入站

1

IP

0.0.0.0/0

IP

1.1.1.1

ANY

0/65535

始终生效

in1

观察

入站

2

IP

0.0.0.0/0

IP

1.1.1.5

ANY

0/65535

始终生效

in5

观察

入站

3

IP

0.0.0.0/0

IP

1.1.1.2

ANY

0/65535

始终生效

in2

观察

入站

4

IP

0.0.0.0/0

IP

1.1.1.3

ANY

0/65535

始终生效

in3

观察

入站

5

IP

0.0.0.0/0

IP

1.1.1.4

ANY

0/65535

始终生效

in4

观察

入站

6

IP

0.0.0.0/0

IP

1.1.1.6

ANY

0/65535

始终生效

in6

观察

实际结果:策略5变成优先级2,策略2变成优先级4。实际结果与预期不符。

清理资源

terraform destroy
最近更新时间:2025.03.10 19:23:39
这个页面对您有帮助吗?
有用
有用
无用
无用