Terraform中google_scc_notification_config全量导出filter设置
SCC全量导出到Pub/Sub的filter配置方案
最优filter取值
要匹配包含active、inactive在内的所有状态全量SCC finding,有两种可靠取值,优先选第一种:
- 推荐值:
state:*
这个写法用通配符匹配所有携带state字段的finding——所有合规的SCC finding天生就带state字段,所以既能覆盖当前已有的ACTIVE、INACTIVE两类状态,后续SCC就算新增新的状态枚举值,也能自动匹配,不会漏数。 - 可选值:空字符串
""
SCC API默认会把空filter识别为全量推送,同样能覆盖所有状态数据,缺点是表意太差,后面接维护的人很容易以为是漏写了配置,不推荐。
避坑提醒
别用硬编码枚举的写法,比如:
# 绝对不推荐,埋坑写法 state = "ACTIVE" OR state = "INACTIVE"
这种写死枚举的逻辑只要谷歌更新SCC的状态枚举,就会直接漏掉新状态的导出数据,完全不符合全量导出的要求。
配置参考
变量定义和资源配置可以直接参考下面的写法:
variable "scc_notification_filter" { type = string default = "state:*" } resource "google_scc_notification_config" "custom_notification_config" { config_id = "scc-findings-export" organization = "*******" description = "Export all SCC findings to Pub/Sub" pubsub_topic = google_pubsub_topic.scc_export.id # 建议替换成你自己的Pub/Sub主题资源引用,不要硬编码字符串 streaming_config { filter = var.scc_notification_filter } }
配置上线前建议做个校验:手动在SCC里把一条finding改成INACTIVE状态,去Pub/Sub订阅侧确认能收到对应消息,避免配置写错漏数据。
内容的提问来源于stack exchange,提问作者Ayan
相关产品推荐
相关产品推荐

