Controla el API acceso con tu AWS SAM plantilla - 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.

Controla el API acceso con tu AWS SAM plantilla

Controlar el acceso a su API Gateway APIs ayuda a garantizar que su aplicación sin servidor sea segura y solo se pueda acceder a ella mediante la autorización que usted habilite. Puede habilitar la autorización en su AWS SAM plantilla para controlar quién puede acceder a su API puerta APIs de enlace.

AWS SAM admite varios mecanismos para controlar el acceso a su API puerta de enlaceAPIs. El conjunto de mecanismos admitidos varía entre los tipos de recursos AWS::Serverless::HttpApi y AWS::Serverless::Api.

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
IAMpermisos
Grupos de usuarios de Amazon Cognito ✓ *
APIclaves
Políticas de recursos
OAuth2.0/ autorizadores JWT

* Puede utilizar Amazon Cognito como emisor de JSON Web Token (JWT) con el AWS::Serverless::HttpApi tipo de recurso.

  • Autorizadores Lambda: un autorizador Lambda (anteriormente conocido como autorizador personalizado) es una función de Lambda que se proporciona para controlar el acceso a sus. API Cuando API se llama a usted, 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 de Lambda responde si la persona que llama está autorizada a realizar la operación solicitada.

    Tanto el tipo de recurso AWS::Serverless::HttpApi como el tipo de recurso AWS::Serverless::Api admiten autorizadores de Lambda.

    Para obtener más información sobre los autorizadores Lambda conAWS::Serverless::HttpApi, consulte Trabajar con AWS Lambda autorizadores HTTP APIs en la Guía para desarrolladores de Gateway. API Para obtener más información sobre los autorizadores Lambda conAWS::Serverless::Api, consulte Usar autorizadores APILambda de Gateway en la Guía para desarrolladores de Gateway. API

    Para ver ejemplos de autorizadores de Lambda para cualquier tipo de recurso, consulte Ejemplos de autorizadores Lambda para AWS SAM.

  • IAMpermisos: puede controlar quién puede invocar sus API permisos using ().AWS Identity and Access Management IAM Los usuarios que te llamen API deben estar autenticados con IAM credenciales. Las llamadas se API realizan correctamente solo si hay una IAM política asociada al IAM usuario que represente a la API persona que llama, un IAM grupo que contenga al usuario o un IAM rol que asuma el usuario.

    Solo el tipo AWS::Serverless::Api de recurso admite IAM permisos.

    Para obtener más información, consulte Controlar el acceso a un IAM usuario API con permisos en la Guía para desarrolladores de API Gateway. Para ver un ejemplo, consulte IAMejemplo de permiso para AWS SAM.

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

    El tipo de recurso AWS::Serverless::Api admite grupos de usuarios de Amazon Cognito. El tipo de AWS::Serverless::HttpApi recurso admite el uso de Amazon Cognito como emisor. JWT

    Para obtener más información, consulte Controlar el acceso a REST API grupos de usuarios de Amazon Cognito como autorizador en la Guía para desarrolladores de APIGateway. Para ver un ejemplo, consulte Ejemplo de grupo de usuarios de Amazon Cognito para AWS SAM.

  • APIclaves: las API claves son valores de cadena alfanuméricos que usted distribuye a los clientes desarrolladores de aplicaciones para permitir el acceso a las suyas. API

    Solo el tipo AWS::Serverless::Api de recurso admite API claves.

    Para obtener más información sobre API las claves, consulte Creación y uso de planes de uso con API claves en la Guía para desarrolladores de API Gateway. Para ver un ejemplo de API claves, consulteAPIejemplo clave de AWS SAM.

  • Políticas de recursos: las políticas de recursos son documentos de JSON política que puede adjuntar a un API GatewayAPI. Utilice las políticas de recursos para controlar si un director específico (normalmente un IAM usuario o un rol) puede invocar elAPI.

    Solo el tipo AWS::Serverless::Api de recurso admite las políticas de recursos como mecanismo para controlar el acceso a API GatewayAPIs.

    Para obtener más información sobre las políticas de recursos, consulte Controlar el acceso a y API con las políticas de recursos de API Gateway en la Guía para desarrolladores de API Gateway. Para ver ejemplos de políticas de recursos, consulte Ejemplo de política de recursos para AWS SAM.

  • OAuthJWTAutorizadores 2.0/: puede utilizarlos JWTs como parte de los marcos OpenID Connect (OIDC) y OAuth2.0 para controlar el acceso a sus. APIs APIGateway valida las API solicitudes JWTs que los clientes envían y permite o deniega las solicitudes en función de la validación del token y, opcionalmente, del alcance del token.

    Solo el tipo de AWS::Serverless::HttpApi recurso admite autorizadores OAuth JWT 2.0/.

    Para obtener más información, consulte Controlar el acceso HTTP APIs con JWT autorizadores en la Guía para desarrolladores de APIGateway. Para ver un ejemplo, consulte OAuthEjemplo de JWT autorizador 2.0/ para AWS SAM.

Elegir un mecanismo para controlar el acceso

El mecanismo que elija utilizar para controlar el acceso a su API puerta de enlace APIs depende de varios factores. Por ejemplo, si tiene un proyecto totalmente nuevo sin configurar la autorización ni el control de acceso, los grupos de usuarios de Amazon Cognito podrían ser su mejor opción. Esto se debe a que, al configurar grupos de usuarios, también configura automáticamente la autenticación y el control de acceso.

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

Cuando haya elegido el mecanismo que desea utilizar, consulte la sección correspondiente en Ejemplos la sección sobre cómo configurar la aplicación para que utilice ese mecanismo. AWS SAM

Personalizar respuestas de error

Puede usarlo AWS SAM para personalizar el contenido de algunas respuestas de error de API Gateway. Solo el tipo AWS::Serverless::Api de recurso admite respuestas personalizadas de API Gateway.

Para obtener más información sobre las respuestas de API Gateway, consulte las respuestas de API Gateway en Gateway en la Guía para desarrolladores de API Gateway. Para ver un ejemplo de respuestas personalizadas, consulte Ejemplo de respuesta personalizada para AWS SAM.

Ejemplos