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
Accedi alla AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/
. -
Nel riquadro di navigazione, scegli l' istanza database RDS per PostgreSQL.
-
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).
-
Scegli il collegamento per aprire i parametri personalizzati associati l'istanza database RDS per PostgreSQL.
-
Nel campo di ricerca Parametri, digita
shared_preper trovare il parametroshared_preload_libraries. -
Scegli Edit parameters (Modifica parametri) per accedere ai valori delle proprietà.
-
Aggiungi
pgauditall'elenco nel campo Values (Valori). Utilizza una virgola per separare gli elementi nell'elenco di valori.
Riavvia l'istanza database RDS per PostgreSQL in modo che la modifica al parametro
shared_preload_librariesdiventi effettiva.Quando l'istanza è disponibile, verifica che pgAudit sia stato inizializzato. Utilizza
psqlper 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. L'estensione deve essere creata dopo aver inizializzato la libreria perché l'estensione
pgauditinstalla i trigger evento per l'audit delle istruzioni DDL (Data Definition Language).CREATE EXTENSION pgaudit;Chiudi la sessione
psql.labdb=>\qAccedi alla AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/
. Trova il parametro
pgaudit.lognell'elenco e impostalo sul valore appropriato per il caso d'uso. Ad esempio, se si imposta il parametropgaudit.logsuwritecome mostrato nell'immagine seguente, gli inserimenti, gli aggiornamenti, le eliminazioni e alcuni altri tipi di modifiche vengono acquisiti nel registro.
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,VACUUMeSET.read: registra
SELECTeCOPYquando 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 ROLEeDROP ROLE.write: registra
INSERT,UPDATE,DELETE,TRUNCATEeCOPYquando la destinazione è una relazione (tabella).
Seleziona Save changes (Salva modifiche).
Apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/
. 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.
Utilizza il seguente comando AWS CLI per aggiungere
pgaudital parametroshared_preload_libraries.aws rds modify-db-parameter-group \ --db-parameter-group-namecustom-param-group-name\ --parameters "ParameterName=shared_preload_libraries,ParameterValue=pgaudit,ApplyMethod=pending-reboot" \ --regionaws-region-
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-identifieryour-instance\ --regionaws-region Quando l'istanza è disponibile, verifica che
pgauditsia stato inizializzato. Utilizzapsqlper 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;Chiudi la sessione
psqlin modo da poter utilizzare AWS CLI.labdb=>\qUtilizza 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.logsuwrite, che acquisisce inserimenti, aggiornamenti ed eliminazioni nel registro.aws rds modify-db-parameter-group \ --db-parameter-group-namecustom-param-group-name\ --parameters "ParameterName=pgaudit.log,ParameterValue=write,ApplyMethod=pending-reboot" \ --regionaws-regionPuoi 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,VACUUMeSET.read: registra
SELECTeCOPYquando 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 ROLEeDROP ROLE.write: registra
INSERT,UPDATE,DELETE,TRUNCATEeCOPYquando 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-identifieryour-instance\ --regionaws-region