Publicado a

Regras como código

«Nenhum armazenamento público», «tudo cifrado», «nada sem etiquetas de custo». Se estas regras só estão num documento, não se cumprem. Se estão em código, verificam-se em cada mudança, antes de a aplicar.

Linha de serviço Automação e IaC

A norma que ninguém lê

Quase todas as organizações têm uma norma de segurança ou de infraestrutura: um documento com regras razoáveis. Quase todas têm também recursos que a não cumprem. Não por má-fé, mas porque quem escreve a mudança não tem a norma à frente nesse momento, e quem revê não pode verificar trinta regras a olho em cada mudança.

De documento a verificação

A norma verifica-se em cada mudançaPorta de cinco regras: duas bloqueantes não cumpridas detêm a mudança.IAC · REGRAS COMO CÓDIGOA norma verifica-se em cada mudançaMudançaplano calculadoPORTA DE REGRASNenhum armazenamento públicofalha em: armazem.relatoriosTudo cifradoEtiquetas de responsável, aplicação e ambientefalha em: 3 recursosSó regiões permitidasNenhuma porta de administração abertaMudança detida: 2 regras bloqueantes não cumpridas.A mensagem diz que regra, que recurso e porquê.Exceções possíveis, mas escritas: responsável, motivo e data de revisão.Exemplo ilustrativoN100F · n100f.com

A alternativa é escrever as regras como código que se executa face a cada plano antes de o aplicar:

  • «Nenhum armazenamento de dados pode ser público.»
  • «Todos os discos e bases de dados vão cifrados.»
  • «Todo o recurso leva as etiquetas de responsável, aplicação e ambiente» (as que precisa a atribuição de custos).
  • «Só se permitem estas regiões.»
  • «Nenhuma porta de administração aberta à internet.»

Se o plano não cumprir alguma, a mudança para com uma mensagem que diz que regra, em que recurso e porquê.

Níveis de severidade

Não todas as regras pesam o mesmo:

  • Bloqueantes: a mudança não se aplica (dados expostos, cifra desativada).
  • Avisos: aplica-se, mas fica registado e alguém o revê (etiqueta opcional ausente).

E para os casos excecionais, exceções documentadas: com responsável, motivo e data de revisão, nunca silenciosas (a mesma lógica que em homologar sem travar).

Porque funciona

A norma deixa de depender da memória de quem escreve e da atenção de quem revê. Cumpre-se sempre, em todos os ambientes, em cada mudança. E como a regra está escrita num só lugar, melhorá-la melhora todas as revisões ao mesmo tempo.

As regras protegem o que se constrói a partir do código. Falta o que já existia antes dele.


Como o aplicamos: Automação e IaC.

Se o seu custo cloud cresce sem que ninguém saiba porquê, ou a sua arquitetura depende de quem a montou, falemos.

Falemos