Utilizzo dell'audit avanzato con un cluster di database Amazon Aurora MySQL - Amazon Aurora

Utilizzo dell'audit avanzato con un cluster di database Amazon Aurora MySQL

Puoi utilizzare la funzionalità di audit avanzato ad alte prestazioni in Amazon Aurora MySQL per controllare l'attività del database. A questo proposito, devi abilitare la raccolta dei registri di controllo impostando vari parametri del cluster di database. Quando l'audit avanzato è abilitato, puoi utilizzarlo per registrare qualsiasi combinazione di eventi supportati.

Puoi visualizzare o scaricare i registri di verifica per esaminare le informazioni di verifica per un'istanza database alla volta. Per farlo, puoi utilizzare le procedure in Monitoraggio dei file di log di Amazon Aurora.

Suggerimento

Per un cluster Aurora DB contenente più istanze database, potrebbe essere più conveniente esaminare i registri di verifica per tutte le istanze del cluster. Per farlo, puoi utilizzare CloudWatch Logs. Puoi attivare un'impostazione a livello di cluster per pubblicare i dati del registro di verifica di Aurora MySQL in un gruppo di registri in CloudWatch. Quindi puoi visualizzare, filtrare e cercare i registri di verifica tramite l'interfaccia di CloudWatch. Per ulteriori informazioni, consulta Pubblicazione di log Amazon Aurora MySQL in Amazon CloudWatch Logs.

Abilitazione dell'audit avanzato

Utilizza i parametri descritti in questa sezione per abilitare e configurare l'audit avanzato per il cluster di database.

Utilizza il parametro server_audit_logging per abilitare o disabilitare Advanced Auditing.

Utilizza il parametro server_audit_events per specificare quali eventi registrare.

Utilizzare i parametri server_audit_incl_users e server_audit_excl_users per specificare chi deve essere controllato. Per impostazione predefinita, vengono verificati tutti gli utenti. Per informazioni dettagliate su come funzionano questi parametri quando uno o entrambi sono lasciati vuoti o gli stessi nomi utente sono specificati in entrambi, consulta server_audit_incl_users e server_audit_excl_users.

Configura l'audit avanzato impostando questi parametri nel gruppo di parametri utilizzato dal tuo cluster di database. È possibile utilizzare la procedura visualizzata in Modifica dei parametri in un gruppo di parametri database in Amazon Aurora per modificare i parametri del cluster di database con la AWS Management Console. Per modificare i parametri del cluster database a livello di programmazione, puoi utilizzare il comando della AWS CLI modify-db-cluster-parameter-group o l’API Amazon RDS ModifyDBClusterParameterGroup.

La modifica di questi parametri non richiede un riavvio del cluster database quando il gruppo di parametri è già associato al cluster. Quando associ il gruppo di parametri al cluster per la prima volta, devi riavviare il cluster.

server_audit_logging

Abilita o disabilita l'audit avanzato. L'impostazione predefinita di questo parametro è OFF; impostarlo su ON per abilitare la verifica avanzata.

Nessun dato di verifica viene visualizzato nei registri a meno che non si definiscano anche uno o più tipi di eventi da sottoporre a verifica utilizzando il parametro server_audit_events.

Per confermare che i dati di audit siano registrati per un'istanza database, verifica che alcuni file di log per quell'istanza abbiano i nomi del modulo audit/audit.log.other_identifying_information. Per visualizzare i nomi dei file di log, segui la procedura descritta in Visualizzazione ed elenco dei file di log del database.

server_audit_events

Contiene un elenco di eventi delimitati da virgola da registrare. Gli eventi devono essere in maiuscolo e non devono esserci spazi bianchi tra gli elementi dell'elenco (ad esempio,: CONNECT,QUERY_DDL. L'impostazione predefinita di questo parametro è una stringa vuota.

Puoi registrare qualsiasi combinazione dei seguenti eventi:

  • CONNECT – Registra le connessioni riuscite e quelle non riuscite nonché le disconnessioni. Questo evento include informazioni sull'utente.

  • QUERY – Registra tutte le query in testo normale, incluse quelle non riuscite a causa di errori di sintassi o di autorizzazione.

    Suggerimento

    Con questo tipo di evento attivato, i dati di verifica includono informazioni sul monitoraggio continuo e sul controllo dell’integrità eseguiti automaticamente da Aurora. Se sei interessato solo a particolari tipi di operazioni, puoi utilizzare i tipi di eventi più specifici. Puoi inoltre utilizzare l'interfaccia CloudWatch per cercare nei log eventi relativi a database, tabelle o utenti specifici.

  • QUERY_DCL – Simile all'evento QUERY, ma restituisce solo le query DCL (Data Control Language), ad esempio GRANT, REVOKE e così via.

  • QUERY_DDL –Simile all'evento QUERY, ma restituisce solo le query DDL (Data Definition Language), ad esempio CREATE, ALTER e così via.

  • QUERY_DML – Simile all'evento QUERY, ma restituisce solo le query DML (Data Manipulation Language), ad esempio INSERT, UPDATE e così via.

  • TABLE –Registra le tabelle interessate dall'esecuzione della query.

Nota

In Aurora non esiste alcun filtro che escluda determinate query dai log di audit. Per escludere le query SELECT, è necessario escludere tutte le istruzioni DML.

Se un determinato utente riporta queste query SELECT interne nei log di audit, puoi escludere tale utente impostando il parametro del cluster di database server_audit_excl_users. Tuttavia, se quell’utente viene utilizzato anche in altre attività e non può essere escluso, non esiste altra opzione per escludere le query SELECT.

server_audit_incl_users

Contiene l'elenco di nomi utente delimitati da virgole per gli utenti la cui attività è registrata. Non ci devono essere spazi bianchi tra gli elementi dell'elenco. Ad esempio: user_3,user_4. L'impostazione predefinita di questo parametro è una stringa vuota. La lunghezza massima è 1024 caratteri. I nomi utente specificati devono corrispondere ai valori nella colonna User della tabella mysql.user. Per ulteriori informazioni sui nomi utente, consulta Nomi e password dell'account utente nella documentazione di MySQL.

Se server_audit_incl_users e server_audit_excl_users sono vuoti (impostazione predefinita), l'audit riguarderà tutti gli utenti.

Se aggiungi utenti a server_audit_incl_users e lasci vuoto server_audit_excl_users, saranno controllati solo quegli utenti.

Se aggiungi utenti a server_audit_excl_users e lasci vuoto server_audit_incl_users, saranno controllati tutti gli utenti, eccetto quelli elencati in server_audit_excl_users.

Se aggiungi gli stessi utenti a server_audit_excl_users e server_audit_incl_users, quegli utenti saranno controllati. Quando lo stesso utente è elencato in entrambe le impostazioni, a server_audit_incl_usersviene data una priorità maggiore.

Gli eventi di connessione e disconnessione non sono interessati da questa variabile; sono sempre registrati se specificato. Un utente è registrato anche se è specificato nel parametro server_audit_excl_users, perché server_audit_incl_users ha una priorità maggiore.

server_audit_excl_users

Contiene l'elenco di nomi utente delimitati da virgole per gli utenti la cui attività non è registrata. Non ci devono essere spazi bianchi tra gli elementi dell'elenco. Ad esempio: rdsadmin,user_1,user_2. L'impostazione predefinita di questo parametro è una stringa vuota. La lunghezza massima è 1024 caratteri. I nomi utente specificati devono corrispondere ai valori nella colonna User della tabella mysql.user. Per ulteriori informazioni sui nomi utente, consulta Nomi e password dell'account utente nella documentazione di MySQL.

Se server_audit_incl_users e server_audit_excl_users sono vuoti (impostazione predefinita), l'audit riguarderà tutti gli utenti.

Se aggiungi utenti a server_audit_excl_users e lasci vuoto server_audit_incl_users, solo quegli utenti elencati in server_audit_excl_users non saranno controllati, mentre tutti gli altri lo saranno.

Se aggiungi gli stessi utenti a server_audit_excl_users e server_audit_incl_users, quegli utenti saranno controllati. Quando lo stesso utente è elencato in entrambe le impostazioni, a server_audit_incl_usersviene data una priorità maggiore.

Gli eventi di connessione e disconnessione non sono interessati da questa variabile; sono sempre registrati se specificato. Un utente è registrato se è anche specificato nel parametro server_audit_incl_users, in quanto tale impostazione è prioritaria rispetto a server_audit_excl_users.

Visualizzazione dei log di audit

Puoi visualizzare e scaricare i log di audit utilizzando la console. Nella pagina Databases (Database), scegliere l’istanza database per visualizzarne i dettagli, quindi scorrere verso la sezione Logs (Log). I registri di verifica prodotti dalla caratteristica Advanced Auditing hanno i nomi del modulo audit/audit.log.other_identifying_information.

Per scaricare un file di log, selezionare il file nella sezione Logs (Log), quindi scegliere Download (Scarica).

Puoi anche ottenere un elenco di file di log utilizzando il comando describe-db-log-files dell’AWS CLI. Puoi scaricare il contenuto di un file di log utilizzando il comando download-db-log-file-portion dell'AWS CLI. Per ulteriori informazioni, consulta Visualizzazione ed elenco dei file di log del database e Download di un file di log di database.

Dettagli dei log di audit

I file di log sono rappresentati come file con valori delimitati da virgole (CSV) in formato UTF-8. Le query sono inoltre racchiuse tra virgolette singole (').

Il log di audit viene memorizzato separatamente nell’archiviazione locale di ciascuna istanza database Aurora MySQL. Ogni istanza distribuisce le operazioni di scrittura su quattro file di log alla volta. Il file di log può avere dimensioni massime di 100 MB. Quando viene raggiunto questo limite non configurabile, Aurora effettua la rotazione dei file e genera un nuovo file.

Suggerimento

Le voci dei log non sono in ordine sequenziale. Per ordinare le voci, utilizza il valore del timestamp. Per visualizzare gli ultimi eventi, potrebbe essere necessario esaminare tutti i file di log. Per una maggiore flessibilità nell'ordinamento e nella ricerca dei dati dei registri, attiva l'impostazione per caricare i registri di verifica su CloudWatch e visualizzarli utilizzando l'interfaccia CloudWatch.

Per visualizzare i dati di verifica con più tipi di campi e con output in formato JSON, puoi inoltre utilizzare la caratteristica Database Activity Streams (Flussi di attività di database). Per ulteriori informazioni, consulta Monitoraggio di Amazon Aurora tramite i flussi di attività del database.

I file dei log di audit includono le seguenti informazioni delimitate da virgola, in righe, nell'ordine specificato:

Campo Descrizione

timestamp

Il timestamp Unix per l'evento registrato con una precisione al microsecondo.

serverhost

Il nome dell'istanza per cui l'evento viene registrato.

username

Il nome utente connesso dell'utente.

host

L'host da cui l'utente ha effettuato la connessione.

connectionid

Il numero di ID di connessione per l'operazione registrata.

queryid

Il numero di ID di query che può essere utilizzato per trovare gli eventi di tabella relazionale e le query correlate. Per gli eventi TABLE, vengono aggiunte più righe.

operation

Il tipo di operazione registrata. I valori possibili sono CONNECT, QUERY, READ, WRITE, CREATE, ALTER, RENAME e DROP.

database

Il database attivo, come impostato dal comando USE.

oggetto

Per gli eventi QUERY, questo valore indica la query eseguita dal database. Per gli eventi TABLE, indica il nome di tabella.

retcode

Il codice restituito dell'operazione di registrazione.