Audit d'objets de base de données - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Audit d'objets de base de données

Une fois que pgAudit est défini sur votre instance de base de données RDS for PostgreSQL et qu'il est configuré en fonction de vos besoins, des informations plus détaillées sont capturées dans le journal PostgreSQL. Par exemple, alors que la configuration de journalisation PostgreSQL par défaut identifie la date et l'heure auxquelles une modification a été apportée à une table de base de données, avec l'extension pgAudit, l'entrée du journal peut inclure le schéma, l'utilisateur qui a effectué la modification et d'autres détails en fonction de la manière dont les paramètres de l'extension sont configurés. Vous pouvez configurer l'audit pour suivre les modifications de différentes manières.

  • Pour chaque session, par utilisateur. Au niveau de la session, vous pouvez capturer le texte de commande complet.

  • Pour chaque objet, par utilisateur et par base de données.

La fonctionnalité d'audit des objets est activée lorsque vous créez le rôle rds_pgaudit sur votre système, puis que vous ajoutez ce rôle au paramètre pgaudit.role dans votre groupe de paramètres personnalisé. Par défaut, le paramètre pgaudit.role n'est pas défini et la seule valeur autorisée est rds_pgaudit. Les étapes suivantes supposent que pgaudit a été initialisé et que vous avez créé l'extension pgaudit en suivant la procédure décrite dans Configuration de l’extension pgAudit.

Image du fichier journal PostgreSQL après la configuration de pgAudit.

Comme le montre cet exemple, la ligne « LOG: AUDIT: SESSION » fournit des informations sur la table et son schéma, entre autres détails.

Configurer l'audit d'objets
  1. Utilisez psql pour vous connecter à l'instance de base de données RDS for PostgreSQL..

    psql --host=your-instance-name.aws-region.rds.amazonaws.com --port=5432 --username=postgrespostgres --password --dbname=labdb
  2. Créez un rôle de base de données appelé rds_pgaudit à l'aide de la commande suivante.

    labdb=> CREATE ROLE rds_pgaudit; CREATE ROLE labdb=>
  3. Fermez la session psql.

    labdb=> \q

    Dans les étapes suivantes, utilisez l'AWS CLI pour modifier les paramètres du journal d'audit dans votre groupe de paramètres personnalisé.

  4. Utilisez la commande AWS CLI suivante pour définir le paramètre pgaudit.role à rds_pgaudit. Par défaut, ce paramètre est vide et rds_pgaudit est la seule valeur autorisée.

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=pgaudit.role,ParameterValue=rds_pgaudit,ApplyMethod=pending-reboot" \ --region aws-region
  5. Utilisez la commande AWS CLI suivante pour redémarrer l'instance de base de données RDS for PostgreSQL afin que les modifications apportées aux paramètres prennent effet.

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  6. Exécutez la commande suivante pour confirmer que pgaudit.role est défini sur rds_pgaudit.

    SHOW pgaudit.role; pgaudit.role ------------------ rds_pgaudit

Pour tester la journalisation pgAudit, vous pouvez exécuter plusieurs exemples de commandes que vous souhaitez auditer. Par exemple, vous pouvez exécuter les commandes suivantes.

CREATE TABLE t1 (id int); GRANT SELECT ON t1 TO rds_pgaudit; SELECT * FROM t1; id ---- (0 rows)

Les journaux de base de données doivent contenir une entrée similaire à ce qui suit.

... 2017-06-12 19:09:49 UTC:...:rds_test@postgres:[11701]:LOG: AUDIT: OBJECT,1,1,READ,SELECT,TABLE,public.t1,select * from t1; ...

Pour obtenir des informations sur l'affichage des journaux, veuillez consulter Surveillance des fichiers journaux Amazon RDS.

Pour en savoir plus sur l'extension pgAudit, veuillez consulter pgAudit sur GitHub.