Escolher de uma chave de API - Amazon API Gateway

Escolher de uma chave de API

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.

nota

Para ver as práticas recomendadas a serem consideradas, consulte Práticas Recomendadas para chaves de API e planos de uso.

Como escolher uma origem de chave de API para uma API usando o console do API Gateway
  1. Inicie uma sessão no console do API Gateway.

  2. Escolha uma API existente ou crie uma nova.

  3. No painel de navegação principal, selecione Configurações da API.

  4. Na seção Detalhes da API, escolha Editar.

  5. Em Origem de chave de API, selecione Header ou Authorizer na lista suspensa.

  6. Escolha Salvar alterações.

Para selecionar uma origem de chave de API para uma API usando a AWS CLI, chame o comando update-rest-api da seguinte forma:

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 da CLI.

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.

Dependendo do tipo escolhido de origem da chave de API, use um dos seguintes procedimentos para usar chaves de API originadas de cabeçalho ou chaves de API retornadas por um autorizador em um método de invocação:

Para usar chaves de API originadas de cabeçalho:
  1. Crie uma API com os métodos de API desejados e implante a API em um estágio.

  2. Crie um novo plano de uso ou escolha um novo. Adicione o estágio de API implantado ao plano de uso. Anexe uma chave de API ao plano de uso ou escolha uma chave de API existente no plano. Observe o valor da chave de API escolhido.

  3. Configure métodos de API para exigir uma chave de API.

  4. Reimplante a API para o mesmo estágio. Se você implantar a API para um novo estágio, certifique-se de atualizar o plano de uso a fim de anexar o novo estágio de API.

Agora o cliente pode chamar métodos de API enquanto fornece o cabeçalho x-api-key com a chave de API escolhida como o valor do cabeçalho.

Para usar chaves de API originadas de um autorizador:
  1. Crie uma API com os métodos de API desejados e implante a API em um estágio.

  2. Crie um novo plano de uso ou escolha um novo. Adicione o estágio de API implantado ao plano de uso. Anexe uma chave de API ao plano de uso ou escolha uma chave de API existente no plano. Observe o valor da chave de API escolhido.

  3. Crie um autorizador do Lambda com base em token. Inclua usageIdentifierKey:{api-key} como uma propriedade em nível de raiz da resposta de autorização. Para encontrar instruções sobre como criar um autorizador baseado em token, consulte Exemplo de função do Lambda do autorizador TOKEN.

  4. Configure métodos de API para exigir uma chave de API e habilite o autorizador do Lambda nos métodos.

  5. Reimplante a API para o mesmo estágio. Se você implantar a API para um novo estágio, certifique-se de atualizar o plano de uso a fim de anexar o novo estágio de API.

Agora, o cliente pode chamar os métodos de API que exigem chave sem fornecer explicitamente qualquer chave de API. A chave de API retornada pelo autorizador é usada automaticamente.