Recuperación de datos externos para un PDP en OPA - 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.

Recuperación de datos externos para un PDP en OPA

En el caso de la OPA, si todos los datos necesarios para una decisión de autorización se pueden proporcionar como entrada o como parte de un token web JSON (JWT) que se pasa como componente de la consulta, no se requiere ninguna configuración adicional. (Es relativamente sencillo pasar datos de contexto JWTs de SaaS a OPA como parte de la entrada de consultas). OPA puede aceptar entradas JSON arbitrarias en lo que se denomina el enfoque de entrada por sobrecarga. Si un PDP requiere más datos de los que se pueden incluir como entrada o como JWT, la OPA ofrece varias opciones para recuperar estos datos. Estas incluyen la agrupación, el envío de datos (replicación) y la recuperación dinámica de datos.

Empaquetado de OPA

La función de agrupación OPA admite el siguiente proceso de recuperación de datos externos:

  1. El punto de aplicación de políticas (PEP) solicita una decisión de autorización.

  2. La OPA descarga nuevos paquetes de políticas, incluidos los datos externos.

  3. El servicio de agrupamiento replica los datos de las fuentes de datos.

Al utilizar la función de agrupamiento, OPA descarga periódicamente los paquetes de políticas y datos de un servicio de paquetes centralizado. (La OPA no proporciona la implementación y configuración de un servicio combinado). Todas las políticas y los datos externos que se extraen del servicio combinado se almacenan en la memoria. Esta opción no funcionará si el tamaño de los datos externos es demasiado grande para almacenarlos en la memoria o si los datos cambian con demasiada frecuencia.

Para obtener más información sobre la función de agrupamiento, consulte la documentación de la OPA.

Replicación de OPA (envío de datos)

El enfoque de replicación de la OPA admite el siguiente proceso de recuperación de datos externos:

  1. El PEP solicita una decisión de autorización.

  2. El replicador de datos envía los datos a la OPA.

  3. El replicador de datos replica los datos de las fuentes de datos.

En esta alternativa al enfoque de agrupamiento, los datos se envían a la OPA, en lugar de recogerlos periódicamente. (La OPA no proporciona la implementación ni la configuración de un replicador). El enfoque push tiene las mismas limitaciones de tamaño de datos que el enfoque de agrupamiento, ya que la OPA almacena todos los datos en la memoria. La principal ventaja de la opción push es que puede actualizar los datos en OPA con deltas en lugar de reemplazar todos los datos externos cada vez. Esto hace que la opción push sea más adecuada para conjuntos de datos que cambian con frecuencia. 

Para obtener más información sobre la opción de replicación, consulte la documentación de la OPA.

Recuperación dinámica de datos de OPA

Si los datos externos que se van a recuperar son demasiado grandes para guardarlos en caché en la memoria de la OPA, los datos se pueden extraer dinámicamente de una fuente externa durante la evaluación de una decisión de autorización. Cuando se utiliza este enfoque, los datos están siempre actualizados. Este enfoque tiene dos inconvenientes: la latencia de la red y la accesibilidad. Actualmente, OPA solo puede recuperar datos en tiempo de ejecución mediante una solicitud HTTP. Si las llamadas que van a una fuente de datos externa no pueden devolver datos como una respuesta HTTP, requieren una API personalizada o algún otro mecanismo para proporcionar estos datos a OPA. Dado que OPA solo puede recuperar datos a través de solicitudes HTTP y la velocidad de recuperación de los datos es fundamental, le recomendamos que utilice Amazon DynamoDB para almacenar datos externos siempre que sea posible. Servicio de AWS

Para obtener más información sobre el enfoque de atracción, consulte la documentación de la OPA.

Uso de un servicio de autorización para la implementación con OPA

Cuando busque datos externos mediante agrupamiento, replicación o un enfoque de extracción dinámica, le recomendamos que el servicio de autorización facilite esta interacción. Esto se debe a que el servicio de autorización puede recuperar datos externos y transformarlos en JSON para que OPA tome decisiones de autorización. El siguiente diagrama muestra cómo puede funcionar un servicio de autorización con estos tres enfoques de recuperación de datos externos.

Recuperación de datos externos con OPA

Recuperación de datos externos para el flujo de OPA: recuperación dinámica o agrupada de datos en el momento de tomar una decisión (ilustrada con rótulos numerados en rojo en el diagrama):

  1. La OPA llama al punto final de la API local para el servicio de autorización, que se configura como un punto final de paquete o el punto final para la recuperación dinámica de datos durante las decisiones de autorización.

  2. El servicio de autorización consulta o llama a la fuente de datos externa para recuperar datos externos. (En el caso de un punto final de paquete, estos datos también deben contener las políticas y normas de la OPA. Las actualizaciones de paquetes reemplazan todo lo que hay en la caché de la OPA (tanto los datos como las políticas).

  3. El servicio de autorización realiza cualquier transformación necesaria en los datos devueltos para convertirlos en la entrada JSON esperada.

  4. Los datos se devuelven a OPA. Se almacenan en caché en la memoria para la configuración del paquete y se utilizan inmediatamente para tomar decisiones de autorización dinámicas.

Recuperación de datos externos para el flujo de OPA: replicador (ilustrado con rótulos numerados en azul en el diagrama):

  1. El replicador (parte del servicio de autorización) llama a la fuente de datos externa y recupera todos los datos que se van a actualizar en la OPA. Esto puede incluir políticas, reglas y datos externos. Esta llamada puede tener una cadencia determinada o puede producirse en respuesta a actualizaciones de datos en la fuente externa.

  2. El servicio de autorización realiza cualquier transformación necesaria en los datos devueltos para convertirlos en la entrada JSON esperada.

  3. El servicio de autorización llama a OPA y almacena en caché los datos en la memoria. El servicio de autorización puede actualizar los datos, las políticas y las reglas de forma selectiva.