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

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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 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. A tale scopo, è possibile utilizzare CloudWatch Logs. È possibile attivare un'impostazione a livello di cluster per pubblicare i dati del registro di controllo di Aurora MySQL in un gruppo di log. CloudWatch È quindi possibile visualizzare, filtrare e cercare i log di controllo tramite l'interfaccia. CloudWatch Per ulteriori informazioni, consulta Pubblicazione dei log MySQL di Amazon Aurora su Amazon Logs CloudWatch .

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 DB in per modificare i parametri del cluster di database con la AWS Management Console. Puoi utilizzare il AWS CLI comando modify-db-cluster-parameter-group o l'operazione API Amazon RDS di ModifyDB ClusterParameter Group per modificare i parametri del cluster DB a livello di codice.

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 anche utilizzare l' CloudWatchinterfaccia 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 controllo. Per escludere le SELECT interrogazioni, è necessario escludere tutte le istruzioni DML.

Se un determinato utente riporta queste SELECT interrogazioni interne nei log di controllo, puoi escluderlo impostando il parametro del cluster DB server_audit_excl_users. Tuttavia, se quell'utente viene utilizzato anche in altre attività e non può essere omesso, 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 registro di controllo viene archiviato separatamente nella memoria locale di ogni istanza. Ogni istanza di Aurora distribuisce scritture su quattro file di log alla volta. La dimensione massima dei log in aggregazione è di 100 MB. Quando viene raggiunto questo limite non configurabile, Aurora ruota i file e genera quattro nuovi 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 di registro, attiva l'impostazione per caricare i registri di controllo CloudWatch e visualizzarli utilizzando l' CloudWatch interfaccia.

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 Aurora con 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.