问题描述
我正在使用 Cloud Armor 部署 WAF,我意识到可以在“仅限预览”模式下创建规则,并且 Cloud Logging 中有 Cloud Armor 条目。
问题是,当我创建“仅预览”规则并且该规则与某个请求匹配时,我无法在日志中区分匹配某个特定规则的请求和/或正常的普通请求。他们看起来都差不多。
在这些情况下,是否有任何日志属性仅在请求匹配特定规则时才存在(或具有特定值)?因为我发现明确检查某些请求匹配的规则的唯一方法是取消选中“仅预览”标志,并且在测试时不利于生产。
解决方法
当您将 Cloud Armor 中配置的规则设置为“预览”时,Cloud Logging 会记录规则在启用后会执行的操作。
此 Cloud Logging 过滤器将向您显示被 Cloud Armor 拒绝的条目:
resource.type="http_load_balancer"
jsonPayload.statusDetails="denied_by_security_policy"
此 Cloud Logging 过滤器将向您显示 Cloud Armor 会拒绝的条目:
resource.type="http_load_balancer"
jsonPayload.previewSecurityPolicy.outcome="DENY"
在 Cloud Logging 中,将 resource.type 设置为“http_load_balancer”并删除第二个过滤器行以查看所有条目。
展开其中一项:
查找“jsonPayload.enforcedSecurityPolicy”。这是 Cloud Armor 政策。
查找“jsonPayload.previewSecurityPolicy”。这提供了规则优先级的详细信息,如果规则不在预览中,它会告诉您规则和结果。
示例截图: