OPA: un motor de políticas de propósito general para aplicaciones nativas de la nube

A medida que su organización adopta la nube, es posible que descubra que el dinamismo y la escala de la pila nativa de la nube requieren un panorama de cumplimiento y seguridad mucho más complicado. Por ejemplo, con las plataformas de orquestación de contenedores como Kubernetes ganando terreno, los desarrolladores y los equipos de DevOps tienen una nueva responsabilidad sobre áreas de políticas como el control de admisión, así como áreas más tradicionales como computación, almacenamiento y redes. Mientras tanto, cada aplicación, microservicio o malla de servicios requiere su propio conjunto de políticas de autorización, por lo que los desarrolladores están enganchados.

Es por estas razones que se está buscando una forma más simple y eficiente de crear, hacer cumplir y administrar políticas en la nube. Ingrese a Open Policy Agent (OPA). Creado hace cuatro años como un motor de políticas de código abierto independiente del dominio, OPA se está convirtiendo en el estándar de facto para las políticas nativas de la nube. De hecho, empresas como Netflix, Pinterest y Goldman Sachs ya emplean OPA en la producción para casos de uso como el control de admisión de Kubernetes y la autorización de API de microservicios. OPA también impulsa muchas de las herramientas nativas de la nube que ya conoce y ama, incluida la suite Atlassian y Chef Automate.

[También en: Donde la ingeniería de confiabilidad del sitio se encuentra con devops]

OPA proporciona a las organizaciones nativas de la nube un lenguaje de políticas unificado, de modo que las decisiones de autorización se pueden expresar de una manera común, a través de aplicaciones, API, infraestructura y más, sin tener que codificar políticas personalizadas en cada uno de esos diversos lenguajes y herramientas individualmente. . Además, debido a que OPA está diseñado específicamente para la autorización, ofrece una colección creciente de optimizaciones de rendimiento para que los autores de políticas puedan dedicar la mayor parte de su tiempo a redactar políticas correctas y fáciles de mantener y dejar el rendimiento a OPA.

La política de autorización de OPA tiene muchos, muchos casos de uso en toda la pila, desde poner barreras alrededor de la orquestación de contenedores hasta controlar el acceso SSH o proporcionar autorización de malla de servicios basada en contexto. Sin embargo, hay tres casos de uso populares que proporcionan una buena plataforma de lanzamiento para muchos usuarios de OPA: autorización de aplicaciones, control de admisión de Kubernetes y microservicios. 

OPA para autorización de solicitud

La política de autorización es omnipresente, porque prácticamente todas las aplicaciones la requieren. Sin embargo, los desarrolladores suelen "desarrollar su propio" código, lo que no solo consume mucho tiempo, sino que da como resultado una mezcla de herramientas y políticas que son difíciles de mantener. Si bien la autorización es fundamental para todas las aplicaciones, el tiempo dedicado a la creación de políticas significa menos tiempo para concentrarse en las funciones orientadas al usuario.

OPA utiliza un lenguaje de políticas declarativas especialmente diseñado que simplifica el desarrollo de políticas de autorización. Por ejemplo, puede crear y hacer cumplir políticas tan sencillas como "No puede leer PII si es un contratista" o "Jane puede acceder a esta cuenta". Pero eso es solo el comienzo. Debido a que la OPA tiene en cuenta el contexto, también puede crear una política que considere cualquier cosa en el planeta, como, por ejemplo, "Las transacciones de acciones solicitadas en la última hora del día de negociación, que resultarán en una transacción de más de un millón de dólares, solo se pueden ejecutar en servicios específicos en un espacio de nombres determinado ".

Por supuesto, muchas organizaciones ya cuentan con autorizaciones a medida. Sin embargo, si espera descomponer sus aplicaciones y escalar microservicios en la nube mientras mantiene la eficiencia para los desarrolladores, será necesario un sistema de autorización distribuido. Para muchos, OPA es la pieza faltante del rompecabezas.

OPA para el control de admisión de Kubernetes

Muchos usuarios también usan OPA para crear barreras para Kubernetes. Kubernetes en sí se ha convertido en algo común y crítico para la misión, y las organizaciones están buscando formas de definir e implementar barreras de seguridad para ayudar a mitigar los riesgos de seguridad y cumplimiento. Con OPA, los administradores pueden establecer políticas claras para que los desarrolladores puedan acelerar la producción de la canalización y llevar rápidamente nuevos servicios al mercado, sin preocuparse por los riesgos operativos, de seguridad o de cumplimiento.

OPA se puede utilizar para crear políticas que rechacen cualquier ingreso que use el mismo nombre de host, o que requieran que todas las imágenes del contenedor provengan de un registro confiable, o para garantizar que todo el almacenamiento esté marcado siempre con el bit de cifrado, o que todas las aplicaciones expuestas a Internet, utilice un nombre de dominio aprobado, por citar sólo algunos ejemplos.

Debido a que OPA se integra directamente con el servidor de API de Kubernetes, puede rechazar cualquier recurso que la política no permita, en computación, redes, almacenamiento, etc. Particularmente beneficioso para los desarrolladores, puede exponer estas políticas al principio del ciclo de desarrollo, como en la canalización de CI / CD, para que los desarrolladores puedan recibir comentarios con anticipación y solucionar problemas antes del tiempo de ejecución. Además, incluso puede validar sus políticas fuera de banda, asegurándose de que logren el efecto deseado y no causen problemas inadvertidamente.

OPA para microservicios

Finalmente, OPA se ha vuelto muy popular para ayudar a las organizaciones a controlar sus microservicios y arquitecturas de malla de servicios. Con OPA, puede crear y aplicar políticas de autorización directamente para un microservicio (generalmente como un complemento), crear políticas de servicio a servicio dentro de la malla de servicios o, desde el punto de vista de la seguridad, crear políticas que limiten el movimiento lateral dentro de la malla de servicios. arquitectura.

Creación de políticas unificadas para arquitecturas nativas de la nube

En general, el objetivo general al usar OPA es crear un enfoque unificado para crear políticas en su pila nativa de la nube, de modo que no tenga que administrar políticas continuamente en docenas de ubicaciones, utilizando diferentes lenguajes y enfoques, a través de un anuncio. una combinación de conocimientos tribales, wikis y archivos PDF o una mezcla de herramientas que no coinciden.

[También en: 7 prácticas recomendadas para equipos ágiles remotos]

Además de simplificar el desarrollo y acelerar la entrega, esta también es una gran noticia para la seguridad, ya que OPA reduce la cantidad de herramientas que necesita para verificar si, por ejemplo, sospecha que se intentó un acceso no autorizado. De manera similar, tanto desde una perspectiva de operaciones como de cumplimiento, OPA facilita la extracción y el análisis de información en un entorno heterogéneo, lo que lo ayuda a identificar rápidamente los problemas y resolverlos más rápidamente.

Los desarrolladores están buscando una forma más sencilla y eficiente de crear y administrar controles basados ​​en políticas para sus entornos nativos de la nube. Para muchos, esa solución es OPA. Si se encuentra tocando la política de autorización en varios lugares, en varios idiomas o en varios equipos, OPA puede ayudarlo a eliminar la redundancia y acelerar la entrega para usted, tal como lo ha hecho para ellos.

Tim Hinrichs es cofundador del proyecto Open Policy Agent y CTO de Styra. Antes de eso, cofundó el proyecto OpenStack Congress y fue ingeniero de software en VMware. Tim pasó los últimos 18 años desarrollando lenguajes declarativos para diferentes dominios, como computación en la nube, redes definidas por software, administración de configuración, seguridad web y control de acceso. Recibió su Ph.D. en Ciencias de la Computación de la Universidad de Stanford en 2008.

-

New Tech Forum proporciona un lugar para explorar y discutir la tecnología empresarial emergente con una profundidad y amplitud sin precedentes. La selección es subjetiva, basada en nuestra selección de las tecnologías que creemos que son importantes y de mayor interés para los lectores. no acepta material de marketing para su publicación y se reserva el derecho de editar todo el contenido contribuido. Envíe todas sus consultas a [email protected]