Open Policy Agent (OPA) é uma estrutura e linguagem unificada para declarar, impor e controlar políticas. Para nossos times, ele se tornou a forma favorita de definir políticas para sistemas distribuídos, especialmente quando precisamos implementar conformidade no ponto de mudança. O OPA permite que os times implementem diversos padrões de engenharia de plataforma, como controlar o que é implantado em clusters Kubernetes, reforçar o controle de acesso entre serviços em um service mesh e implementar políticas de segurança como código granulares para acessar recursos de aplicativos. Embora existam algumas complexidades associadas às implementações do OPA, ele provou ser uma ferramenta altamente valiosa para garantir a conformidade em uma cultura DevOps. Também continuamos atentos à extensão e maturidade do OPA para soluções além de sistemas operacionais, alcançando soluções centradas em dados (big data).
Open Policy Agent (OPA) rapidamente se tornou um componente favorável de muitas soluções nativas de nuvem distribuídas que criamos para nossas clientes. A OPA fornece uma estrutura uniforme e linguagem para declarar, aplicar e controlar políticas para vários componentes de uma solução nativa de nuvem. É um ótimo exemplo de ferramenta que implementa política de segurança como código. Tivemos uma experiência tranquila usando OPA em vários cenários, incluindo a implantação de recursos nos clusters do K8s, impondo o controle de acesso entre serviços em uma malha de serviço e controles de segurança refinados como código para acessar os recursos da aplicação. Uma oferta comercial recente, o Serviço de Autorização Declarativa (DAS) da Styra facilita a adoção da OPA para empresas, adicionando uma ferramenta de gerenciamento ou plano de controle à OPA para K8s com uma biblioteca pré-construída de políticas, análise de impacto das políticas e recursos de log. Esperamos a maturidade e a extensão da OPA além dos serviços operacionais para (grandes) soluções centradas em dados.
Definir e executar políticas de segurança uniformemente em um cenário de tecnologia diverso é um desafio. Mesmo para aplicações simples, você tem que controlar o acesso a seus componentes – tais como orquestradores de contêineres, serviços e armazenamento de dados para manter o estado do serviço – usando sua configuração de política de segurança embutida dos componentes e mecanismos de execução.
Estamos otimistas com o Open Policy Agent (OPA), uma tecnologia de código aberto que tenta resolver esse problema. O OPA deixa você definir controle de acesso refinado e políticas flexíveis como código, usando a linguagem de definição de política Rego. Rego executa as políticas de maneira distribuída e limpa fora do código da aplicação. À época em que escrevemos, o OPA implementou a definição de política uniforme e flexível e execução para assegurar o acesso a APIs do Kubernetes, APIs de microsserviços por meio do sidecar do Envoy e Kafka. Também pode ser usado como sidecar para qualquer serviço para verificar acesso a políticas ou filtrar dados de resposta. Styra, a empresa por trás do OPA, fornece soluções comerciais para visibilidade centralizada para políticas distribuídas. Gostamos de ver o OPA amadurecer por meio do programa de incubação CNCF e continuar fornecendo suporte para cenários de execução de políticas mais desafiadores, tais como armazéns de dados diversos.