Open Policy Agent (OPA) es un marco de trabajo uniforme y un lenguaje para declarar, aplicar y controlar políticas. Para nuestros equipos, se ha convertido en una de las formas preferidas para definir políticas para sistemas distribuidos, especialmente cuando necesitamos implementar revisiones de cumplimiento en puntos de cambio. OPA permite a los equipos implementar varios patrones de ingeniería de plataformas, como controlar lo que se despliega a los clústeres de Kubernetes, hacer cumplir los controles de acceso entre los servicios de una malla e implementar políticas de seguridad como código precisas para acceder a los recursos de la aplicación. Aunque hay cierta complejidad asociada a las implementaciones de OPA, ha demostrado ser una herramienta muy valiosa para garantizar el cumplimiento en una cultura DevOps. Seguimos con atención el crecimiento y la madurez de OPA en escenarios diferentes a los de sistemas operacionales, como en las (grandes) soluciones centradas en los datos.
Open Policy Agent (OPA) se ha convertido rápidamente en un componente aconsejable de muchas soluciones distribuidas nativas en la nube que construimos para nuestros clientes. OPA brinda un marco de trabajo uniforme y un lenguaje para declarar, imponer, y controlar políticas para varios componentes en una solución nativa en la nube. Es un buen ejemplo de una herramienta que implementa políticas de seguridad como código. Hemos tenido una experiencia fluida usando OPA en múltiples escenarios, incluyendo el despliegue de recursos a clusters de K8s, imponiendo control de acceso a través de servicios en una malla de servicios y controles de seguridad minuciosos como código para acceder a recursos de aplicación. Una oferta comercial reciente, Servicio de Autorización Declarativa de Styra (Declarative Authorization Service - DAS), facilita la adopción de OPA para compañías mediante la inclusión de una herramienta de gestión, o plano de control, a OPA para K8s con una librería de políticas pre-construida, análisis de impacto de las políticas y capacidad para monitoreo de logs. Anhelamos la madurez y extensión de OPA más allá de servicios operacionales a soluciones centradas en (grandes) datos.
Definir y aplicar políticas de seguridad de manera uniforme en un panorama tecnológico diverso es un desafío. Incluso para aplicaciones simples, se debe controlar el acceso a sus componentes -- tales como orquestadores de contenedores, servicios y los almacenes de datos para mantener el estado de los servicios -- utilizando la configuración de la política de seguridad integrada de sus componentes y los mecanismos de ejecución.
Estamos entusiasmados con Open Policy Agent (OPA), una tecnología de código abierto que intenta resolver este problema. OPA te permite definir un control de acceso específico y políticas flexibles como código, utilizando el lenguaje de definición de políticas Rego. Rego aplica las políticas de manera distribuida y discreta fuera del código de la aplicación. Al momento de escribir este artículo, OPA implementa una definición y aplicación de políticas uniformes y flexibles para asegurar el acceso a las API de Kubernetes y las API de microservicios a través del sidecar de Envoy y Kafka. También se puede usar como un sidecar para cualquier servicio para verificar las políticas de acceso o filtrar los datos de respuesta. Styra, la compañía detrás de OPA, ofrece soluciones comerciales para una visibilidad centralizada de las políticas distribuidas. Nos gusta ver a OPA madurar a través del programa de incubación CNCF y continuar construyendo soporte para escenarios de cumplimiento de políticas más desafiantes, como diversos almacenes de datos.