使用 terraform 应用时,GCP App Engine 防火墙未反映在 GCP 控制台上
GCP App Engine Firewall not reflected on GCP console when applied using terraform
我正在使用 terraform 导入现有 GCP App Engine Resource firewall rules
的状态,以便稍后可以使用 terraform
管理防火墙规则。还计划在 priority 999
.
之上再添加一条规则
我使用以下命令导入
terraform import google_app_engine_firewall_rule.newrule <project>/1000
之后我执行了 terraform show
来识别现有资源的状态并从中创建了 main.tf
。我现有的规则如下
PRIORITY ACTION SOURCE_RANGE DESCRIPTION
1000 DENY X.X.X.X/32
2147483647 ALLOW * The default action.
在main.tf
添加新防火墙信息后,文件如下
# google_app_engine_firewall_rule.default:
resource "google_app_engine_firewall_rule" "default" {
action = "ALLOW"
description = "The default action."
priority = 2147483647
project = "<<project>>"
source_range = "*"
timeouts {}
}
# google_app_engine_firewall_rule.newrule:
resource "google_app_engine_firewall_rule" "newrule" {
action = "DENY"
priority = 1000
project = "<<project>>"
source_range = "X.X.X.X/32"
timeouts {}
}
resource "google_app_engine_firewall_rule" "newrule1" {
action = "DENY"
priority = 999
project = "<<project>>"
source_range = "X.X.X.X/32"
timeouts {}
}
terraform plan
没有显示错误并且 terraform apply
执行成功。使用 gcloud
命令验证看起来规则已成功添加。下面输出的第一条规则 priority 999.
$ gcloud app firewall-rules list
PRIORITY ACTION SOURCE_RANGE DESCRIPTION
999 DENY X.X.X.X/32
1000 DENY X.X.X.X/32
2147483647 ALLOW * The default action.
但是当我使用 GCP-console
从前端检查它时,我找不到规则。还是老规矩。
PRIORITY ACTION SOURCE_RANGE DESCRIPTION
1000 DENY X.X.X.X/32
2147483647 ALLOW * The default action.
请澄清此行为。
当我在云 Shell 中使用 terraform apply
应用您的 main.tf 文件时,它向我显示了以下错误
Error: Error creating FirewallRule: googleapi: Error 400: Cannot add rule at priority 2147483647. The priority for new rules must be less than the priority 2
147483647 for the Default Action.
当我将优先级更改为147483646时,它已成功应用。
这个问题似乎与 browser
刷新有关。我在 App Engine Dashboard
的不同菜单项之间浏览,认为它也会刷新 firewall
页面,但事实并非如此。当我从 browser
刷新它时,新的 firewall rules
被反映出来。
此外,当我使用 gcloud
命令添加新的防火墙规则时,如下所示,为了将其反映在 GUI Console
中,我需要执行 browser refresh
gcloud app firewall-rules create 997 --action=allow --source-range=35.X.X.X/32
可能 GUI
中的刷新按钮会有帮助
我正在使用 terraform 导入现有 GCP App Engine Resource firewall rules
的状态,以便稍后可以使用 terraform
管理防火墙规则。还计划在 priority 999
.
我使用以下命令导入
terraform import google_app_engine_firewall_rule.newrule <project>/1000
之后我执行了 terraform show
来识别现有资源的状态并从中创建了 main.tf
。我现有的规则如下
PRIORITY ACTION SOURCE_RANGE DESCRIPTION
1000 DENY X.X.X.X/32
2147483647 ALLOW * The default action.
在main.tf
添加新防火墙信息后,文件如下
# google_app_engine_firewall_rule.default:
resource "google_app_engine_firewall_rule" "default" {
action = "ALLOW"
description = "The default action."
priority = 2147483647
project = "<<project>>"
source_range = "*"
timeouts {}
}
# google_app_engine_firewall_rule.newrule:
resource "google_app_engine_firewall_rule" "newrule" {
action = "DENY"
priority = 1000
project = "<<project>>"
source_range = "X.X.X.X/32"
timeouts {}
}
resource "google_app_engine_firewall_rule" "newrule1" {
action = "DENY"
priority = 999
project = "<<project>>"
source_range = "X.X.X.X/32"
timeouts {}
}
terraform plan
没有显示错误并且 terraform apply
执行成功。使用 gcloud
命令验证看起来规则已成功添加。下面输出的第一条规则 priority 999.
$ gcloud app firewall-rules list
PRIORITY ACTION SOURCE_RANGE DESCRIPTION
999 DENY X.X.X.X/32
1000 DENY X.X.X.X/32
2147483647 ALLOW * The default action.
但是当我使用 GCP-console
从前端检查它时,我找不到规则。还是老规矩。
PRIORITY ACTION SOURCE_RANGE DESCRIPTION
1000 DENY X.X.X.X/32
2147483647 ALLOW * The default action.
请澄清此行为。
当我在云 Shell 中使用 terraform apply
应用您的 main.tf 文件时,它向我显示了以下错误
Error: Error creating FirewallRule: googleapi: Error 400: Cannot add rule at priority 2147483647. The priority for new rules must be less than the priority 2
147483647 for the Default Action.
当我将优先级更改为147483646时,它已成功应用。
这个问题似乎与 browser
刷新有关。我在 App Engine Dashboard
的不同菜单项之间浏览,认为它也会刷新 firewall
页面,但事实并非如此。当我从 browser
刷新它时,新的 firewall rules
被反映出来。
此外,当我使用 gcloud
命令添加新的防火墙规则时,如下所示,为了将其反映在 GUI Console
中,我需要执行 browser refresh
gcloud app firewall-rules create 997 --action=allow --source-range=35.X.X.X/32
可能 GUI
中的刷新按钮会有帮助