管理 JS CAPTCHA API 的 API 密钥 - AWS WAFAWS Firewall Manager、和 AWS Shield Advanced

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

管理 JS CAPTCHA API 的 API 密钥

本节提供了生成和删除 API 密钥的说明。

要使用 JavaScript API 将 AWS WAF 验证码集成到客户端应用程序中,您需要 JavaScript API 集成标记和加密的 API 密钥,以便在客户端域中运行验证码拼图。

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

API 密钥要求

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

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

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

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

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

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

如何为 API 密钥选择区域

AWS WAF 可以在推出 AWS WAF 的任何区域生成 CAPTCHA API 密钥。

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

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

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

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

  1. 登录 AWS Management Console,然后打开 AWS WAF 控制台,网址为:https://console.aws.amazon.com/wafv2/

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

  3. 为应用程序集成启用的 Web ACL 窗格中,选择要供 API 密钥使用的区域。您还可以在 CAPTCHA 集成选项卡的 API 密钥窗格中选择区域。

  4. 选择验证码集成选项卡。此选项卡提供验证码 JavaScript 集成标签(您可在集成中使用)和 API 密钥列表。两者的范围均限于所选区域。

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

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

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

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

您还可以使用 REST API 或一个针对特定语言的 AWS SDK 来完成这项工作。REST API 调用为 CreateAPIKeyListAPIKeys

删除 API 键

要删除 API 密钥,必须使用 REST API 或一个针对特定语言的 AWS SDK。REST API 调用为 DeleteAPIKey。您不能使用控制台删除键。

删除密钥后,AWS WAF 最多可能需要 24 小时才会禁止在所有区域使用该密钥。