Controlar el acceso a las API de API Gateway - AWS Serverless Application Model

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Controlar el acceso a las API de API Gateway

Para controlar quién puede acceder a las API de Amazon API Gateway, puede habilitar la autorización dentro de suAWS SAMPlantilla de plantilla.

AWS SAMadmite varios mecanismos para controlar el acceso a las API de API Gateway. El conjunto de mecanismos admitidos difiere entreAWS::Serverless::HttpApiyAWS::Serverless::ApiTipos de recursos de.

En la tabla siguiente se resumen los mecanismos que admite cada tipo de recurso.

Mecanismos para controlar el acceso AWS::Serverless::HttpApi AWS::Serverless::Api
Autorizadores de Lambda
Permisos de IAM
Grupos de usuarios de Amazon Cognito ✓ *
Claves de API
Políticas de recursos
Autorizadores de OAuth 2.0/JWT

* Puede utilizar Amazon Cognito como emisor de JSON Web Token (JWT) con laAWS::Serverless::HttpApiTipo de recurso de .

  • Autorizadores de Lambda— Un autorizador Lambda (anteriormente conocido comoAutorizador personalizado) es una función de Lambda que se proporciona para controlar el acceso a su API. Cuando se llama a su API, esta función Lambda se invoca con un contexto de solicitud o un token de autorización que proporciona la aplicación cliente. La función Lambda responde si la persona que llama está autorizada para realizar la operación solicitada.

    AmbosAWS::Serverless::HttpApiyAWS::Serverless::ApiLos tipos de recursos admiten autorizadores de Lambda.

    Para obtener más información sobre los autorizadores de Lambda conAWS::Serverless::HttpApi, consulteUso deAWS Lambdaautorizadores de para API HTTPen laGuía para desarrolladores API Gateway Gate. Para obtener más información sobre los autorizadores de Lambda conAWS::Serverless::Api, consulteUso de autorizadores Lambda de API Gatewayen laGuía para desarrolladores API Gateway Gate.

    Para ver ejemplos de autorizadores Lambda para cualquiera de los tipos de recursos, consulteExamples autorizadores de Lambda.

  • Permisos de IAM— Puede controlar quién puede invocar su API medianteAWS Identity and Access Managementpermisos (IAM). Los usuarios que llaman a la API deben estar autenticados con credenciales de IAM. Las llamadas a la API solo se realizan correctamente si hay una política de IAM asociada al usuario de IAM que representa a la persona que llama a la API, un grupo de IAM que contiene al usuario o un rol de IAM que asume el usuario.

    Solo elAWS::Serverless::Apiel tipo de recurso admite los permisos de IAM.

    Para obtener más información, consulteControl del acceso a una API con permisos de IAMen laGuía para desarrolladores API Gateway Gate. Para ver un ejemplo, consulte Ejemplo de permisos de IAM.

  • Grupos de usuarios de Amazon Cognito— Los grupos de usuarios de Amazon Cognito son directorios de usuarios de Amazon Cognito. Un cliente de la API debe iniciar sesión en primer lugar a un usuario en el grupo de usuarios y obtener un token de identidad o acceso para el usuario. Luego, el cliente llama a tu API con uno de los tokens devueltos. La llamada a la API se realiza correctamente solo si el token requerido es válido.

    LaAWS::Serverless::Apies compatible con grupos de usuarios de Amazon Cognito. LaAWS::Serverless::HttpApiadmite el uso de Amazon Cognito como emisor de JWT.

    Para obtener más información, consulte Control del acceso a una API de REST con grupos de usuarios de Amazon Cognito como autorizador en la Guía para desarrolladores de API Gateway. Para ver un ejemplo, consulte Ejemplo de grupo de usuarios de Amazon Cognito.

  • Claves de API— Las claves de API son valores de cadenas alfanuméricas que distribuye a los clientes desarrolladores de aplicaciones para concederles acceso a su API.

    Solo elAWS::Serverless::Apiel tipo de recurso admite claves API.

    Para obtener más información sobre las claves de API, consulteCreación y uso de planes de uso con claves de APIen laGuía para desarrolladores API Gateway Gate. Para ver un ejemplo de claves API, consulteEjemplo de clave de API.

  • Políticas de recursos— Las políticas de recursos de son documentos de política JSON que puede asociar a una API de API Gateway. Utilice políticas de recursos para controlar si una entidad principal especificada (por lo general, un usuario o un rol de IAM) puede invocar la API.

    Solo elAWS::Serverless::Apiel tipo de recurso admite políticas de recursos como mecanismo para controlar el acceso a las API de API Gateway.

    Para obtener más información sobre las políticas de recursos, consulteControl del acceso a una API con políticas de recursos de API Gatewayen laGuía para desarrolladores API Gateway Gate. Para obtener un ejemplo de políticas de recursos, consulteEjemplo de política de recursos.

  • Autorizadores de OAuth 2.0/JWT— Puede utilizar JWT como parte deOpenID Connect (OIDC)yOAuth 2.0marcos para controlar el acceso a las API. API Gateway valida los JWT que los clientes envían con solicitudes de la API y permite o deniega las solicitudes en función de la validación del token y, opcionalmente, de los ámbitos del token.

    Solo elAWS::Serverless::HttpApiel tipo de recurso admite autorizadores OAuth 2.0/JWT.

    Para obtener más información, consulte Control del acceso a las API HTTP con autorizadores de JWT en la Guía para desarrolladores de API Gateway. Para ver un ejemplo, consulte Ejemplo de autorizador de OAuth 2.0/JWT.

Elegir un mecanismo para controlar el acceso

El mecanismo que elige utilizar para controlar el acceso a las API de API Gateway depende de algunos factores. Por ejemplo, si tiene un proyecto de campo verde sin autorización ni control de acceso configurado, los grupos de usuarios de Amazon Cognito podrían ser su mejor opción. Esto se debe a que cuando configura grupos de usuarios, también configura automáticamente la autenticación y el control de acceso.

Sin embargo, si tu aplicación ya tiene configurada la autenticación, usar autorizadores Lambda podría ser tu mejor opción. Esto se debe a que puede llamar al servicio de autenticación existente y devolver un documento de política basado en la respuesta. Además, si tu aplicación requiere autenticación personalizada o lógica de control de acceso que los grupos de usuarios no admiten, los autorizadores de Lambda podrían ser tu mejor opción.

Cuando haya elegido qué mecanismo utilizar, consulte la sección correspondiente enEjemplossobre el uso deAWS SAMpara configurar la aplicación para que utilice ese mecanismo.

Personalización de las respuestas de error

Puede usarAWS SAMpara personalizar el contenido de algunas respuestas de error de API Gateway. Solo elAWS::Serverless::Apiel tipo de recurso admite respuestas personalizadas de API Gateway.

Para obtener más información sobre las respuestas de API Gateway, consulteRespuestas de gateway en API Gatewayen laGuía API Gateway. Para obtener un ejemplo de respuestas personalizadas, consulteEjemplo de respuesta personalizada.

Ejemplos