A segurança é uma parte crucial de qualquer aplicação, e quando falamos sobre APIs, não é diferente. A autorização em API Gateway é uma parte vital para garantir que apenas os usuários autorizados tenham acesso aos recursos da API. Neste capítulo, vamos explorar em profundidade a segurança no API Gateway, com foco na autorização.
O que é Autorização em API Gateway?
A autorização em API Gateway é o processo de determinar o que um usuário autenticado pode fazer. Por exemplo, um usuário autenticado pode ter permissão para criar, ler, atualizar e excluir (CRUD) recursos em uma API, enquanto outro usuário pode ter apenas permissões de leitura.
O API Gateway da AWS oferece várias opções para controle de acesso, incluindo AWS Identity and Access Management (IAM), Lambda authorizers (anteriormente conhecidos como custom authorizers), e Amazon Cognito User Pools.
Autorização com AWS IAM
AWS IAM é um serviço que ajuda a controlar o acesso aos recursos da AWS. Com IAM, você pode criar e gerenciar usuários e grupos da AWS e usar permissões para permitir ou negar o acesso aos recursos da AWS.
Para usar IAM com API Gateway, você primeiro cria uma política IAM que concede permissões para invocar as operações da API. Em seguida, você anexa essa política a um usuário, grupo ou função da IAM. Quando um cliente faz uma chamada de API, o API Gateway verifica se a chamada tem as credenciais necessárias e se a política IAM associada permite a chamada.
Autorização com Lambda Authorizers
Lambda authorizers são funções Lambda que você cria para controlar o acesso a suas APIs. Quando um cliente faz uma solicitação a uma API com um Lambda authorizer, o Lambda authorizer executa a lógica de autorização que você definiu para determinar se o chamador está autorizado a invocar a API.
Os Lambda authorizers retornam políticas de autorização que são usadas pelo API Gateway para permitir ou negar o acesso à API. Você pode criar Lambda authorizers que autorizam o acesso com base em tokens de identidade (por exemplo, um token JWT emitido por um provedor de identidade), ou você pode criar Lambda authorizers que autorizam o acesso com base em solicitações de autorização personalizadas.
Autorização com Amazon Cognito User Pools
Amazon Cognito User Pools é um serviço que ajuda você a gerenciar usuários e suas autenticações. Com User Pools, você pode criar um diretório de usuários para sua aplicação, permitir que os usuários se inscrevam e entrem, e recuperar tokens para os usuários.
Para usar User Pools com API Gateway, você primeiro cria um User Pool e configura o API Gateway para usar o User Pool como um autorizador. Quando um cliente faz uma chamada de API, o API Gateway verifica se o token do usuário é válido e se o usuário está autorizado a fazer a chamada.
Conclusão
Em resumo, a autorização em API Gateway é uma parte essencial da segurança da API. Seja usando IAM, Lambda authorizers, ou User Pools, é importante que você configure corretamente a autorização para proteger seus recursos da API. Lembre-se de que a segurança é um aspecto contínuo do desenvolvimento de software e deve ser considerada em todas as etapas do ciclo de vida do desenvolvimento.