Escolher uma origem de chaves de API no API Gateway
Quando você associa um plano de uso a uma API e habilita chaves de API em métodos de API, toda solicitação recebida para a API deve conter uma chave de API. O API Gateway lê a chave e a compara com as chaves no plano de uso. Se houver correspondência, o API Gateway fará o controle de utilização das solicitações de acordo com o limite de solicitação e a cota do plano. Caso contrário, ele lançará uma exceção de InvalidKeyParameter
. Como resultado, o autor da chamada recebe uma resposta 403 Forbidden
.
A API do API Gateway pode receber chaves de API de duas origens:
HEADER
-
Distribua chaves de API aos seus clientes e exija que eles repassem a chave de API como o cabeçalho X-API-Key
de cada solicitação de entrada.
AUTHORIZER
-
Um autorizador do Lambda pode retornar a chave de API como parte da resposta de autorização. Para obter mais informações sobre a resposta de autorização, consulte Saída de um autorizador do Lambda para o API Gateway.
O procedimento a seguir mostra como escolher uma origem de chave de API.
- AWS Management Console
Como escolher uma origem de chave de API para uma API
-
Inicie uma sessão no console do API Gateway.
-
Escolha uma API existente ou crie uma nova.
-
No painel de navegação principal, selecione Configurações da API.
-
Na seção Detalhes da API, escolha Editar.
-
Em Origem de chave de API, selecione Header
ou Authorizer
na lista suspensa.
-
Escolha Salvar alterações.
- AWS CLI
O comando update-rest-api indicado abaixo atualiza uma API para definir a origem da chave de API como AUTHORIZER
:
aws apigateway update-rest-api --rest-api-id 1234123412 --patch-operations op=replace,path=/apiKeySource,value=AUTHORIZER
Para que o cliente envie uma chave de API, defina o value
como HEADER
no comando anterior.
- REST API
Para escolher uma origem de chave de API para uma API usando a API REST do API Gateway, chame restapi:update
da seguinte forma:
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"
}
]
}
Para que um autorizador retorne uma chave de API, defina value
para AUTHORIZER
na entrada patchOperations
anterior.