4

https://www.terraform.io/docs/providers/google/r/compute_security_policy.html

规则嵌入在 google_compute_security_policy 资源中

云盔甲有一个愚蠢的限制,一个规则最多只能允许 5 个 IP - 我有大约 15 个 IP 我想将其列入白名单

我希望这是动态的,而不必手动将它们分成 3 个在 google_compute_security_policy 中静态定义的规则

我想要一个包含所有 15 个 IP 的 terraform var。然后遍历该变量并创建 15 条规则并应用于 google_compute_security_policy 资源。

这样的事情可能吗?

4

2 回答 2

6

您可以使用内置chunklist函数:

chunklist将单个列表拆分为固定大小的块,返回列表列表。

所以在你的情况下,我们会有一些类似的东西:

resource "google_compute_security_policy" "default" {

  dynamic "rule" {
    for_each = chunklist(var.my_ip_array, 5)

    content {
      action   = "allow"
      priority = rule.key+1

      match {
        versioned_expr = "SRC_IPS_V1"

        config {
          src_ip_ranges = rule.value
        }
      }
    }
  }
于 2019-08-07T13:21:01.973 回答
0

根据官方 GCP 文档 ( https://cloud.google.com/armor/docs/security-policy-concepts#limits ) Cloud Armor 有 5 个 IP 地址或 IP 地址范围的硬性限制,无法更改.

您可以尝试在同一计算安全策略内将这 15 个 IP 拆分为 3 个不同的规则,以绕过此限制。

于 2019-07-12T15:07:04.913 回答