如何使用列表为 google_compute_security_policy 定义规则
how to use a list to define rules for google_compute_security_policy
https://www.terraform.io/docs/providers/google/r/compute_security_policy.html
规则嵌入在 google_compute_security_policy 资源中
Cloud armor 有一个愚蠢的限制,一条规则中最多只允许 5 个 IP- 我有大约 15 个 IP 我想列入白名单
我希望它是动态的,而不必手动将它们分成 google_compute_security_policy
中静态定义的 3 个规则
我想要一个包含所有 15 个 IP 的列表的 terraform var。然后遍历该 var 并创建 15 条规则并应用于 google_compute_security_policy 资源。
这样的事情可能吗?
根据官方 GCP 文档(https://cloud.google.com/armor/docs/security-policy-concepts#limits) Cloud Armor 有 5 个 IP 地址或 IP 地址范围的硬性限制,无法更改。
您可以尝试在同一个计算安全策略中按照 3 个不同的规则拆分这 15 个 IP,以绕过此限制。
您可以使用内置 chunklist
函数:
chunklist
splits a single list into fixed-size chunks, returning a list of lists.
所以在你的情况下,我们会按照这些思路做一些事情:
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
}
}
}
}
https://www.terraform.io/docs/providers/google/r/compute_security_policy.html
规则嵌入在 google_compute_security_policy 资源中
Cloud armor 有一个愚蠢的限制,一条规则中最多只允许 5 个 IP- 我有大约 15 个 IP 我想列入白名单
我希望它是动态的,而不必手动将它们分成 google_compute_security_policy
中静态定义的 3 个规则我想要一个包含所有 15 个 IP 的列表的 terraform var。然后遍历该 var 并创建 15 条规则并应用于 google_compute_security_policy 资源。
这样的事情可能吗?
根据官方 GCP 文档(https://cloud.google.com/armor/docs/security-policy-concepts#limits) Cloud Armor 有 5 个 IP 地址或 IP 地址范围的硬性限制,无法更改。
您可以尝试在同一个计算安全策略中按照 3 个不同的规则拆分这 15 个 IP,以绕过此限制。
您可以使用内置 chunklist
函数:
chunklist
splits a single list into fixed-size chunks, returning a list of lists.
所以在你的情况下,我们会按照这些思路做一些事情:
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
}
}
}
}