本页面介绍了如何配置详细日志记录,这是一种可与 Cloud Armor 安全政策搭配使用的可选功能。
您可以调整日志中记录的详细程度。我们建议您仅在首次创建政策、更改政策或排查政策问题时启用详细日志记录。如果您启用详细日志记录,那么它将适用于预览模式下的规则以及标准操作期间的有效(非预览)规则。
假设您无法判断为什么特定请求会触发预配置的 WAF 规则。Cloud Armor 的默认事件日志包含触发的规则以及子特征签名。但是,您可能需要从触发规则的传入请求中识别详细信息,以进行问题排查、验证规则或调整规则。对于此示例,我们建议您启用详细日志记录。
您可以在 Google Cloud CLI 中使用 --log-level
标志配置 Cloud Armor 日志记录级别,以便为每个安全政策启用更详细的日志记录。
默认情况下,此选项处于停用状态。该标志的语法如下:
--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
(整数):匹配的长度。inspectedBodySize
(整数):您使用--request-body-inspection-size
标志设置的请求正文的已配置检查限制(字节数)。如需详细了解此限制,请参阅 POST 和 PATCH 正文检查限制。
例如,您可以将以下请求发送到启用了 SQL 注入 WAF 规则的项目:
curl http://IP_ADDR/?sql_table=abc%20pg_catalog%20xyz
Logs Explorer 中的条目类似于以下内容:
enforcedSecurityPolicy: { name: "user-staging-sec-policy" priority: 100 configuredAction: "DENY" outcome: "DENY inspectedBodySize: 65536 preconfiguredExprIds: [ 0: "owasp-crs-v030001-id942140-sqli" ] matchedFieldType: "ARG_VALUES" matchedFieldName: "sql_table" matchedFieldValue: "pg_catalog" matchedFieldLength: 18 matchedOffset: 4 matchedLength: 10 }
启用详细日志记录时维护隐私
在使用详细日志记录时,Cloud Armor 会记录来自触发特定预配置 WAF 规则的传入请求的元素的代码段。这些代码段可能包含请求标头、请求参数或 POST 正文的元素。代码段可能包含敏感数据,例如传入请求中的 IP 地址或其他敏感数据,具体取决于请求标头或正文中的内容以及触发 WAF 规则的内容。
启用详细日志记录时,Logging 的日志中存在累积潜在敏感数据的风险。我们建议您仅在规则创建和验证期间或进行问题排查时启用详细日志记录。在正常操作期间,我们建议您停用详细日志记录。