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 pgAudit configuré sur votre pour l'SQLinstance de base de données Postgre et configuré selon vos besoins, des informations plus détaillées sont capturées dans le journal SQL Postgre. Par exemple, alors que la configuration de SQL journalisation Postgre par défaut identifie la date et l'heure auxquelles une modification a été apportée dans une table de base de données, avec l'pgAuditextension, 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 façon 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' pgAudit extension.

Image du fichier SQL journal Postgre après la configuration. 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-le psql pour vous connecter à l'. RDSpour une SQL instance de base de données Postgre.

    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

    Au cours des prochaines étapes, utilisez AWS CLI pour modifier les paramètres du journal d'audit dans votre groupe de paramètres personnalisé.

  4. Utilisez ce qui suit AWS CLI commande pour définir le pgaudit.role paramètre surrds_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 ce qui suit AWS CLI commande pour redémarrer l' pour SQL instance de base de données Postgre 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 pgAudit journalisation, 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 RDSAmazon.

Pour en savoir plus sur l' pgAudit extension, reportez-vous à pgAuditla section suivante GitHub.