Quero ativar a autenticação do AWS Identity and Access Management (AWS IAM) para acessar minha API REST do Amazon API Gateway (API Gateway).
Breve descrição
Ative a autenticação do IAM para um método de API no console do API Gateway. Em seguida, use políticas do IAM e políticas de recursos para designar permissões para os usuários da sua API.
Para obter mais informações sobre os diferentes recursos de segurança disponíveis para o API Gateway, consulte Controlling and managing access to a REST API in API Gateway.
Resolução
Ative a autenticação do IAM para sua API REST
- No console do API Gateway, escolha o nome da sua API.
- No painel Recursos, escolha um método (como GET ou POST) para o qual você deseja ativar a autenticação do IAM.
- No painel Execução de método, escolha Solicitação de método.
- Em Configurações, em Autorização, escolha o ícone de lápis (Editar). Em seguida, escolha AWS_IAM na lista suspensa e o ícone de marca de seleção (Atualizar).
- (Opcional) Repita as etapas de 2 a 4 para cada método de API para o qual você deseja ativar a autenticação do IAM.
- Implante sua API para que as alterações entrem em vigor.
- No painel Editor de estágio, copie o URL da invocação. Você usará o URL da invocação posteriormente para testes.
Para obter mais informações, consulte Configurar um método usando o console do API Gateway. Veja também Obtain an API's invoke URL in the API Gateway console.
Conceder autorização de API a um grupo de usuários do IAM
- Determine as permissões que você deseja que seus usuários da API tenham. Para obter mais informações, consulte Control access to an API with IAM permissions.
- Crie uma política do IAM que inclua as permissões necessárias. Para obter exemplos e orientações de formatação, consulte o seguinte:
Controle o acesso para invocar uma API
Exemplos de políticas do IAM para permissões de execução de API
Exemplos de políticas baseadas em identidade do Amazon API Gateway
Observação: para concluir as instruções de teste no final deste artigo, você deve dar permissões de invocação.
- Anexe sua política do IAM a um grupo do IAM fazendo o seguinte:
Anexe a política a um grupo do IAM
-or-
Anexe a política ao criar um novo grupo do IAM.
Para obter mais informações, consulte Create and attach a policy to an IAM User.
Observação: é uma prática recomendada conceder acesso no nível do grupo do IAM.
(Opcional) Configurar uma política de recursos do API Gateway
Também é possível usar as políticas de recursos do API Gateway (permissões baseadas em recursos) junto com as políticas do IAM (permissões baseadas em identidade) para gerenciar o acesso à sua API. Para obter mais informações, consulte IAM authentication and resource policy e Identity-based policies and resource-based policies.
Importante: se você negar acesso à sua API com um tipo de política do IAM e permitir o acesso com outro tipo de política, o acesso será negado. Para obter mais informações, consulte as Policy evaluation outcome tables.
Enviar uma solicitação para testar as configurações de autenticação
Use o aplicativo Postman para enviar uma solicitação ao seu recurso de API usando o método para o qual você ativou a autenticação do IAM.
Observação: para autenticar manualmente as solicitações enviadas ao API Gateway usando outra ferramenta ou ambiente, use o processo de assinatura Signature versão 4. Para obter mais informações, consulte Solicitações de assinatura.
- No Postman, na guia Autorização, faça o seguinte:
Em Tipo, escolha **AWS Signature.
**Em AccessKey e SecretKey, insira o ID da chave de acesso do IAM e a chave de acesso secreta de um usuário do IAM. O usuário do IAM deve estar no grupo do IAM que tem acesso à sua API.
- No campo Inserir URL da solicitação, cole o URL de invocação da sua API. Se você ativou a autenticação do IAM em um método para um recurso específico da API, anexe o nome do recurso ao final da URL de invocação.
Observação: o URL completo da solicitação com o nome do recurso tem a seguinte aparência: https://restApiId.execute-api.region.amazonaws.com/stageName/resourceName
Uma solicitação autenticada retorna um código de resposta de 200 OK. Uma solicitação não autorizada retorna a mensagem Missing Authentication Token e um código de resposta 403 Forbidden.
Informações relacionadas
How API Gateway resource policies affect authorization workflow