Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
在 API Gateway 中选择一个 API 密钥源
在将使用计划与 API 关联并在 API 方法上启用 API 密钥时,针对 API 的传入请求必须包含 API 密钥。API Gateway 将读取密钥并将它与使用计划中的密钥进行比较。如果匹配,API Gateway 将基于计划的请求限制和配额限制请求。否则,将引发 InvalidKeyParameter
异常。作为结果,调用方将收到 403 Forbidden
响应。
您的 API Gateway API 可从下面两个源之一接收 API 密钥:
HEADER
-
您将 API 密钥分发给您的客户,并要求其将 API 密钥作为每个传入请求的 X-API-Key
标头传递。
AUTHORIZER
-
您可以让 Lambda 授权方将 API 密钥作为授权响应的一部分返回。有关授权响应的更多信息,请参阅来自 API Gateway Lambda 授权方的输出。
以下过程显示如何为 API 选择 API 密钥源。
- Amazon Web Services Management Console
为 API 选择 API 密钥源
-
登录 API Gateway 控制台。
-
选择现有 API 或者创建新 API。
-
在主导航窗格中,选择 API 设置。
-
在 API 详细信息部分中,选择编辑。
-
在 API 密钥源下,从下拉列表中选择 Header
或 Authorizer
。
-
选择保存更改。
- Amazon CLI
使用以下 update-rest-api 命令更新 API,将 API 密钥源设置为 AUTHORIZER
:
aws apigateway update-rest-api --rest-api-id 1234123412 --patch-operations op=replace,path=/apiKeySource,value=AUTHORIZER
要让客户端提交 API 密钥,请在以上命令中将 value
设置为 HEADER
。
- REST API
要使用 API Gateway REST API 为 API 选择 API 密钥源,请按以下所示调用 restapi:update
:
PATCH /restapis/fugvjdxtri/ HTTP/1.1
Content-Type: application/json
Host: apigateway.us-east-1.amazonaws.com
X-Amz-Date: 20160603T205348Z
Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature={sig4_hash}
{
"patchOperations" : [
{
"op" : "replace",
"path" : "/apiKeySource",
"value" : "HEADER"
}
]
}
要让授权方返回 API 密钥,请在之前的 value
输入中将 AUTHORIZER
设置为 patchOperations
。