GH GambleHub

Operações e Gerenciamento → Auditoria de configurações

Auditoria de configurações

1) Objetivo e valor

As auditorias de configuração garantem a responsabilização comprovada e a repetição das mudanças: quem, quando e o que mudou; o que é razoável; como testado; Como rebolar. Isso reduz o risco de incidentes, fugas de segredos, discrepâncias e edições «ocultas» na venda.

Resultados-chave:
  • Uma única fonte de verdade (SoT) para configs.
  • Traçado completo de alterações (end-to-end).
  • Lançamentos previsíveis e reversão rápida.
  • Adequação aos requisitos regulatórios e às políticas de segurança.

2) Área de alcance

Infraestrutura: Terraform/Helm/Ansive/K8s manifestos LCA/WAF/CDN.
Configs de aplicação: arquivos 'yaml/json/properties', bandeiras de ficheiro, limites/quotas.
Segredos e chaves: vault/kms, certificados, tokens, senhas.
Piplins de dados: circuitos, transformações, planilhas ETL/striptease.
Integração PSP/KYC/provedores, webhooks, retry/timeout políticas.
Observabilidade: regras de alertas, dashboard, SLO/SLA.

3) Princípios

Config as Data: artefatos declaratórios, versionáveis, testados.
Imutabilidade e idempotidade: reprodução do ambiente a partir do código.
Planos e contratos: validação rigorosa (JSON-Schema/Protobuf), back/forward-compatibilidade.
Minimizar as edições manuais: alterações somente por MR/PR.
Separação de responsabilidades (SoD) e 4-eyes: autor! = depositador; Um ciúme obrigatório.
Atribuições e assinaturas: assinaturas de commites/lançamentos, atestações de artefatos.

4) Arquitetura de auditoria

1. SCM (Git) como SoT: todos os configs do repositório, o ramo 'principal' está protegido.

2. Maiúsculas:
  • Config Registry (catálogo de configs, propriedade, SLA, ambiente),
  • Schema Registry (versões de circuitos de configs/iventes),
  • Policy Engine (OPA/Conftest) é um conjunto de verificações.
  • 3. CI/CD-gates: formato/esquema → verificação estática → policy checks → segredo-scan → dry-run → plano de mudanças.
  • 4. Delivery: GitOps (por exemplo, ArgoCD/Flux) com detector de drive-drive e auditorias de aplicações.
  • 5. Evidence Store: Armazém de artefatos de auditoria (plano, logs, assinaturas, bilds, SBOM).
  • 6. Registro de ação: logs de eventos invariáveis (append-only) 'CREATE/APPLE/APPLY/ROLLBACK/ACCESS'.

5) Modelo de dados de auditoria (mínimo)

Сущности: `ConfigItem(id, env, service, owner, schema_version, sensitivity)`

События: `change_id, actor, action, ts, diff_hash, reason, approvals[]`

Артефакты: `plan_url, test_report_url, policy_report, signature, release_tag`

Ligações: RFC/tíquete ↔ PR ↔ deplay (sha) ↔ gravação de lançamento ↔ monitoramento SLO.

6) Processo de alteração (de passagem)

1. RFC/tíquete → alvo, risco, backout.
2. PR/MR → linting, validação esquemática, verificação de polícias, segredo scan.
3. Plano/suprimento de dry-run/plano, diff de recursos, estimativa de custo/importação.
4. Aplove (4-eyes/SoD, marca FAB em alto risco).
5. Deploy (por janela/calendário) → GitOps aplica; O draft-alerting está ativado.
6. Comprovação → smoke/SLO Gardrela, confirmação do resultado.
7. Arquivamento de provas → evidence store; atualização do dicionário de configs.

7) Políticas e regras (exemplos)

O autor do PR não morre na praga.
Limite de tempo: Não é permitido um pod de prod fora de «freeze».
Scope: Alterar as chaves sensíveis requer 2x upruvers do Security/Compliance.
Segredos: é proibido guardar em repo; apenas links vault-caminho + rol de acesso.
Redes: ingress s '0. 0. 0. 0/0 'é proibido sem exclusão temporária e TTL.
Alerts: Não é permitido reduzir a criticidade P1 sem FAB.

8) Controle de segredos

Armazenamento em Vault/KMS, TTL curto, rotação automática.
Secret scanning em CI (pattern chaves, high-entropy).
Isolar segredos por ambientes/papéis; privilégios minimamente necessários.
Encriptação «no fio» e «em paz»; auditorias fechadas de acesso a segredos.

9) Ferramentas (variável)

Lint/Schema: `yamllint`, `jsonschema`, `ajv`, `cue`.
Policy: OPA/Conftest, Checkov/tfsec/kube-policies.
GitOps: ArgoCD/Flux (drift detection, audit, RBAC).
Segredos: HashiCorp Vault, cloud KMS, gerentes de cert.
Scanners: trufflehog, gitleaks (segredos); OPA/Regula (regras).
Relatório: export revistas em DWH/BI, ligação com o sistema de incidentes e mudança.

10) Exemplos de regras e artefatos

JSON-Schema para configuração de limites

json
{
"$schema": "http://json-schema. org/draft-07/schema#",
"title": "limits",
"type": "object",
"required": ["service", "region", "rate_limit_qps"],
"properties": {
"service": {"type":"string", "pattern":"^[a-z0-9-]+$"},
"region": {"type":"string", "enum":["eu","us","latam","apac"]},
"rate_limit_qps": {"type":"integer","minimum":1,"maximum":5000},
"timeouts_ms": {"type":"integer","minimum":50,"maximum":10000}
},
"additionalProperties": false
}

Conftest/OPA (rego) - Proibido '0. 0. 0. 0/0` в ingress

rego package policy. network

deny[msg] {
input. kind == "IngressRule"
input. cidr == "0. 0. 0. 0/0"
msg:= "Ingress 0. 0. 0. 0/0 is not allowed. Specify specific CIDRs or throw an exception with TTL"
}

Conftest/OPA - SoD (o autor não morre)

rego package policy. sod

deny[msg] {
input. env == "prod"
input. pr. author == input. pr. merger msg: = "SoD: PR author cannot hold in prod."
}

SQL (DWH) - quem reduziu a criticidade de alertas em um mês

sql
SELECT actor, COUNT() AS cnt
FROM audit_events
WHERE action = 'ALERT_SEVERITY_CHANGED'
AND old_value = 'P1' AND new_value IN ('P2','P3')
AND ts >= date_trunc('month', now())
GROUP BY 1
ORDER BY cnt DESC;

Exemplo de mensagem Git commit (campos obrigatórios)


feat(config/payments): raise PSP_B timeout to 800ms in EU

RFC: OPS-3421
Risk: Medium (PSP_B only, EU region)
Backout: revert PR + restore timeout=500ms
Tests: schema ok, conftest ok, e2e ok

11) Monitoramento e alerting

Detecção Draft: config no cluster ≠ Git → P1/P2 sinal + remunção automática (recôncil).
High-risk mudança: alteração de redes/segredos/políticas - notificação para # security-ops.
Missing evidence: deplay sem plano/assinatura/relatório - bloco ou alert.
Expired assets: data de validade dos certificados/chaves → alertas pró-ativos.

12) Métricas e KPI

O Check Coverage% é a proporção de configs sob os circuitos/políticas/scanners.
Draft MTTR é o tempo médio para resolver a deriva.
Policy Compliance% é a passagem de uma política para o PR.
Segredos Leak MTTR - de fuga a reversão/rotação.
Backout Rate é uma proporção de retoques de mudanças configh.
Mean Mudança Size - Diff médio em linhas/recursos (menor - melhor).

13) Relatórios e conformidade

Traços de auditoria: armazenamento de ≥ de 1 a 3 anos (por exigência), armazenamento imutável.
Regulação: ISO 27001/27701, SOX similares SoD, GDPR (PII), exigências setoriais (iGaming: contabilidade de alteração de cálculos GGR/NGR, limites, regras bônus).
Relatórios mensais: alterações de topo, violações de políticas, à deriva, certificados vencidos, status de rotações.

14) Playbooks

A. Detetada deriva em venda

1. Bloquear o pod de auto para o serviço afetado.
2. Retirar o estado atual.
3. Comparar com Git, iniciar 'reconcile' ou retroceder.
4. Criar incidente P2, especificar origem à deriva (kubectl/console manual).
5. Incluir proteção: proibir alterações diretas (PSP/ABAC), notificar os proprietários.

B. Certificado PSP vencido

1. Mudar para o caminho de reserva/PSP, baixar o tempo/retrai.
2. Emitir um novo certificado através do processo PKI, atualizar o config através do Git.
3. Teste smoke, regresso ao tráfego, encerramento do incidente, pós-mortem.

C. O segredo está no PR

1. Retire a chave/token, ative a rotação.
2. Reescrever o histórico/remover o artefato da caixa, redecorar o RCA.
3. Adicionar uma regra a um scanner secreto, treinar um comando.

15) Anti-pattern

Edições manuais «à venda» sem rasto ou retalho.
Configs sem circuitos e sem validação.
Segredos em variáveis Git/CI sem KMS/Vault.
Um Monorepo com o equivalente a «super direito global».
Surdo GitOps sem draft-alert ou registro de aplicações.
O vasto PR «tudo e tudo» é uma atribuição ímpar e um alto risco.

16) Folhas de cheque

Antes do merge

  • Esquema e links ultrapassados
  • Políticas OPA/Conftest «verdes»
  • Secret-scan - «limpo»
  • Plano/diff anexado, risco avaliado, backout pronto
  • 2 apruwas (prod) e SoD cumprido

Antes do deploy

  • Janela de lançamento e calendário testados
  • O monitoramento Draft está ativo
  • As gardrelas SLO estão configuradas, os testes smoke estão prontos

Mensalmente

  • Rotação de chaves/certificados de cronograma
  • Inventário de proprietários e direitos
  • Rever regras ORA/Exclusões (TTL)
  • Teste de playbooks (fire-drill)

17) Dicas de design

Use as alterações para pequenos difs; um PR é um alvo.
Modelos de PR/commites obrigatórios com RFC/risco/recuo.
Para configs dinâmicos, use «centros de configs» com áudio e rollback.
Versionize os circuitos; proíba breaking sem migração.
Visualize «mapa de configs»: o quê, onde, quem é controlado.

18) Integração com gerenciamento de alterações e incidentes

PR ↔ RFC ↔ calendário de lançamentos ↔ incidentes/pós-mortem.
Metricagem automática (SLO/Business) para lançamentos de configs.
Criação automática de tarefas para remoção de bandeiras/exceções antigas (TTL).

19) Resultado

A auditoria de configurações não é um relatório de papel, mas sim um mecanismo operacional de confiabilidade: configs - dados, alterações - controláveis e verificáveis, segredos - sob custódia, e toda a história é transparente e verificável. É assim que se constrói uma plataforma sustentável, completa e previsível.

Contact

Entrar em contacto

Contacte-nos para qualquer questão ou necessidade de apoio.Estamos sempre prontos para ajudar!

Telegram
@Gamble_GC
Iniciar integração

O Email é obrigatório. Telegram ou WhatsApp — opcionais.

O seu nome opcional
Email opcional
Assunto opcional
Mensagem opcional
Telegram opcional
@
Se indicar Telegram — responderemos também por lá.
WhatsApp opcional
Formato: +indicativo e número (ex.: +351XXXXXXXXX).

Ao clicar, concorda com o tratamento dos seus dados.