core/security-governance-core/SECURITY-GOVERNANCE-CORE.md
Tiago Yamamoto a52bd4519d refactor: optimize Dockerfiles and documentation for core services
- Use Google Distroless images for all services (Go & Node.js).
- Standardize documentation with [PROJECT-NAME].md.
- Add .dockerignore and .gitignore to all projects.
- Remove docker-compose.yml in favor of docker run instructions.
- Fix Go version and dependency issues in observability, repo-integrations, and security-governance.
- Add Podman support (fully qualified image names).
- Update Dashboard to use Node.js static server for Distroless compatibility.
2025-12-30 13:22:34 -03:00

1.8 KiB

SECURITY-GOVERNANCE-CORE

O security-governance-core é o guardião das políticas de segurança e conformidade da plataforma.

📋 Visão Geral

Este serviço centraliza a governança, garantindo que todos os tenants operem dentro dos parâmetros de segurança definidos. Ele mantém um registro de auditoria imutável e gerencia perfis de risco.

Arquitetura

graph TD
    Service[Any Service] -->|Event| Queue[Audit Queue]
    Queue -->|Consume| Worker[Audit Worker]
    Worker -->|Store| DB[(Audit Log DB)]
    
    Admin[Compliance Officer] -->|Define| Policy[Security Policy]
    Policy -->|Enforce| Gatekeeper[Policy Engine]

🚀 Estrutura do Projeto

O projeto é escrito em Go e foca em imutabilidade e rastreabilidade:

Diretório Descrição
cmd/api API de gestão.
internal/audit Ingestão de logs de auditoria.
internal/policies Motor de políticas (OPA-like simple engine).
internal/compliance Checklists e relatórios.

🛠️ Tecnologias e Otimizações

  • Linguagem: Go 1.23.
  • Database: PostgreSQL (Tabelas append-only para auditoria).
  • Containerização:
    • Base distroless/static.
    • Segurança máxima (sem shell).

💻 Como Executar

Docker (Recomendado)

# Build
docker build -t security-governance-core .

# Run
docker run -p 8080:8080 --env-file .env security-governance-core

Desenvolvimento

  1. Dependências: Go 1.23+, Postgres.
  2. Setup:
    cp .env.example .env
    go mod tidy
    
  3. Executar:
    go run ./cmd/api
    

🔧 Detalhes do Dockerfile

O Dockerfile é endurecido para ambientes regulados:

  • Base: Distroless Static.
  • User: Non-root (UID 65532).
  • Network: Apenas portas necessárias expostas.