🛡️ Enforcement Contínuo de Políticas e Regras de Segurança em IaC
🌟 Objetivo
Assegurar que todos os projetos de Infraestrutura como Código (IaC) cumprem requisitos mínimos de segurança através de enforcement automático e validado de políticas técnicas, sem depender exclusivamente de revisão humana.
O enforcement é um mecanismo crítico de proteção organizacional e deve ser tratado como parte integrante do ciclo de vida de segurança de qualquer projeto IaC.
🔖 O que deve ser feito
- Definir políticas organizacionais de segurança para IaC, com base em requisitos e boas práticas;
- Traduzir essas políticas em regras executáveis (ex: OPA, Sentinel, Rego);
- Integrar o enforcement nos pipelines CI/CD, com bloqueio de merges ou aplicações em caso de violação;
- Manter um repositório centralizado de regras, versionado, auditável e com gestão de aprovações;
- Permitir exceções rastreáveis e com prazo, validadas por equipas de segurança;
- Avaliar continuamente a eficácia das regras aplicadas e rever conforme ameaças evoluem.
⚖️ Como deve ser feito
| Componente | Prática recomendada |
|---|---|
| Engine de políticas | OPA/Rego, Sentinel, Conftest, InSpec |
| Formato | Regras declarativas em YAML, Rego, JSON schemas ou equivalente |
| Trigger | Execução obrigatória em pull request, no pre-merge ou pre-apply |
| Feedback | Output legível para humanos com explicação por regra falhada |
| Logging | Armazenamento central dos resultados por projeto, commit, PR e autor |
| Exceções | Definidas por regra, justificadas, rastreáveis, aprovadas por AppSec |
🗓️ Quando aplicar
| Momento | Ação esperada |
|---|---|
| PR com mudança em IaC | Execução obrigatória de políticas de conformidade |
| Pre-apply em staging | Validação de segurança com regras Rego ou Sentinel |
| Revisão de regras | Atualização em base trimestral ou a cada mudança relevante no contexto |
| Detecção de bypass | Alerta imediato + revisão do pipeline e da regra falhada |
💼 Exemplos práticos
✏️ Exemplo de regra Rego (OPA)
deny[msg] {
input.resource_type == "aws_s3_bucket"
not input.tags.Environment
msg := "Missing 'Environment' tag on S3 bucket."
}
🌍 Integração em pipeline GitHub Actions
- name: Run policy check
run: conftest test ./iac/envs/prod
📈 Benefícios diretos
- Reforça segurança preventiva e sistemática
- Garante conformidade organizacional com requisitos definidos
- Reduz dependência de revisão manual de código
- Facilita auditoria e resposta a incidentes
- Aumenta confiança no uso de IaC em ambientes críticos