Modelos de diseño para los permisos verificados de Amazon - AWS Guía prescriptiva

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.

Modelos de diseño para los permisos verificados de Amazon

Uso de un PDP centralizado con PEP en las API

El modelo de punto de decisión de políticas (PDP) centralizado con puntos de aplicación de políticas (PEP) en las API sigue las mejores prácticas del sector para crear un sistema eficaz y de fácil mantenimiento para el control del acceso y la autorización de las API. Este enfoque se basa en varios principios clave:

  • La autorización y el control de acceso a la API se aplican en varios puntos de la aplicación.

  • La lógica de autorización es independiente de la aplicación.

  • Las decisiones de control de acceso están centralizadas.

Uso de un PDP centralizado con PEP en las API

Flujo de la aplicación (ilustrado con rótulos numerados en azul en el diagrama):

  1. Un usuario autenticado con un token web JSON (JWT) genera una solicitud HTTP a Amazon. CloudFront

  2. CloudFront reenvía la solicitud a Amazon API Gateway, que está configurado como CloudFront origen.

  3. Se llama a un autorizador personalizado de API Gateway para verificar el JWT.

  4. Los microservicios responden a la solicitud.

Flujo de autorización y control de acceso a la API (ilustrado con rótulos numerados en rojo en el diagrama):

  1. El PEP llama al servicio de autorización y pasa los datos de la solicitud, incluidos los JWT.

  2. El servicio de autorización (PDP), en este caso Verified Permissions, utiliza los datos de la solicitud como entrada de consulta y los evalúa en función de las políticas pertinentes especificadas en la consulta.

  3. La decisión de autorización se devuelve al PEP y se evalúa.

Este modelo utiliza un PDP centralizado para tomar decisiones de autorización. Los PEP se implementan en diferentes puntos para realizar solicitudes de autorización al PDP. El siguiente diagrama muestra cómo se puede implementar este modelo en una hipotética aplicación SaaS multiusuario.

En esta arquitectura, los PEP solicitan decisiones de autorización en los puntos de enlace del servicio para Amazon CloudFront y Amazon API Gateway y para cada microservicio. La decisión de autorización la toma el servicio de autorización, Amazon Verified Permissions (el PDP). Dado que Verified Permissions es un servicio totalmente gestionado, no es necesario que gestione la infraestructura subyacente. Puede interactuar con los permisos verificados mediante una API RESTful o el AWS SDK.

También puede utilizar esta arquitectura con motores de políticas personalizados. Sin embargo, cualquier ventaja que se obtenga con los permisos verificados debe sustituirse por la lógica proporcionada por el motor de políticas personalizado.

Un PDP centralizado con PEP en las API ofrece una opción sencilla para crear un sistema de autorización sólido para las API. Esto simplifica el proceso de autorización y también proporciona una interfaz repetible para tomar decisiones de autorización para las API easy-to-use, los microservicios, las capas de backend para frontend (BFF) u otros componentes de la aplicación.

Uso del SDK de Cedar

Amazon Verified Permissions utiliza el lenguaje Cedar para gestionar los permisos detallados en sus aplicaciones personalizadas. Con los permisos verificados, puede almacenar las políticas de Cedar en una ubicación central, aprovechar la baja latencia con un procesamiento de milisegundos y auditar los permisos en diferentes aplicaciones. Si lo desea, también puede integrar el SDK de Cedar directamente en su aplicación para tomar decisiones de autorización sin utilizar permisos verificados. Esta opción requiere el desarrollo adicional de aplicaciones personalizadas para administrar y almacenar las políticas para su caso de uso. Sin embargo, puede ser una alternativa viable, especialmente en los casos en que el acceso a los permisos verificados es intermitente o no es posible debido a una conectividad a Internet incoherente.