本页介绍了如何配置详细日志记录,这项可选功能可与 Google Cloud Armor 安全政策搭配使用。
您可以调整日志中记录的详细程度。我们建议您仅在首次创建政策、更改政策或排查政策问题时启用详细日志记录。如果您启用详细日志记录,那么它将适用于预览模式下的规则以及标准操作期间的有效(非预览)规则。
举个例子,假设您无法判断为什么特定请求触发了预配置的 WAF 规则。Google Cloud Armor 的默认事件日志包含触发的规则以及子签名。不过,您可能需要从触发规则的传入请求中识别详细信息,以进行问题排查、验证规则或调整规则。这只是一个示例,我们建议您启用详细日志记录。
您可以配置 Google Cloud Armor 日志记录级别,以使用 gcloud CLI 中的 --log-level
标志为每项安全政策启用更详细的日志记录。
默认情况下,此选项处于停用状态。该标志的语法如下:
--log-level=[NORMAL | VERBOSE]
此标志仅适用于 gcloud compute security-policies update
命令。除非在文件中创建安全政策,然后导入该文件,否则您无法使用此选项创建新的安全政策。 如需了解详情,请参阅导入安全政策。
例如:
gcloud compute security-policies update ca-policy-1 \ --log-level=VERBOSE
我们建议您在首次创建政策、更改政策或排查政策问题时启用详细日志记录。
启用详细日志记录时记录的值
启用详细日志记录后,其他信息将记录到发送到 Cloud Logging 的负载均衡请求日志中。启用详细日志记录后,请求日志中会显示以下附加字段:
matchedFieldType
(字符串):导致匹配的字段类型。ARG_NAMES
ARG_VALUES
BODY
- 如果
BODY
字段在日志中,则表示整个邮件正文与规则匹配。
- 如果
COOKIE_VALUES
COOKIE_NAMES
FILENAME
HEADER_VALUES
RAW_URI
REFERER
REQUEST_LINE
URI
USER_AGENT
HEADER_NAMES
ARGS_GET
X_FILENAME
ARG_NAME_COUNT
TRANSFER_ENCODING
REQUEST_METHOD
matchedFieldName
(字符串):如果它与键值对的值部分匹配,则键值会存储在此字段中。否则,它为空。matchedFieldValue
(字符串):导致匹配的字段部分的前缀,最多 16 个字节。matchedFieldLength
(整数):字段的总长度。matchedOffset
(整数):导致匹配的字段的起始偏移量。matchedLength
(整数):对局长度。
例如,您可以将此请求发送到启用了 SQL 注入 WAF 规则的项目:
curl http://IP_ADDR/?sql_table=abc%20pg_catalog%20xyz
日志浏览器中的条目如下所示:
enforcedSecurityPolicy: { name: "user-staging-sec-policy" priority: 100 configuredAction: "DENY" outcome: "DENY preconfiguredExprIds: [ 0: "owasp-crs-v030001-id942140-sqli" ] matchedFieldType: "ARG_VALUES" matchedFieldName: "sql_table" matchedFieldValue: "pg_catalog" matchedFieldLength: 18 matchedOffset: 4 matchedLength: 10 }
启用详细日志记录时维护隐私
在使用详细日志记录时,Google Cloud Armor 会记录来自触发特定预配置 WAF 规则的传入请求的元素的片段。这些代码段可能包含请求标头、请求参数或 POST 正文的元素。代码段可能包含敏感数据,例如传入请求中的 IP 地址或其他敏感数据,具体取决于请求标头或正文中的内容以及触发 WAF 规则的内容。
启用详细日志记录功能时,请注意,在 Logging 中可能会累积日志中的潜在敏感数据。我们建议您仅在规则创建和验证期间或进行问题排查时启用详细日志记录。在正常操作期间,我们建议您停用详细日志记录。