Configurazione dell'estensione pgAudit - Amazon Relational Database Service

Configurazione dell'estensione pgAudit

Per configurare l'estensione pgAudit sull'istanza database RDS per PostgreSQL , aggiungi innanzitutto pgAudit alle librerie condivise nel gruppo di parametri database personalizzato per l'istanza database RDS per PostgreSQL Per informazioni sulla creazione di un gruppo di parametri database personalizzato, consulta Gruppi di parametri per Amazon RDS. Quindi, installa l'estensione pgAudit. Infine, specifica i database e gli oggetti di cui eseguire l'audit. Le procedure in questa sezione mostrano come fare. Puoi utilizzare la AWS Management Console o l'AWS CLI.

Per eseguire tutte queste attività, sono richieste autorizzazioni come il ruolo rds_superuser.

Le fasi seguenti si basano sull'ipotesi che l'istanza database RDS per PostgreSQL sia associata a un gruppo di parametri database personalizzato.

Per impostare l'estensione pgAudit
  1. Accedi alla AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel riquadro di navigazione, scegli l' istanza database RDS per PostgreSQL.

  3. Apri la scheda Configurazione per l' l'istanza database RDS per PostgreSQL. Tra i dettagli dell'istanza, individua il collegamento Parameter group (Gruppo di parametri).

  4. Scegli il collegamento per aprire i parametri personalizzati associati l'istanza database RDS per PostgreSQL.

  5. Nel campo di ricerca Parametri, digita shared_pre per trovare il parametro shared_preload_libraries.

  6. Scegli Edit parameters (Modifica parametri) per accedere ai valori delle proprietà.

  7. Aggiungi pgaudit all'elenco nel campo Values (Valori). Utilizza una virgola per separare gli elementi nell'elenco di valori.

    Immagine del parametro shared_preload_libaries con pgAudit aggiunto.
  8. Riavvia l'istanza database RDS per PostgreSQL in modo che la modifica al parametro shared_preload_libraries diventi effettiva.

  9. Quando l'istanza è disponibile, verifica che pgAudit sia stato inizializzato. Utilizza psql per connetterti all'istanza database RDS per PostgreSQL, quindi esegui il comando seguente.

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)
  10. Con pgAudit inizializzato, puoi ora creare l'estensione. L'estensione deve essere creata dopo aver inizializzato la libreria perché l'estensione pgaudit installa i trigger evento per l'audit delle istruzioni DDL (Data Definition Language).

    CREATE EXTENSION pgaudit;
  11. Chiudi la sessione psql.

    labdb=> \q
  12. Accedi alla AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  13. Trova il parametro pgaudit.log nell'elenco e impostalo sul valore appropriato per il caso d'uso. Ad esempio, se si imposta il parametro pgaudit.log su write come mostrato nell'immagine seguente, gli inserimenti, gli aggiornamenti, le eliminazioni e alcuni altri tipi di modifiche vengono acquisiti nel registro.

    Immagine del parametro pgaudit.log con l'impostazione.

    Puoi anche scegliere uno dei seguenti valori per il parametro pgaudit.log.

    • none: valore predefinito. Non viene registrata alcuna modifica al database.

    • all: registra tutto (read, write, function, role, ddl, misc).

    • ddl: registra tutte le istruzioni DDL (Data Definition Language) non incluse nella classe ROLE.

    • function: registra le chiamate di funzione e blocchi DO.

    • misc: registra vari comandi come DISCARD, FETCH, CHECKPOINT, VACUUM e SET.

    • read: registra SELECT e COPY quando l'origine è una relazione (ad esempio una tabella) o una query.

    • role: registra le istruzioni correlate a ruoli e privilegi, ad esempio GRANT, REVOKE, CREATE ROLE, ALTER ROLE e DROP ROLE.

    • write: registra INSERT, UPDATE, DELETE, TRUNCATE e COPY quando la destinazione è una relazione (tabella).

  14. Seleziona Save changes (Salva modifiche).

  15. Apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  16. Nell’elenco Database, scegli l’istanza database RDS per PostgreSQL.

Per configurare pgAudit

Per configurare pgAudit utilizzando AWS CLI, chiama l'operazione modify-db-parameter-group per modificare i parametri del registro di audit nel gruppo di parametri personalizzati, come illustrato nella procedura seguente.

  1. Utilizza il seguente comando AWS CLI per aggiungere pgaudit al parametro 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. Utilizza il comando AWS CLI seguente per riavviare istanza database RDS per PostgreSQL in modo che la libreria pgaudit venga inizializzata.

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  3. Quando l'istanza è disponibile, verifica che pgaudit sia stato inizializzato. Utilizza psql per connetterti all'istanza database RDS per PostgreSQL, quindi esegui il comando seguente.

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

    Con pgAudit inizializzato, puoi ora creare l'estensione.

    CREATE EXTENSION pgaudit;
  4. Chiudi la sessione psql in modo da poter utilizzare AWS CLI.

    labdb=> \q
  5. Utilizza il comando AWS CLI seguente per specificare le classi di istruzioni che desideri registrare mediante la registrazione di audit della sessione. L'esempio imposta il parametro pgaudit.log su write, che acquisisce inserimenti, aggiornamenti ed eliminazioni nel registro.

    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

    Puoi anche scegliere uno dei seguenti valori per il parametro pgaudit.log.

    • none: valore predefinito. Non viene registrata alcuna modifica al database.

    • all: registra tutto (read, write, function, role, ddl, misc).

    • ddl: registra tutte le istruzioni DDL (Data Definition Language) non incluse nella classe ROLE.

    • function: registra le chiamate di funzione e blocchi DO.

    • misc: registra vari comandi come DISCARD, FETCH, CHECKPOINT, VACUUM e SET.

    • read: registra SELECT e COPY quando l'origine è una relazione (ad esempio una tabella) o una query.

    • role: registra le istruzioni correlate a ruoli e privilegi, ad esempio GRANT, REVOKE, CREATE ROLE, ALTER ROLE e DROP ROLE.

    • write: registra INSERT, UPDATE, DELETE, TRUNCATE e COPY quando la destinazione è una relazione (tabella).

    Riavvia l'istanza database RDS per PostgreSQL utilizzando il comando AWS CLI seguente.

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