管理 JS 验证码 API 的 API 密钥 - Amazon WAFAmazon Firewall Manager、和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理 JS 验证码 API 的 API 密钥

要将 Amazon WAF 验证码集成到带有 JavaScript API 的客户端应用程序中,您需要用于运行验证码拼图的客户端域的 API 集成标签和加密 API 密钥。 JavaScript

的 CAPTCHA 应用程序集成 JavaScript 使用加密的 API 密钥来验证客户端应用程序域是否有权使用 Amazon WAF CAPTCHA API。当您从 JavaScript 客户端调用 CAPTCHA API 时,您需要提供一个 API 密钥和一个包含当前客户端域名的域名列表。您最多可以在一个加密密钥中列出 5 个域名。

API 密钥要求

您在验证码集成中使用的 API 密钥必须包含一个适用于您使用密钥的客户端的域。

  • 如果您在客户的智能威胁集成中指定了 window.awsWafCookieDomainList,那么您的 API 密钥中至少有一个域必须与 window.awsWafCookieDomainList 中的一个令牌域完全匹配,或者必须是其中一个令牌域的顶点域。

    例如,对于令牌域 mySubdomain.myApex.com,API 密钥 mySubdomain.myApex.com 完全匹配,API 密钥 myApex.com 是顶点域。任一密钥都与令牌域相匹配。

    有关设置令牌域列表的信息,请参阅 提供用于令牌的域名

  • 否则,当前域名必须包含在 API 密钥中。当前域名是您可以在浏览器地址栏中看到的域名。

根据受保护的主机域和为 Web ACL 配置的令牌域列表,您使用的域必须是可以接受的域。 Amazon WAF 有关更多信息,请参阅 配置 Web ACL 令牌域列表

如何为 API 密钥选择区域

Amazon WAF 可以在任何可用的区域生成验证码 API 密钥。 Amazon WAF

通常,您应使用与网页 ACL 相同的区域作为验证码 API 密钥。但是,如果您希望全球受众使用区域性网络 ACL,则可以获取范围为的 CAPTCHA JavaScript 集成标签 CloudFront 和作用域为 API 密钥,然后将其与区域网络 ACL 一起使用。 CloudFront这种方法允许客户从离他们最近的区域加载验证码拼图,从而减少延迟。

不支持在多个区域之间使用的 CAPTCHA API 密钥范围以外的 CloudFront 区域。它们只能在适用范围内的区域中使用。

为您的客户端域生成 API 密钥

通过控制台获取集成 URL 并生成和检索 API 密钥。

  1. 登录 Amazon Web Services Management Console 并打开 Amazon WAF 控制台,网址为 https://console.aws.amazon.com/wafv2/

  2. 在导航窗格中,选择 应用程序集成

  3. 为应用程序集成启用的 Web ACL 窗格中,选择要用于 API 密钥的区域。您也可以在验证码集成选项卡API 密钥窗格中选择区域。

  4. 选择验证码集成选项卡。此选项卡提供可在 JavaScript 集成中使用的 CAPTCHA 集成标签以及 API 密钥列表。两者的作用域均限于所选区域。

  5. API 密钥窗格中,选择生成密钥。此时将显示生成密钥对话框。

  6. 输入要包含在密钥中的客户端域。您最多可以输入 5 个。完成后,选择生成密钥。界面返回到验证码集成选项卡,其中列出了您的新密钥。

    API 密钥一经创建,即不可变。如果您需要更改密钥,请生成一个新密钥并改用该密钥。

  7. (可选)复制新生成的密钥以用于集成。

您也可以使用 REST API 或特定语言的 Amazon 软件开发工具包来完成这项工作。REST API 调用是 createApiKey 和 listapiK eys。

删除 API 密钥

要删除 API 密钥,必须使用 REST API 或特定语言的 Amazon 软件开发工具包。REST API 调用是 deleteaPiKey。您无法使用控制台删除密钥。

删除密钥后,最长可能需要 24 小时 Amazon WAF 才能禁止在所有地区使用该密钥。