pgaudit & Registros de Conformidade
Programas de conformidade precisam de evidências: quem se conectou, quais tabelas foram lidas ou escritas, e qual DDL foi executado. O registro nativo do PostgreSQL, juntamente com a extensão pgaudit, produz linhas de auditoria estruturadas adequadas para retenção em SIEM. Esta lista de verificação abrange a habilitação, o escopo e o controle de volume para PostgreSQL 18.4.
Como Usar Esta Lista de Verificação
- Execute antes da janela de auditoria SOC2/HIPAA/PCI ou após um incidente de acesso a dados
- Comece com o escopo
pgaudit.logem nível de role, expanda apenas onde os regulamentos exigirem - Combine os logs de auditoria com o envio centralizado (veja csvlog & Registros JSON)
Extensão & Registros de Base
- pgaudit instalado e habilitado.
CREATE EXTENSION pgaudit;em bancos de dados sob escopo de auditoria. -
shared_preload_librariesinclui pgaudit em instâncias auto-hospedadas; reinicie uma vez após a alteração. -
log_line_prefixinclui usuário, db, app, IP do cliente, ID da sessão. Analisável em SIEM. -
log_connectionselog_disconnectionsativados. Auditoria de sessão básica sem detalhes de linha do pgaudit. -
log_statement = ddlno mínimo. Captura alterações de esquema mesmo se o pgaudit estiver mal configurado.
Escopo do pgaudit
-
pgaudit.logdefinido por role, não globalmenteall. Reduz ruído e custo. - Roles de aplicação:
writeouddlconforme necessário. OLTP frequentemente precisa dewriteem tabelas PII apenas via auditoria de objeto. - Roles de administrador/migrador:
ddl, role. Rastreia privilégios e alterações de esquema. - Auditoria em nível de objeto para tabelas PII quando necessário.
pgaudit.log_relationou políticas específicas de catálogo. - Auditoria de leitura (
readclass) apenas em tabelas regulamentadas. Registro de leitura completo é extremamente verboso.
Retenção & Integridade
- Logs enviados para bucket WORM ou imutável. S3 Object Lock, Azure immutable blob, ou SIEM com controles de adulteração.
- Retenção atende à política (frequentemente 1-7 anos). Bloqueios legais substituem o TTL padrão.
- Sincronização de relógio (NTP) nos hosts do banco de dados. Correlação com logs de aplicativo e IdP.
- Fluxo de log de auditoria separado dos logs de depuração. Nível de índice/retenção diferente na pilha de observabilidade.
- Acesso ao armazenamento de auditoria restrito. Analistas consultam SIEM, não superusuário de DB bruto.
Controles Operacionais
- Ações de superusuário contabilizadas. Usuários de "break-glass" em roles nomeadas, não
postgrescompartilhado. - Monitoramento de login falho. Erros de conexão agregados em SIEM.
- Análise trimestral de logs de auditoria. Prove que você pode responder "quem acessou customer_email em março?"
- Alerta de volume em MB/min de log. Detecção de
log_statement=alldescontrolado. - pgaudit desabilitado em testes de carga. Ou com escopo apenas para roles não produtivas.
Consultas de Verificação
-- Confirmar extensão
SELECT extname, extversion FROM pg_extension WHERE extname = 'pgaudit';
-- Configurações de auditoria de role
SELECT rolname, rolconfig
FROM pg_roles
WHERE rolconfig IS NOT NULL
AND EXISTS (
SELECT 1 FROM unnest(rolconfig) c WHERE c LIKE 'pgaudit%'
);FAQs
pgaudit vs triggers para histórico de linhas?
pgaudit registra acesso e alterações em nível de instrução nos logs do servidor. Triggers armazenam imagens de linha antes/depois em tabelas. Use ambos quando os regulamentos exigirem texto de consulta e prova em nível de linha.
pgaudit está disponível no RDS/Aurora?
Frequentemente disponível como extensão permitida. Habilite através do grupo de parâmetros e CREATE EXTENSION.
Quão verboso é o registro de leitura?
Muito. Uma única varredura de BI pode emitir milhares de linhas. Escopo read para tabelas específicas via auditoria de objeto.
pgaudit registra COPY?
Sim, quando COPY afeta relações auditadas. Cargas em massa precisam de aprovação explícita em runbook.
Aplicativos podem desabilitar auditoria?
Superusuário pode. Evite que aplicativos sejam superusuários; monitore ALTER ROLE e alterações de configuração.
Apagamento GDPR vs retenção de auditoria?
Logs de auditoria podem reter IDs de usuário sob base legal. Documente em DPIA; não exclua evidências de auditoria prematuramente.
E a replicação lógica?
DDL de publicador/assinante deve estar no escopo de auditoria do migrador. Alterações de linha são replicadas, a auditoria permanece no gravador primário.
Impacto no desempenho?
Moderado em QPS alto com registro all amplo. Ajuste o escopo; use amostragem apenas se os reguladores aceitarem (raro).
Mínimo para SOC2?
Logs de sessão, logs de DDL, ações administrativas, retenção centralizada, evidências de revisão trimestral.
Quanto tempo habilitar antes da auditoria?
30 dias de logs de base antes da semana de auditoria comprovam operação contínua, não ativação de última hora.
Relacionados
- Noções Básicas de Registro - log_line_prefix e volume
- Audit Triggers vs pgaudit - padrões em nível de linha
- Consultas Forenses - investigar acesso
- Noções Básicas de Segurança - separação de roles
- Melhores Práticas de Segurança - hardening mais amplo
Versões da Stack: Esta página foi escrita para PostgreSQL 18.4 (estável 18, manutenção 17), pgvector 0.8+, PgBouncer 1.x, Patroni 3.x, e PostGIS 3.5+.