In this article
A importância de Policy as Code na sua estratégia de compliance
O que é política como código?
As políticas são uma das principais formas de as organizações garantirem que o software tenha alta qualidade, seja fácil de usar e seguro. As revisões manuais são uma maneira de verificar se o software está em conformidade, mas consomem muito tempo, estão sujeitas a erros e não podem ser escaladas. Política como código (PaC) automatiza esse processo de tomada de decisão ao codificar e aplicar políticas. Ela pode ser usada para automatizar procedimentos de validação e controlar e gerenciar a infraestrutura.
Como funciona o Policy as Code?
Policy as Code permite que as equipes automatizem o processo de tomada de decisões sobre políticas, codificando-as com uma linguagem declarativa de alto nível. Uma ferramenta de Policy as Code funciona junto aos sistemas ou aplicativos monitorados e simula as decisões de verificação de políticas que antes exigiriam verificações manuais.
As ferramentas de Policy as Code precisam de três entradas para gerar uma decisão:
Política: Código que modela o processo de tomada de decisões usado para determinar se uma versão de software está em conformidade. Pode incluir um conjunto de condições relacionadas à qualidade, ao desempenho, à facilidade de uso e à segurança do aplicativo, entre outros aspectos.
Dados: Informações sobre um serviço, uma configuração do Kubernetes, uma ferramenta de CI/CD, entre outros.
Entrada da consulta: Aciona o processo de tomada de decisões com base na política e nos dados.
Entre as ferramentas comuns de Policy as Code estão o Open Policy Agent (OPA) e o HashiCorp Sentinel, que usam, respectivamente, as linguagens Rego e Sentinel. O OPA é genérico, enquanto o Sentinel funciona apenas com outros produtos HashiCorp, como o Terraform.
O OPA usa a linguagem Rego para codificar políticas e é executado como um serviço. Os dados relevantes são enviados ao armazenamento de documentos do OPA no formato JSON, e o OPA retorna o resultado de uma consulta com base nos dados e nas políticas.
Casos de uso do Policy as Code
Provisionamento de infraestrutura
O Policy as Code é usado para automatizar verificações de políticas de segurança, operações e compliance.
Autorização e controle de acesso para APIs
Para aplicar políticas relacionadas à autorização de um serviço. Plataformas de aplicação de políticas podem ser usadas em pipelines de CI/CD, Kubernetes, plataformas de nuvem e muito mais.
Controles do Kubernetes
O Kubernetes oferece recursos e controles de acesso para criar clusters seguros, mas não conta com segurança integrada. Com Policy as Code, engenheiros e desenvolvedores podem implementar e aplicar controles em diferentes recursos do Kubernetes, como pods, nós e clusters.
Compliance e auditoria
Normas organizacionais, setoriais e governamentais, como HIPAA e PCI, costumam exigir diversas medidas relacionadas a redes, armazenamento de dados e computação. Policy as Code oferece uma forma natural de codificar essas exigências e incorporá-las às etapas iniciais do processo de desenvolvimento. Registros de decisões com a política, as entradas e os resultados das consultas permitem auditar as decisões relacionadas às políticas.
Benefícios de usar Policy as Code
Como o Policy as Code codifica políticas em arquivos de texto, ele permite aplicar boas práticas de desenvolvimento de software ao gerenciamento e à aplicação de políticas. Isso inclui controle de versão, integração contínua, testes automatizados e implantação contínua.
O Policy as Code oferece várias vantagens em relação às verificações manuais de políticas:
Implantações mais rápidas e eficientes
Policy as Code permite compartilhar e aplicar políticas em grande escala, com muito mais eficiência do que aplicá-las manualmente. A automação agiliza as operações. Engenheiros podem identificar erros ou casos de não conformidade no início do ciclo de desenvolvimento de software, melhorando a entrega de software.
Testes, governança e aprovações automatizados
É fácil automatizar testes de políticas com ferramentas de CI/CD, identificando vulnerabilidades e violações de políticas e garantindo que os requisitos sejam atendidos antes da implantação. As políticas podem ser definidas em uma interface gráfica e, depois, testadas por meio de um fluxo de trabalho com pull requests para garantir que o comportamento do sistema seja mantido antes da mesclagem.
Aplicativos mais confiáveis e seguros
Confiar que engenheiros verifiquem manualmente centenas de aplicativos inevitavelmente leva a erros humanos e a diferentes interpretações das políticas. Policy as Code permite aplicar políticas de forma consistente em todo o ciclo de vida do desenvolvimento. Agrupar políticas em conjuntos também facilita seu gerenciamento e aplicação.
Sandboxing
Policy as Code oferece proteções para sandboxes, que isolam aplicativos uns dos outros para evitar comportamentos perigosos. Como a automação das sandboxes dificulta a verificação manual, Policy as Code é essencial para implementá-las com segurança.
Colaboração
Uma abordagem sistemática para escrever e gerenciar políticas promove a colaboração entre equipes e dentro delas. Por exemplo, desenvolvedores e equipes de segurança podem trabalhar juntos para garantir que uma versão atenda às expectativas. Além disso, Policy as Code reduz a necessidade de os desenvolvedores negociarem aprovações com responsáveis pelas políticas a cada nova versão. Com a ferramenta de Policy as Code, desenvolvedores podem verificar e corrigir código automaticamente.
Provisionamento de infraestrutura
Policy as Code pode ser usado para escrever e aplicar políticas de autorização e uso da infraestrutura, como regras para otimizar o uso dos recursos e aplicar firewalls. Assim, as empresas podem aproveitar a infraestrutura em nuvem ou híbrida e, ao mesmo tempo, aprimorar sua postura de segurança e compliance.
Melhor controle de versão
Armazenar políticas em arquivos de texto traz os benefícios do controle de versão para o gerenciamento de políticas. Para atualizá-las, os engenheiros só precisam modificar o código existente. Com o controle de versão, também é possível voltar a uma versão anterior caso uma nova política cause algum problema. Outros membros da equipe podem identificar facilmente quando uma ou mais políticas são alteradas.
Políticas codificadas com explicações em comentários
Todas as partes interessadas podem entender o contexto e a lógica por trás de uma política ao revisar o código. Os recursos para adicionar comentários eliminam a necessidade de entrar em contato com engenheiros ou equipes de segurança.
Policy as Code versus Infrastructure as Code
Os ecossistemas modernos incluem diversas ferramentas e modelos de implantação, como software como serviço (SaaS), nuvens públicas e privadas, infraestrutura local, máquinas virtuais e contêineres.
As empresas dependem de vários provedores de nuvem, cada um com seus próprios programas de segurança, e usam diferentes ferramentas de orquestração e gerenciamento para provisionar recursos. É preciso ter conhecimento especializado para integrar todos esses componentes, permitindo que se comuniquem, garantindo que os patches estejam atualizados e detectando e corrigindo vulnerabilidades.
Revisar, aprovar e auditar mudanças na infraestrutura leva tempo e causa atrasos entre a proposta e a implementação das alterações. Licenças, hardware e fornecedores também geram custos, por isso atender às demandas operacionais com eficiência é um grande desafio.
Infrastructure as Code surgiu como uma forma de automatizar o provisionamento de infraestrutura usando código. Policy as Code conecta Infrastructure as Code e DevOps. Seu conjunto de casos de uso é muito mais amplo e pode ser aplicado em todo o ciclo de vida do desenvolvimento, abrangendo segurança, compliance, gerenciamento de dados e muito mais.
As ferramentas de Policy as Code precisam oferecer suporte a várias plataformas e integrações, limitar o acesso a usuários autorizados e concedê-lo com o mínimo de privilégios. As políticas definem limites usando listas de permissões, listas de bloqueio ou uma combinação das duas, além de monitorar a infraestrutura para avaliar a conformidade em diferentes nuvens e ao longo de todo o ciclo de vida da infraestrutura.
Proteja a infraestrutura desde a origem
A Snyk automatiza a segurança e a conformidade de IaC nos fluxos de trabalho e detecta recursos com configurações divergentes ou ausentes.
Saiba mais sobre Policy as Code
Ferramentas como o OPA facilitam a aplicação de PaC à segurança e a outros domínios de TI. O Snyk Infrastructure as Code (Snyk IaC) usa o OPA para fazer a verificação de políticas no pipeline de CI/CD. Você pode adicionar suas próprias regras personalizadas às verificações com alguns comandos simples. Confira a documentação do Snyk IaC e também nosso artigo Como desenvolver regras personalizadas de IaC com a Snyk para começar.