使用通用密钥设置政策引擎

本文档介绍了如何使用通用密钥在网站上配置政策引擎。通用密钥是一种新的 Google Cloud Fraud Defense 密钥,支持在 Policy Engine 中创建规则。

借助 Policy Engine,Fraud Defense 可以根据您配置的自定义政策规则确定性地触发 CAPTCHA 验证。这些规则可能会根据风险得分、IP 地址、用户代理、ASN 或经过验证的机器人(AI 代理)身份来决定何时显示欺诈防御质询。

Fraud Defense 政策引擎配置提供两项主要功能:

  • AutoExecute 集成 (protected_endpoint_group):通过自动检查传出的异步网络请求并将 reCAPTCHA 令牌附加到这些请求,简化了前端 JavaScript 集成,因此您只需在前端添加一个脚本标记。
  • 质询政策 (challenge_rule_groups):确定是否针对不同的用户操作显示质询,并使用基于自定义 CEL 的规则配置关联的质询难度级别(USABILITYBALANCESECURITY)。

准备工作

  1. 为 reCAPTCHA 准备环境

  2. 验证是否已为您的 Google Cloud 项目启用结算功能

    Fraud Defense 要求在项目上关联并启用结算功能才能使用 Policy Engine。您可以使用信用卡或现有的 Google Cloud 项目结算 ID 来启用结算功能。如果您需要结算方面的帮助,请与 Cloud Billing 支持团队联系。

创建通用密钥

根据您的首选界面,选择相应选项来创建通用密钥:

控制台

  1. 在 Google Cloud 控制台中,前往 reCAPTCHA 页面。

    前往 reCAPTCHA

  2. 验证项目名称是否显示在页面顶部的项目选择器中。

    如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。

  3. 选择密钥标签页。
  4. 点击创建密钥
  5. 显示名字段中,输入密钥的显示名。
  6. 对于应用类型,选择通用
  7. 点击创建密钥

新创建的密钥会列在 reCAPTCHA 密钥页面上。

gcloud

如需使用 Google Cloud CLI 创建通用密钥,请使用带有 --universal 标志的 gcloud recaptcha keys create 命令:

gcloud recaptcha keys create --universal --display-name=DISPLAY_NAME

响应包含新创建的 reCAPTCHA 通用密钥。

REST API

如需使用 REST API 创建通用密钥,请使用 projects.keys.create 方法并指定 universalSettings

POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

{
  "displayName": "DISPLAY_NAME",
  "universalSettings": {}
}

替换以下内容:

  • PROJECT_ID:您的 Google Cloud 项目 ID
  • DISPLAY_NAME:密钥的显示名,通常是您的网站名称

响应包含新创建的 reCAPTCHA 通用密钥。

为政策引擎配置网域

根据您的首选界面,选择相应的选项来为您的通用密钥配置允许的网域:

控制台

  1. 在 Google Cloud 控制台中,前往Fraud Defense页面。

    前往 Fraud Defense

  2. 检查项目名称是否显示在页面顶部的资源选择器中。

    如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。

  3. 点击 reCAPTCHA 密钥标签页。

  4. 找到要配置的通用密钥,然后点击该密钥。

  5. 密钥详情页面上,点击修改密钥

  6. 找到密钥使用情况设置部分。

    为了保护您的网域和子网域的 reCAPTCHA 密钥,请确保关闭停用域名验证切换开关。

    停用域名验证是一项安全风险,因为网站不受限制,因此任何人都可以访问和使用 reCAPTCHA 密钥。

    输入您的网站的域名:

    1. 网域列表部分中,点击添加网域
    2. 网域字段中,输入您的域名。
    3. 可选:如需添加其他网域,请点击添加网域,然后在网域字段中输入其他网域的名称。您最多可以添加 250 个网域。
  7. 点击保存更改

gcloud

如需使用 Google Cloud CLI 更新通用密钥的允许网域,请使用 gcloud alpha recaptcha policies update 命令,并在政策配置文件(例如 POLICY.yaml)中指定网域:

gcloud alpha recaptcha policies update --key=KEY_ID --policy=POLICY.yaml

POLICY.yaml 文件必须在 clientSettings 下指定允许的网域:

clientSettings:
  allowedDomains:
    - DOMAIN_NAME_1
    - DOMAIN_NAME_2

或者,如需允许所有网域并停用域名验证,请在 POLICY.yaml 文件中将 allowAllDomains 设置为 true

clientSettings:
  allowAllDomains: true

替换以下内容:

  • KEY_ID:您的通用密钥的 ID 或完整资源名称
  • DOMAIN_NAME_1DOMAIN_NAME_2:获准使用该密钥的网站的域名

REST API

如需使用 REST API 更新通用密钥的允许网域,请使用 projects.keys.updatePolicy 方法。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的 Google Cloud 项目 ID
  • KEY_ID:您的通用密钥的 ID
  • DOMAIN_NAME_1DOMAIN_NAME_2:获准使用该密钥的网站的域名

HTTP 方法和网址:

PATCH https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys/KEY_ID/policy?updateMask=clientSettings.allowedDomains,clientSettings.allowAllDomains

请求 JSON 正文:

{
"clientSettings": {
  "allowedDomains": [
    "DOMAIN_NAME_1",
    "DOMAIN_NAME_2"
  ],
  "allowAllDomains": false
}
}

如需发送您的请求,请展开以下选项之一:

如果请求成功,则返回更新后的政策配置。

后续步骤