Amazon Verified Permissions

Servicio gestionado que externaliza la lógica de autorización de aplicaciones usando el lenguaje de políticas Cedar, habilitando control de acceso granular

Descripción general

Amazon Verified Permissions es un servicio de autorización gestionado que permite externalizar la lógica de control de acceso de las aplicaciones usando el lenguaje de políticas Cedar. En lugar de incrustar decisiones de autorización en el código de la aplicación, se definen políticas declarativamente en Cedar y se llama a la API de Verified Permissions para tomar decisiones de autorización. Esta separación de responsabilidades simplifica la gestión de políticas, habilita auditoría centralizada y soporta modelos de autorización complejos incluyendo RBAC, ABAC y control de acceso basado en relaciones.

Lenguaje de políticas Cedar y diseño de esquemas

Cedar es un lenguaje de políticas diseñado específicamente para autorización que es legible por humanos y analizable por máquinas. Las políticas consisten en declaraciones permit y forbid que referencian principals (usuarios, roles), actions (operaciones API) y resources (entidades de la aplicación). El esquema de políticas define los tipos de entidad, sus atributos y las relaciones válidas en el modelo de autorización de la aplicación. Por ejemplo, un sistema de gestión documental podría definir tipos de entidad User, Group, Document y Folder con relaciones de propiedad y membresía. El sistema de tipos de Cedar detecta errores de política en tiempo de autoría en lugar de en tiempo de ejecución, y sus capacidades de verificación formal pueden demostrar propiedades como 'ninguna política otorga acceso de administrador a usuarios externos'. Las plantillas de políticas con marcadores de posición permiten crear patrones de política reutilizables que se instancian para principals o recursos específicos.

Integración con Cognito y diseño multi-tenant

Verified Permissions se integra nativamente con Amazon Cognito, mapeando tokens de user pool de Cognito directamente a principals de Cedar. Cuando un usuario se autentica a través de Cognito, los atributos de su token (grupos, claims personalizados) están automáticamente disponibles como atributos del principal en las decisiones de autorización. Para aplicaciones SaaS multi-tenant, el ID de tenant del token de Cognito se convierte en un atributo clave en las políticas, asegurando que los usuarios solo puedan acceder a recursos dentro de su tenant. Los almacenes de políticas pueden compartirse entre tenants con políticas con alcance de tenant, o aislarse por tenant para separación estricta. La API de autorización acepta el token de Cognito directamente, extrayendo claims relevantes sin que el código de la aplicación necesite parsear tokens. La autorización por lotes permite verificar múltiples permisos en una sola llamada API, reduciendo la latencia para páginas que muestran muchos recursos con diferentes niveles de acceso.

Rendimiento y patrones de diseño operacional

Verified Permissions está diseñado para decisiones de autorización de baja latencia, respondiendo típicamente en milisegundos de un solo dígito. Para aplicaciones que requieren decisiones sub-milisegundo, un patrón de caché local almacena resultados de autorización recientes con TTLs cortos. La API IsAuthorized evalúa políticas contra el contexto proporcionado (principal, acción, recurso y contexto adicional) y devuelve Allow o Deny. Para modelos de autorización complejos, la API IsAuthorizedWithToken acepta tokens de identidad directamente. Las mejores prácticas operacionales incluyen versionado de almacenes de políticas para rollback seguro, uso del modo de prueba para validar cambios de políticas contra solicitudes de autorización grabadas antes del despliegue en producción, y monitoreo de logs de decisiones en CloudTrail para auditoría de seguridad. La analítica de políticas identifica políticas no utilizadas, políticas excesivamente permisivas y conflictos entre declaraciones permit y forbid, soportando higiene continua de políticas.

共有するXB!