Configuration de l’extension pgAudit - 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.

Configuration de l’extension pgAudit

Pour configurer l’extension pgAudit sur votre instance de base de données RDS pour PostgreSQL , vous devez d’abord ajouter pgAudit aux bibliothèques partagées sur le groupe de paramètres de base de données personnalisé pour votre instance de base de données RDS pour PostgreSQL. Pour plus d'informations sur la création d'un groupe de paramètres de cluster de bases de données, consultez Groupes de paramètres pour Amazon RDS. Ensuite, vous installez l'extension pgAudit. Enfin, vous spécifiez les bases de données et les objets que vous souhaitez auditer. Les procédures de cette section vous guident. Pour ce faire, vous pouvez utiliser la AWS Management Console ou la AWS CLI.

Vous devez disposer d’autorisations en tant que rôle rds_superuser pour effectuer toutes ces tâches.

Les étapes suivantes supposent que votre instance de base de données RDS pour PostgreSQL est associé(e) à un groupe de paramètres de bases de données personnalisé.

Configurer l'extension pgAudit
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse https://console.aws.amazon.com/rds/.

  2. Dans le panneau de navigation, choisissez l’instance de base de données RDS pour PostgreSQL.

  3. Ouvrez l’onglet Configuration de Instance de base de données RDS pour PostgreSQL. Parmi les détails de l’instance, trouvez le lien Groupe de paramètres.

  4. Cliquez sur le lien pour ouvrir les paramètres personnalisés associés à votre Instance de base de données RDS pour PostgreSQL.

  5. Dans le champ de recherche Parameters (Paramètres), tapez shared_pre pour trouver le paramètre shared_preload_libraries.

  6. Choisissez Edit parameters (Modifier les paramètres) pour accéder aux valeurs des propriétés.

  7. Ajoutez pgaudit à la liste dans le champ Values (Valeurs). Utilisez une virgule pour séparer les éléments de la liste de valeurs.

    Image du paramètre shared_preload_libaries avec pgAudit ajouté.
  8. Redémarrez l’instance de base de données RDS pour PostgreSQL afin que vos modifications du paramètre shared_preload_libraries prennent effet.

  9. Lorsque l'instance est disponible, vérifiez que pgAudit a été initialisé. Utilisez psql pour vous connecter à l’instance de base de données RDS pour PostgreSQL, puis exécutez la commande suivante.

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)
  10. Une fois pgAudit initialisé, vous pouvez maintenant créer l’extension. Vous devez créer l'extension après avoir initialisé la bibliothèque, car l'extension pgaudit installe des déclencheurs d'événements pour auditer les instructions du langage de définition des données (DDL).

    CREATE EXTENSION pgaudit;
  11. Fermez la session psql.

    labdb=> \q
  12. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse https://console.aws.amazon.com/rds/.

  13. Trouvez le paramètre pgaudit.log dans la liste et définissez la valeur appropriée pour votre cas d'utilisation. Par exemple, la définition du paramètre pgaudit.log en write comme indiqué dans l'image suivante permet de capturer des insertions, des mises à jour, des suppressions et d'autres types de modifications dans le journal.

    Image du paramètre pgaudit.log avec la définition.

    Vous pouvez également choisir l’une des valeurs suivantes pour le paramètre pgaudit.log.

    • none – La valeur par défaut. Aucune modification de base de données n’est journalisée.

    • all – Journalise tout (lecture, écriture, fonction, rôle, ddl, divers).

    • ddl – Journalise toutes les instructions en langage de définition de données (DDL) qui ne sont pas incluses dans la classe ROLE.

    • function – Journalise les appels de fonction et les blocs DO.

    • misc – Journalise diverses commandes, telles que DISCARD, FETCH, CHECKPOINT, VACUUM et SET.

    • read – Journalise SELECT et COPY lorsque la source est une relation (comme une table) ou une requête.

    • role – Journalise les instructions relatives aux rôles et privilèges, telles que GRANT, REVOKE, CREATE ROLE, ALTER ROLE et DROP ROLE.

    • write – Journalise INSERT, UPDATE, DELETE, TRUNCATE et COPY lorsque la destination est une relation (table).

  14. Sélectionnez Enregistrer les modifications.

  15. Ouvrez la console Amazon RDS à l’adresse https://console.aws.amazon.com/rds/.

  16. Choisissez l’instance de base de données RDS pour PostgreSQL dans la liste des bases de données.

Configurer pgAudit

Pour configurer pgAudit à l'aide de l'AWS CLI, vous devez appeler l'opération modify-db-parameter-group afin de modifier les paramètres du journal d'audit dans votre groupe de paramètres personnalisé, comme indiqué dans la procédure suivante.

  1. Utilisez la commande AWS CLI suivante pour ajouter pgaudit au paramètre shared_preload_libraries.

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=shared_preload_libraries,ParameterValue=pgaudit,ApplyMethod=pending-reboot" \ --region aws-region
  2. Utilisez la commande AWS CLI suivante pour redémarrer l’instance de base de données RDS pour PostgreSQL afin que la bibliothèque pgAudit soit initialisée.

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  3. Lorsque l’instance est disponible, vous pouvez vérifier que pgaudit a été initialisé. Utilisez psql pour vous connecter à l’instance de base de données RDS pour PostgreSQL, puis exécutez la commande suivante.

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)

    Une fois pgAudit initialisé, vous pouvez maintenant créer l’extension.

    CREATE EXTENSION pgaudit;
  4. Fermez la session psql afin de pouvoir utiliser l’AWS CLI.

    labdb=> \q
  5. Utilisez la commande AWS CLI suivante pour spécifier les classes d'instructions qui doivent être journalisées par journalisation des audits de session. L'exemple définit le paramètre pgaudit.log sur write, qui capture les insertions, les mises à jour et les suppressions dans le journal.

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=pgaudit.log,ParameterValue=write,ApplyMethod=pending-reboot" \ --region aws-region

    Vous pouvez également choisir l’une des valeurs suivantes pour le paramètre pgaudit.log.

    • none – La valeur par défaut. Aucune modification de base de données n’est journalisée.

    • all – Journalise tout (lecture, écriture, fonction, rôle, ddl, divers).

    • ddl – Journalise toutes les instructions en langage de définition de données (DDL) qui ne sont pas incluses dans la classe ROLE.

    • function – Journalise les appels de fonction et les blocs DO.

    • misc – Journalise diverses commandes, telles que DISCARD, FETCH, CHECKPOINT, VACUUM et SET.

    • read – Journalise SELECT et COPY lorsque la source est une relation (comme une table) ou une requête.

    • role – Journalise les instructions relatives aux rôles et privilèges, telles que GRANT, REVOKE, CREATE ROLE, ALTER ROLE et DROP ROLE.

    • write – Journalise INSERT, UPDATE, DELETE, TRUNCATE et COPY lorsque la destination est une relation (table).

    Redémarrez l’instance de base de données RDS pour PostgreSQL, à l’aide de la commande AWS CLI suivante.

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region