Gateway 支持创建 IP、主机名或其他条目的 列表,以便在您的策略中引用。
您在加入 Cloudflare 平台时,很可能已经有了一些预先确定的安全策略。例如,您可能拥有基于主机名、IP 或与单个用户绑定的其他指标的显式拒绝列表。也许某些网络可以访问某些顶点记录,而其他网络则不能。
以简化后续维护的方式迁移到 Cloudflare 的最佳方法是构建尽可能多的可重用对象。这不仅是因为这可以使策略构建更简单,而且因为随着这些应用程序、网络和服务有机地发生变化和增长,对列表的更新将自动应用到所有应用了该列表的地方。
要测试上传 CSV 列表,您可以下载 IP 地址范围的示例 CSV 文件,或将以下内容复制到文件中:
value,description
192.0.2.0/24,This is an IP address range in CIDR format
198.51.100.0/24,This is also an IP address range
203.0.113.0/24,This is the third IP address range格式化要上传的 CSV 文件时:
- 每行应为一个包含值和可选说明的单一条目。
- 必须包含表头行,以便 Zero Trust 识别说明。
- 不允许有尾随空格字符。
- CRLF(Windows)和 LF(Unix)换行符均有效。
要将列表上传到 Cloudflare 仪表板:
- 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Reusable components(可重用组件) > Lists(列表)。
- 选择 Upload CSV(上传 CSV)。
- 接下来,指定 List name(列表名称),输入可选说明,然后选择 List type(列表类型)。
- 将文件拖放到 CSV file(CSV 文件) 窗口中,或选择一个文件。
- 选择 Create(创建)。
-
向您的
cloudflare_api_token↗ 添加以下权限:Zero Trust Write
-
解码 CSV 文件的内容并将其存储为本地值:
locals { ip_list = csvdecode(file("${path.module}/list-test.csv")) } -
使用
cloudflare_zero_trust_list↗ 资源创建列表:resource "cloudflare_zero_trust_list" "ips_from_csv" { account_id = var.cloudflare_account_id name = "IPs imported from CSV" description = "Managed by Terraform" type = "IP" items = local.ip_list }
您现在可以通过选择 in list 运算符在策略生成器中使用此列表。
- 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Reusable components(可重用组件) > Lists(列表)。
- 选择 Create a manual list(创建手动列表)。
- 接下来,指定 List name(列表名称),输入可选说明,然后选择 List type(列表类型)。
- 在 Add items(添加条目) 字段中手动输入您的列表元素,然后选择 Add(添加)。
- 选择 Save(保存)。
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/lists" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"description": "Private application IPs",
"items": [
{
"value": "10.226.0.177/32"
},
{
"value": "10.226.1.177/32"
}
],
"name": "Corporate IP list",
"type": "IP"
}'-
向您的
cloudflare_api_token↗ 添加以下权限:Zero Trust Write
-
使用
cloudflare_zero_trust_list↗ 资源创建列表。IP 列表示例:
resource "cloudflare_zero_trust_list" "wiki_IPs" { account_id = var.cloudflare_account_id name = "Company Wiki IP addresses" description = "Managed by Terraform" type = "IP" items = [ { description = "Example IP address range" value = "192.0.2.0/24", }, { value = "198.51.100.0/24" } ] }域列表示例:
resource "cloudflare_zero_trust_list" "wiki_domains" { account_id = var.cloudflare_account_id name = "Company Wiki Domains" description = "Managed by Terraform" type = "DOMAIN" items = [ { value = "wiki.example.com" }, { value = "wiki2.example.com" }] }
您现在可以通过选择 in list 运算符在策略生成器中使用此列表。