Utilice Amazon Verified Permissions para controlar el acceso a su API de API Gateway. Cuando utiliza API Gateway con Verified Permissions, Verified Permissions crea un autorizador de Lambda que utiliza decisiones de autorización detalladas para controlar el acceso a la API. Verified Permissions autoriza a los intermediarios según el esquema y las políticas del almacenamiento de políticas mediante el lenguaje de políticas de Cedar para definir permisos detallados para los usuarios de las aplicaciones. Para obtener más información, consulte Create a policy store with a connected API and identity provider en la Guía del usuario de Amazon Verified Permissions.
Verified Permissions admite grupos de usuarios de Amazon Cognito o proveedores de identidad OpenID Connect (OIDC) como orígenes de identidad. Verified Permissions presupone que la entidad principal se ha identificado y autenticado previamente. Verified Permissions solo es compatible con las API de REST regionales y optimizadas para la periferia.
Creación de un autorizador de Lambda mediante Verified Permissions
Verified Permissions crea un autorizador de Lambda para determinar si una entidad principal está autorizada a realizar una acción en la API. Cree la política de Cedar que Verified Permissions utiliza para realizar sus tareas de autorización.
En el siguiente ejemplo se muestra una política de Cedar que permite el acceso para invocar una API basada en el grupo de usuarios de Amazon Cognito, us-east-1_ABC1234
para el grupo developer
en el recurso GET /users
de una API. Verified Permissions determina la pertenencia al grupo mediante el análisis del token portador para la identidad del intermediario.
permit( principal in MyAPI::UserGroup::"us-east-1_ABC1234|developer", action in [ MyAPI::Action::"get /users" ], resource );
De forma opcional, Verified Permissions puede asociar el autorizador a los métodos de la API. En las etapas de producción de la API, le recomendamos que no permita que Verified Permissions asocie el autorizador por usted.
En la siguiente lista se muestra cómo configurar Verified Permissions para asociar o no el autorizador de Lambda a la solicitud de los métodos de la API.
- Asociación del autorizador por usted (AWS Management Console)
-
Cuando elija Crear almacén de políticas en la consola de Verified Permissions, en la página Implementar integración de aplicaciones, elija Ahora.
- Sin asociación del autorizador por usted (AWS Management Console)
-
Cuando elija Crear almacén de políticas en la consola de Verified Permissions, en la página Implementar integración de aplicaciones, elija Más tarde.
Verified Permissions sigue creando un autorizador de Lambda por usted. El autorizador de Lambda comienza por
AVPAuthorizerLambda-
. Para obtener más instrucciones sobre cómo adjuntar el autorizador en un método, consulte Configuración de un método para utilizar un autorizador de Lambda (consola). - Asociación del autorizador por usted (AWS CloudFormation)
-
En la plantilla AWS CloudFormation generada por Verified Permissions, en la sección
Conditions
, establezca"Ref": "shouldAttachAuthorizer"
atrue
. - Sin asociación del autorizador por usted (AWS CloudFormation)
-
En la plantilla AWS CloudFormation generada por Verified Permissions, en la sección
Conditions
, establezca"Ref": "shouldAttachAuthorizer"
afalse
.Verified Permissions sigue creando un autorizador de Lambda por usted. El autorizador de Lambda comienza por
AVPAuthorizerLambda-
. Para obtener más instrucciones sobre cómo adjuntar el autorizador en un método, consulte Configuración de un método para utilizar un autorizador de Lambda (AWS CLI).
Llamada a un autorizador de Lambda mediante Verified Permissions
Puede llamar a al autorizador de Lambda si proporciona una identidad o un token de acceso en el encabezado Authorization
. Para obtener más información, consulte Llamada a una API con un autorizador de Lambda de API Gateway.
API Gateway almacena en caché la política que devuelve el autorizador de Lambda durante 120 segundos. Puede modificar el TTL en la consola de API Gateway o mediante la AWS CLI.