Qu’est-ce qu’Aurora PostgreSQL Audit Trail ?
Introduction
Une piste d’audit Aurora PostgreSQL est un mécanisme de tenue de registres complet qui capture et documente toutes les activités significatives de la base de données, fournissant aux organisations des informations critiques sur les interactions avec la base de données, les modèles d’accès et les événements de sécurité potentiels. À une époque de menaces croissantes pour la cybersécurité et de exigences de conformité strictes, comprendre et mettre en œuvre des pistes d’audit de base de données robustes est devenu essentiel pour protéger les données sensibles et maintenir l’intégrité organisationnelle.
Selon le Guide de sécurité des bases de données NIST, l’audit de base de données robuste est crucial pour détecter les tentatives d’accès non autorisées, surveiller les opérations privilégiées et conserver les preuves pour les enquêtes de sécurité et les analyses médico-légales. Ce guide présente une mise en œuvre pratique en utilisant les services AWS.
Comprendre Aurora PostgreSQL Audit Trail
Une piste d’audit dans Amazon Aurora PostgreSQL fournit un suivi systématique des changements de base de données, essentiel pour la conformité et la surveillance de la sécurité. Ce guide présente une mise en œuvre pratique en utilisant les services AWS.
Aperçu de l’architecture
Le système d’audit utilise trois composants principaux :
- Base de données source : Instance principale d’Aurora PostgreSQL
- AWS DMS : Service de capture de données modifiées
- Base de données de destination : Stockage des journaux d’audit
Détails de la mise en œuvre
Activation des fonctionnalités d’audit
Tout d’abord, activez l’audit de base dans Aurora PostgreSQL :
-- Activer la journalisation pour toutes les opérations DDL
ALTER SYSTEM SET log_statement = 'ddl';
-- Activer la journalisation pour toutes les opérations
ALTER SYSTEM SET log_statement = 'all';
-- Activer la journalisation des connexions
ALTER SYSTEM SET log_connections = 'on';
ALTER SYSTEM SET log_disconnections = 'on';
Conception de schéma
Exemple de table source :
CREATE TABLE items (
item_id integer PRIMARY KEY,
name varchar(64),
price decimal(12,2),
created_at timestamp DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp DEFAULT CURRENT_TIMESTAMP
);
Table de journal d’audit :
CREATE TABLE items_audit_log (
audit_id bigserial PRIMARY KEY,
item_id integer,
name varchar(64),
price decimal(12,2),
committed_at timestamp,
operation character(1),
transaction_id character varying,
old_row_data jsonb,
user_id text DEFAULT current_user
);
-- Créer un index pour de meilleures performances de requête
CREATE INDEX idx_items_audit_committed_at ON items_audit_log(committed_at);
CREATE INDEX idx_items_audit_item_id ON items_audit_log(item_id);
Composants clés de l’audit Aurora PostgreSQL
Configuration AWS DMS
- Utilise
$AR_H_COMMIT_TIMESTAMP
pour un timing précis - Enregistre les types d’opération (I/U/D)
(En savoir plus sur la configuration de DMS)
Exemple de paramètres de tâche DMS :
{
"TargetMetadata": {
"TargetSchema": "",
"SupportLobs": true,
"FullLobMode": false,
"LobChunkSize": 64,
"LimitedSizeLobMode": true,
"LobMaxSize": 32768
},
"FullLoadSettings": {
"TargetTablePrepMode": "DROP_AND_CREATE"
}
}
Fonction déclencheur
CREATE OR REPLACE FUNCTION process_audit_trail()
RETURNS TRIGGER AS $$
BEGIN
IF (TG_OP = 'DELETE') THEN
INSERT INTO items_audit_log (
item_id, name, price, committed_at,
operation, transaction_id, old_row_data
)
VALUES (
OLD.item_id, OLD.name, OLD.price, CURRENT_TIMESTAMP,
'D', txid_current()::text, to_jsonb(OLD)
);
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
INSERT INTO items_audit_log (
item_id, name, price, committed_at,
operation, transaction_id, old_row_data
)
VALUES (
NEW.item_id, NEW.name, NEW.price, CURRENT_TIMESTAMP,
'U', txid_current()::text, to_jsonb(OLD)
);
RETURN NEW;
ELSIF (TG_OP = 'INSERT') THEN
INSERT INTO items_audit_log (
item_id, name, price, committed_at,
operation, transaction_id, old_row_data
)
VALUES (
NEW.item_id, NEW.name, NEW.price, CURRENT_TIMESTAMP,
'I', txid_current()::text, NULL
);
RETURN NEW;
END IF;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER items_audit_trigger
AFTER INSERT OR UPDATE OR DELETE ON items
FOR EACH ROW EXECUTE FUNCTION process_audit_trail();
Exemples de requêtes
-- Voir les changements récents
SELECT * FROM items_audit_log
ORDER BY committed_at DESC
LIMIT 10;
-- Voir les changements pour un article spécifique
SELECT * FROM items_audit_log
WHERE item_id = 123
ORDER BY committed_at;
-- Voir les changements par utilisateur spécifique
SELECT * FROM items_audit_log
WHERE user_id = 'admin'
AND committed_at >= CURRENT_DATE - INTERVAL '1 day';
Vous pouvez voir les exemples de requêtes et la sortie de la table d’audit ci-dessous :
Meilleures pratiques
- Surveiller le délai de réplication
- Chiffrer les données en transit et au repos
- Mettre en œuvre les rôles IAM appropriés
- Archiver régulièrement les anciennes données d’audit
- Mettre en place des alertes pour les activités suspectes
Pour un guide de mise en œuvre détaillé, consultez le blog AWS Database.
Fonctionnalités avancées
Pour une sécurité améliorée, envisagez d’intégrer avec :
- AWS Database Activity Streams
- Extension pgAudit pour PostgreSQL
- DataSunrise pour un audit avancé
DataSunrise : capacités complètes de piste d’audit PostgreSQL
Bien que les outils d’audit natifs fournissent un suivi essentiel, la plateforme DataSunrise élève les capacités de piste d’audit pour les environnements d’entreprise :
Fonctionnalités de surveillance améliorées
- Règles d’audit intelligentes :
- Mécanismes de suivi personnalisables
- Contrôle précis des activités surveillées
- Analyse comportementale :
- Détecte des schémas d’accès inhabituels
- Identifie les menaces potentielles à la sécurité
- Alertes en temps réel :
- Notifications instantanées des activités suspectes
- Détection proactive des menaces
Avantages commerciaux de la mise en œuvre de la piste d’audit Aurora PostgreSQL
Sécurité améliorée
- Détection et alertes des menaces en temps réel
- Capacités complètes d’enquête médico-légale
- Identification proactive des schémas suspects
Conformité réglementaire
- Adhésion au RGPD, HIPAA, SOX et PCI DSS
- Rapports de conformité automatisés
- Démonstration claire des contrôles de sécurité
Efficacité opérationnelle
- Informations sur l’optimisation des performances de la base de données
- Visibilité complète des activités des utilisateurs
- Processus d’audit et rapports rationalisés
Conclusion
Une piste d’audit pour Amazon Aurora PostgreSQL est plus qu’une obligation de conformité – c’est un outil critique de sécurité et d’intelligence opérationnelle. Bien qu’AWS offre des capacités d’audit natives puissantes, les environnements d’entreprise bénéficient de couches supplémentaires de surveillance et d’analyse.
DataSunrise offre une solution complète qui étend les capacités d’audit natives, fournissant des analyses approfondies, une détection avancée des menaces et une gestion fluide de la conformité.
Passez à l’étape suivante
Prêt à transformer votre stratégie de piste d’audit ? Planifiez une démonstration personnalisée et découvrez comment la sécurité avancée des bases de données peut protéger vos actifs de données les plus précieux.