

**引入全新的主机体验 Amazon WAF**

现在，您可以使用更新的体验访问控制台中任意位置的 Amazon WAF 功能。有关更多详细信息，请参阅[使用控制台](https://docs.amazonaws.cn/waf/latest/developerguide/working-with-console.html)。

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

# 管理 JS CAPTCHA API 的 API 密钥
<a name="waf-js-captcha-api-key"></a>

本节提供了生成和删除 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` 是顶点域。任一密钥都与令牌域相匹配。

  有关设置令牌域列表的信息，请参阅 [提供用于令牌的域名](waf-js-challenge-api-set-token-domain.md)。
+ 否则，当前域名必须包含在 API 密钥中。当前域名是您可以在浏览器地址栏中看到的域名。

根据受保护的主机域和为 Web ACL 配置的令牌域列表，您使用的域必须是可以接受的域。 Amazon WAF 有关更多信息，请参阅 [Amazon WAF 保护包 (Web ACL) 令牌域列表配置](waf-tokens-domains.md#waf-tokens-domain-lists)。

**如何为 API 密钥选择区域**  
Amazon WAF 可以在任何可用的区域生成 CAPTCHA API 密钥。 Amazon WAF 

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

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

**为您的客户端域生成 API 密钥**  
通过控制台获取集成 URL 并生成和检索 API 密钥。

1. 登录 Amazon Web Services 管理控制台 并在 [https://console.aws.amazon.com/wafv2/homev](https://console.amazonaws.cn/wafv2/homev2) 2 上打开主 Amazon WAF 机。

1. 在导航窗格中，选择 **应用程序集成**。

1. 在**为应用程序集成启用的保护包 (Web ACLs)** 窗格中，选择要用于 API 密钥的区域。您还可以在 **CAPTCHA 集成**选项卡的 **API 密钥**窗格中选择区域。

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

1. 在 **API 密钥**窗格中，选择**生成密钥**。此时将显示生成密钥对话框。

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

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

1. （可选）复制新生成的密钥以用于集成。

您也可以使用 REST APIs 或特定语言之一来完成这项 Amazon SDKs 工作。REST API 调用是 “[创建” APIKey 和 “](https://docs.amazonaws.cn/waf/latest/APIReference/API_CreateAPIKey.html)[列出” APIKeys](https://docs.amazonaws.cn/waf/latest/APIReference/API_ListAPIKeys.html)。

**删除 API 密钥**  
要删除 API 密钥，必须使用 REST API 或特定语言之一 Amazon SDKs。REST API 调用为[删除APIKey](https://docs.amazonaws.cn/waf/latest/APIReference/API_DeleteAPIKey.html)。您不能使用控制台删除键。

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