POST 正文内容解析

本页介绍了如何配置 POST 正文内容解析, 可与 Google Cloud Armor 政策。

默认情况下,Google Cloud Armor 会将 POST 正文的全部内容评估为 统一字符串(受正文大小限制) 与预配置的 WAF 规则中的签名进行比对。对于 包含 JSON 等替代编码、消息的结构组件 (未指定的)可以根据预配置的 WAF 触发匹配 签名。为避免噪声并降低假正例的风险,如果您的受保护工作负载满足以下条件,我们建议您配置 Google Cloud Armor 以为所有受支持的 Content-Type 启用备选解析:

  • 提供 REST API
  • 使用 GraphQL
  • 接收任何包含 JSON 编码内容的请求。

您可以为每个安全政策启用或停用 POST 请求的 JSON 正文内容解析。当 Content-Type 标头设置为 application/json 时,请使用 Google Cloud CLI 中的 --json-parsing 标志。

默认情况下,此选项处于停用状态。该标志的语法如下:

--json-parsing=[STANDARD | STANDARD_WITH_GRAPHQL | DISABLED]

此标志仅适用于 gcloud compute security-policies update。除非在文件中创建安全政策,然后导入该文件,否则您无法使用此选项创建新的安全政策。如需了解详情,请参阅导入安全政策

使用 JSON 解析

在以下示例中,您将配置自定义 Content-Type 标头列表 应用替代解析方法的值。该示例更新了安全政策 POLICY_NAME 以启用 JSON 解析,并指定内容类型 application/jsonapplication/vnd.api+jsonapplication/vnd.collection+jsonapplication/vnd.hyper+json

gcloud compute security-policies update POLICY_NAME \
    --json-parsing STANDARD \
    --json-custom-content-types "application/json,application/vnd.api+json,application/vnd.collection+json,application/vnd.hyper+json"

使用 GraphQL 解析

如需配置 GraphQL 解析,请更新您的安全政策,以设置 将 --json-parsing 标志设置为 STANDARD_WITH_GRAPHQL,如以下示例所示:

gcloud compute security-policies update POLICY_NAME \
    --json-parsing STANDARD_WITH_GRAPHQL

日志记录

根据 Google Cloud Armor 安全政策评估的每个 HTTP(S) 请求都会通过 Cloud Logging 记录。日志提供详细信息,例如所应用安全政策的名称、匹配的规则以及是否执行了规则。新的后端服务资源的请求日志记录默认处于停用状态。为确保记录 Google Cloud Armor 请求,您必须为受安全政策保护的每个后端服务启用 HTTP(S) 日志记录。如需了解详情,请参阅全球外部应用负载均衡器日志记录和监控

限制

配置 JSON 解析时,请考虑以下限制:

  • POST 正文的检查仅限于前 8 KB。如果 JSON 内容大于 8 KB,则 Google Cloud Armor 会对任何预配置 WAF 规则检查的前 8 KB 内容应用 JSON 解析。
  • 如果 JSON 解析器未返回任何结果,您可以尝试 URI 解析。如果 URI 解析器未返回名称值参数或仅返回部分名称参数,则整个或部分字符串可能会被视为检查的参数名称。

后续步骤