As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Controle o acesso à API com seu AWS SAM modelo
O controle do acesso ao seu API Gateway APIs ajuda a garantir que seu aplicativo sem servidor esteja seguro e só possa ser acessado por meio da autorização que você habilita. Você pode ativar a autorização em seu AWS SAM modelo para controlar quem pode acessar seu API Gateway APIs.
AWS SAM suporta vários mecanismos para controlar o acesso ao seu API Gateway APIs. O conjunto de mecanismos suportados difere entre os tipos de recursos AWS::Serverless::HttpApi
e AWS::Serverless::Api
.
A tabela a seguir resume os mecanismos suportados por cada tipo de recurso.
Mecanismos para controlar o acesso | AWS::Serverless::HttpApi | AWS::Serverless::Api |
---|---|---|
Autorizadores do Lambda | ✓ | ✓ |
Permissões do IAM | ✓ | |
Grupos de usuários do Amazon Cognito | ✓ * | ✓ |
Chaves de API | ✓ | |
Políticas de recursos | ✓ | |
OAuth 2.0/Autorizadores JWT | ✓ |
* O Amazon Cognito pode ser usado como emissor do JSON Web Token (JWT) com o tipo de recurso AWS::Serverless::HttpApi
.
-
Autorizadores do Lambda – Um autorizador do Lambda (anteriormente conhecido como autorizador personalizado) é uma função do Lambda que você fornece para controlar o acesso à sua API. Quando sua API é chamada, essa função do Lambda é invocada com um contexto de solicitação ou um token de autorização fornecido pelo aplicativo cliente. A função do Lambda responde se o chamador está autorizado a realizar a operação solicitada.
Tanto o tipo
AWS::Serverless::HttpApi
quanto o tipoAWS::Serverless::Api
de recurso oferecem suporte aos autorizadores Lambda.Para obter mais informações sobre autorizadores Lambda com
AWS::Serverless::HttpApi
, consulte Como trabalhar com AWS Lambda autorizadores para HTTP no Guia do desenvolvedor do APIs API Gateway. Para obter mais informações sobre autorizadores do Lambda comAWS::Serverless::Api
, consulte Usar os autorizadores do Lambda do API Gateway no Guida do desenvolvedor do API Gateway.Para obter exemplos de autorizadores Lambda para qualquer tipo de recurso, consulte Exemplos de autorizadores Lambda para AWS SAM.
-
Permissões do IAM — Você pode controlar quem pode invocar sua API usando as permissões AWS Identity and Access Management (IAM). Os usuários que chamam sua API devem ser autenticados com as credenciais do IAM. As chamadas para sua API são bem-sucedidas somente se houver uma política do IAM anexada ao usuário do IAM que representa o chamador da API, um grupo do IAM que contém o usuário ou um perfil do IAM que o usuário assume.
Somente o tipo
AWS::Serverless::Api
de recurso é compatível com permissões do IAM.Para mais informações Controlar o acesso a uma API com permissões do IAM no Guia do desenvolvedor do API Gateway. Para obter um exemplo, consulte Exemplo de permissão do IAM para AWS SAM.
-
Grupos de usuários do Amazon Cognito — Os grupos de usuários do Amazon Cognito são diretórios de usuários no Amazon Cognito. Um cliente da sua API deve primeiro inscrever um usuário no grupo de usuários e obter uma identidade ou token de acesso para o usuário. Em seguida, o cliente chama sua API com um dos tokens retornados. A chamada da API será bem-sucedida somente se o token necessário for válido.
O tipo
AWS::Serverless::Api
de recurso é compatível com grupos de usuários do Amazon Cognito. O tipoAWS::Serverless::HttpApi
de recurso aceita o uso do Amazon Cognito como emissor do JWT.Para mais informações, consulte Controlar o acesso a uma API REST usando um grupo de usuários do Amazon Cognito como autorizador no Guia do desenvolvedor do API Gateway. Para obter um exemplo, consulte Exemplo de grupo de usuários do Amazon Cognito para AWS SAM.
-
Chaves de API – As chaves de API são valores de strings alfanuméricas distribuídas para clientes de desenvolvedores de aplicativos para conceder acesso à API.
Somente o tipo
AWS::Serverless::Api
de recurso é compatível com chaves de API.Para obter mais informações, consulte Criação e uso de planos de uso com chaves de API no Guia do desenvolvedor do API Gateway. Para ver um exemplo de chaves de API, consulte Exemplo de chave de API para AWS SAM.
-
Políticas de recurso — Políticas de recurso são documentos de políticas JSON que você pode anexar a uma API do API Gateway. Use políticas de recursos para controlar se um principal especificado (normalmente um usuário ou perfil do IAM) pode invocar a API.
Somente o tipo de
AWS::Serverless::Api
recurso suporta políticas de recursos como um mecanismo para controlar o acesso ao API Gateway APIs.Para obter mais informações sobre políticas de recursos, consulte Como controlar o acesso a uma API com as políticas de recursos do API Gateway no Guia do desenvolvedor do API Gateway. Para obter exemplos de políticas de recursos, consulte Exemplo de política de recursos para AWS SAM.
-
OAuth Autorizadores 2.0/JWT — Você pode usar JWTs como parte das estruturas OpenID Connect (OIDC)
e OAuth 2.0 para controlar o acesso ao seu. APIs O API Gateway valida o JWTs que os clientes enviam com solicitações de API e permite ou nega solicitações com base na validação do token e, opcionalmente, nos escopos do token. Somente o tipo de
AWS::Serverless::HttpApi
recurso é compatível com autorizadores OAuth 2.0/JWT.Para obter mais informações, consulte Controle do acesso ao HTTP APIs com autorizadores JWT no Guia do desenvolvedor do API Gateway. Para obter um exemplo, consulte OAuth Exemplo de autorizador 2.0/JWT para AWS SAM.
Escolher um mecanismo para controlar o acesso
O mecanismo que você escolhe usar para controlar o acesso ao seu API Gateway APIs depende de alguns fatores. Por exemplo, se você tem um projeto novo sem autorização ou controle de acesso configurado, os grupos de usuários do Amazon Cognito podem ser sua melhor opção. Isso ocorre porque, ao configurar grupos de usuários, você também configura automaticamente a autenticação e o controle de acesso.
No entanto, se seu aplicativo já tiver a autenticação configurada, usar autorizadores Lambda pode ser sua melhor opção. Isso ocorre porque você pode chamar seu serviço de autenticação existente e retornar um documento de política com base na resposta. Além disso, se seu aplicativo exigir autenticação personalizada ou lógica de controle de acesso que os grupos de usuários não suportam, os autorizadores Lambda podem ser sua melhor opção.
Depois de escolher qual mecanismo usar, consulte a seção correspondente Exemplos para saber como usar AWS SAM para configurar seu aplicativo para usar esse mecanismo.
Como personalizar respostas de erro
Você pode usar AWS SAM para personalizar o conteúdo de algumas respostas de erro do API Gateway. Somente o tipo AWS::Serverless::Api
de recurso é compatível com respostas personalizadas do API Gateway.
Para obter mais informações sobre as respostas do API Gateway, consulte Respostas do gateway no API Gateway no Guia do desenvolvedor do API Gateway. Para obter um exemplo de respostas personalizadas, consulte Exemplo de resposta personalizada para AWS SAM.