Autenticação
Toda requisição exige o header x-api-key com a chave de API.
x-api-key: <sua-chave>
Como funciona (dupla validação)
- API Gateway valida o
x-api-keycontra a chave do usage plan. Se faltar ou estiver errada, devolve403 Forbiddenantes de chegar na Lambda. - Handler revalida o mesmo segredo (lido do AWS Secrets Manager) com
comparação de tempo constante. Se não bater, devolve
401{"error":"nao autorizado"}.
É o mesmo segredo nos dois lados (defense in depth). Não há SigV4 — só o header.
Como obter a chave
A chave é gerada pelo Terraform e guardada no Secrets Manager. Recupere com:
cd athena-query-lambda/terraform
terraform output -raw api_key
:::warning Nunca versione a chave
Não comite a chave nem cole em tickets/chats. No Rails ela fica em
ATHENA_LAMBDA_API_KEY (credentials/ENV). Esta documentação nunca distribui
a chave — peça ao time de infraestrutura.
:::
Rotação
A mesma random_password é usada no API Gateway e no Secrets Manager. Ao
rotacionar, troque nos dois (re-aplicar o Terraform faz isso) e atualize o
consumidor.
Exemplo
curl -s 'https://mhysmr3rl9.execute-api.us-east-1.amazonaws.com/prod/?query=csps&inicio=2026-06-01&fim=2026-06-17' \
-H 'x-api-key: SUA_CHAVE_AQUI'