如何使用 terraform 为自动创建的 GKE 集群和服务防火墙规则启用 Logconfig
Posted
技术标签:
【中文标题】如何使用 terraform 为自动创建的 GKE 集群和服务防火墙规则启用 Logconfig【英文标题】:How to Enable Logconfig for automatically created GKE Cluster & Service firewall rules using terraform 【发布时间】:2021-11-15 20:47:38 【问题描述】:在 Terraform 中,我在防火墙模块中启用了日志记录,并在 GCP 中创建了 3 个自定义防火墙规则,一旦应用 terraform,logconfig 就会设置为 true。如果我触发 gcloud compute firewall-rules list --format="table(name,logConfig)"
命令,我的自定义防火墙规则将 LOG_CONFIG 显示为“启用”:True 而自动创建的 GKE 集群和服务防火墙规则显示为 False。
手动从控制台/命令行我可以将 GKE 集群和服务防火墙规则更新为 true,而通过 terraform 我找不到解决方案。我在 GCP https://cloud.google.com/kubernetes-engine/docs/concepts/firewall-rules 中找到了关于自动创建防火墙规则的文档,但发现自动启用日志配置。
谁能给我解决方案。
目前我正在使用此防火墙规则及其为我的自定义规则启用 logconfig。
resource "google_compute_firewall" "default"
name = "sample"
network = "sample-network"
project = "sample-project"
enable_logging = "true"
allow
protocol = var.proto
ports = var.ports
log_config
metadata = "INCLUDE_ALL_METADATA"
source_tags = var.sourceTags
source_ranges = var.sourceRanges
target_tags = var.targetTags
【问题讨论】:
请提供您正在使用的 Terraform 代码。 @MarkoE 我已经添加了 terraform 代码并编辑了问题。使用该模块,我可以为防火墙启用日志,但对于我找不到的 kubernetes 防火墙规则。 您能告诉我您要向哪个资源添加防火墙日志吗? IE。它是 GCP 资源还是其他什么? @MarkoE 我正在尝试为 GCP cloud.google.com/kubernetes-engine/docs/concepts/firewall-rules 中自动创建的防火墙规则启用日志配置。如果您登录到任何集群,请触发此命令 gcloud compute firewall-rules list --format="table(name,logConfig)" ,您可以在其中看到防火墙名称以 gke-something 和 k8s-something 开头,其中 logconfig 将为 false。我想通过 terraform 实现它。手动我可以做到,但通过自动化我找不到解决方案。 好的,所以,主要问题是:GCP Terraform 提供程序中是否有资源可以让您这样做? 【参考方案1】:我认为您链接的文档有解决方案:
https://cloud.google.com/kubernetes-engine/docs/concepts/firewall-rules
如果您想更好地控制防火墙行为,您可以创建具有更高优先级的防火墙规则。在自动创建的防火墙规则之前应用优先级较高的防火墙规则。
【讨论】:
以上是关于如何使用 terraform 为自动创建的 GKE 集群和服务防火墙规则启用 Logconfig的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Terraform 创建一个健康的 VPC-Native GKE 集群?