Logging di controllo dei database - Amazon Redshift

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à.

Logging di controllo dei database

Amazon Redshift registra informazioni su connessioni e attività degli utenti nel database. Questi log ti aiutano a monitorare il database per scopi di sicurezza e risoluzione dei problemi, un processo noto con il nome di controllo dei database. I registri possono essere archiviati in:

  • Bucket Amazon S3: offrono un accesso con caratteristiche di sicurezza dei dati per gli utenti responsabili delle attività di monitoraggio nel database.

  • Amazon CloudWatch: puoi visualizzare i dati di registrazione dei controlli utilizzando le funzionalità integrate CloudWatch, come le funzioni di visualizzazione e le azioni di impostazione.

Nota

SYS_CONNECTION_LOG raccoglie i dati di log delle connessioni per Amazon Redshift Serverless. Tieni presente che quando raccogli dati di audit logging per Amazon Redshift Serverless, non possono essere inviati ai file di log, ma solo a. CloudWatch

Log di Amazon Redshift

Amazon Redshift registra informazioni nei file di log seguenti:

  • Log di connessione: registra i tentativi di autenticazione, connessioni e disconnessioni.

  • Log degli utenti: registra le informazioni sulle modifiche apportate alle definizioni degli utenti del database.

  • Log attività utente: registra ogni query prima che venga eseguita nel database.

I log delle connessioni e degli utenti sono utili prevalentemente per scopi di sicurezza. Puoi utilizzare il registro delle connessioni per monitorare le informazioni sugli utenti che si connettono al database e le relative informazioni di connessione. Queste informazioni potrebbero essere il loro indirizzo IP, il momento in cui hanno effettuato la richiesta, quale tipo di autenticazione hanno usato e così via. Puoi usare il log degli utenti per monitorare le modifiche apportate alle definizioni degli utenti di database.

Il log delle attività degli utenti è utile prevalentemente per scopi di risoluzione dei problemi e tiene traccia delle informazioni sui tipi di query eseguite dagli utenti e dal sistema nel database.

Le informazioni del log delle connessioni e del log degli utenti corrispondono a quelle archiviate nelle tabelle di sistema nel database. È possibile usare le tabelle di sistema per ottenere le stesse informazioni, ma i file di log offrono un meccanismo più semplice per il recupero e l'analisi. Per eseguire query sulle tabelle, i file di log si basano sulle autorizzazioni di Amazon S3 piuttosto che sulle autorizzazioni del database. Inoltre, visualizzando le informazioni nei file di log invece di eseguire query sulle tabelle di sistema, puoi ridurre l'impatto dell'interazione con il database.

Nota

I file di log non sono aggiornati quanto le tabelle dei log di sistema che sono STL_USERLOG e STL_CONNECTION_LOG. Nei file di log vengono copiati i record più vecchi del record più recente (questo escluso).

Nota

SYS_CONNECTION_LOG raccoglie i dati del log delle connessioni per Amazon Redshift Serverless. Quando raccogli dati di audit logging per Amazon Redshift Serverless, non possono essere inviati ai file di log, ma solo a. CloudWatch

Log delle connessioni

Registra i tentativi di autenticazione, insieme alle connessioni e disconnessioni. La tabella seguente descrive le informazioni incluse nel log delle connessioni. Per ulteriori informazioni su questi campi, consultare STL_CONNECTION_LOG nella Guida per gli sviluppatori di database di Amazon Redshift. Per ulteriori informazioni sui dati di log delle connessioni raccolti per Amazon Redshift Serverless, consulta SYS_CONNECTION_LOG.

Nome colonna Descrizione
evento Evento di connessione o autenticazione.
recordtime Ora in cui l'evento si è verificato.
remotehost Nome o indirizzo IP dell'host remoto.
remoteport Numero di porta per l'host remoto.
pid ID di processo associato all'istruzione.
dbname Nome del database.
username Nome dell'utente.
authmethod Metodo di autenticazione.
durata Durata di connessione in microsecondi.
sslversion Versione Secure Sockets Layer (SSL).
sslcipher Crittografia SSL.
mtu Unità di trasmissione massima (MTU).
sslcompression Tipo di compressione SSL.
sslexpansion Tipo di espansione SSL.
iamauthguid L'ID di autenticazione AWS Identity and Access Management (IAM) per la richiesta. AWS CloudTrail Questo è l'identificatore della chiamata GetClusterCredentialsAPI per creare le credenziali utilizzate per una determinata connessione.
application_name Il nome iniziale o aggiornato dell'applicazione per una sessione.
os_version La versione del sistema operativo presente sul client che si connette al cluster Amazon Redshift.
driver_version La versione del driver ODBC o JDBC che si connette al cluster Amazon Redshift dagli strumenti client SQL di terze parti.
plugin_name Il nome del plug-in utilizzato per connettersi al cluster Amazon Redshift.
protocol_version La versione del protocollo interno utilizzato dal driver Amazon Redshift per stabilire la connessione con il server.
sessionid L'identificatore univoco globale per la sessione attuale.
compressione L'algoritmo di compressione utilizzato per la connessione.

Log degli utenti

Registra i dettagli per le seguenti modifiche a un utente di database:

  • Create user (Crea utente)

  • Rimozione dell'utente

  • Modifica di un utente (assegnazione di un nuovo nome)

  • Modifica di un utente (modifica delle proprietà)

Nome colonna Descrizione
userid ID dell'utente interessato dalla modifica.
username Nome utente dell'utente interessato dalla modifica.
oldusername Per un'operazione di assegnazione di un nuovo nome, il nome utente originale. Per ogni altra operazione, questo campo è vuoto.
action Operazione che si è verificata. Valori validi:
  • Alter

  • Crea

  • Drop (E-mail eliminata)

  • Assegnazione di un nuovo nome

usecreatedb Se true (1), indica che l'utente ha creato delle autorizzazioni del database.
usesuper Se true (1), indica che l'utente è un utente con privilegi avanzati.
usecatupd Se true (1), indica che l'utente può aggiornare i cataloghi di sistema.
valuntil Data di scadenza della password.
pid ID processo.
xid ID transazione.
recordtime Ora in UTC in cui è stata avviata la query.

Interroga la visualizzazione del sistema SYS_USERLOG per trovare informazioni aggiuntive sulle modifiche apportate agli utenti. Questa visualizzazione include i dati di log di Amazon Redshift Serverless.

Log delle attività degli utenti

Registra ogni query prima che venga eseguita nel database.

Nome colonna Descrizione
recordtime Ora in cui l'evento si è verificato.
db Nome del database.
Utente Nome dell'utente.
pid ID di processo associato all'istruzione.
userid ID utente.
xid ID transazione.
query Prefisso LOG: seguito dal testo della query, incluse le nuove righe.

Abilitazione della registrazione

La registrazione di verifica non è abilitata in Amazon Redshift, per impostazione predefinita. Quando attivi la registrazione sul cluster, Amazon Redshift esporta i log su Amazon oppure crea e carica i log su CloudWatch Amazon S3, che acquisiscono i dati dal momento in cui la registrazione di audit è abilitata fino a oggi. Ogni aggiornamento di registrazione è una continuazione delle registrazioni precedenti.

La registrazione di audit su CloudWatch o su Amazon S3 è un processo facoltativo. La registrazione nelle tabelle di sistema non è facoltativa e avviene automaticamente. Per ulteriori informazioni sulla registrazione con le tabelle di sistema, consultare Riferimento alle tabelle di sistema nella Guida per gli sviluppatori di Amazon Redshift.

Il log di connessione, il log utente e il log delle attività degli utenti vengono abilitati insieme utilizzando Amazon Redshift API Reference o AWS Command Line Interface ()AWS CLI. AWS Management Console Per il log delle attività degli utenti, devi anche abilitare il parametro di database enable_user_activity_logging. Se abiliti solo la funzionalità di logging di controllo, ma non il parametro associato, i log di controllo dei database registrano informazioni solo per il log delle connessioni e il log degli utenti, ma non per il log delle attività degli utenti. Per impostazione predefinita, il parametro enable_user_activity_logging non è abilitato (false). Puoi impostarlo al valore true per abilitare il log delle attività degli utenti. Per ulteriori informazioni, consulta Gruppi di parametri di Amazon Redshift..

Invio di registri di controllo ad Amazon CloudWatch

Quando abiliti la registrazione a CloudWatch, Amazon Redshift esporta i dati dei log di connessione del cluster, utenti e attività degli utenti in un gruppo di log CloudWatch Amazon Logs. I dati di log non cambiano, in termini di schema. CloudWatch è progettato per il monitoraggio delle applicazioni e può essere utilizzato per eseguire analisi in tempo reale o impostarlo per eseguire azioni. Puoi anche utilizzare Amazon CloudWatch Logs per archiviare i tuoi record di registro in uno spazio di archiviazione durevole.

L'uso CloudWatch per visualizzare i log è un'alternativa consigliata all'archiviazione dei file di registro in Amazon S3. Non richiede molta configurazione e può soddisfare i requisiti di monitoraggio, soprattutto se lo si utilizza già per monitorare altri servizi e applicazioni.

Gruppi di log ed eventi di log in Amazon CloudWatch

Dopo aver selezionato i log di Amazon Redshift da esportare, puoi monitorare gli eventi di log in Amazon Logs. CloudWatch Un nuovo gruppo di registri viene creato automaticamente per Amazon Redshift Serverless con il seguente prefisso, in cui log_type rappresenta il tipo di registro.

/aws/redshift/cluster/<cluster_name>/<log_type>

Ad esempio, se scegli di esportare il log di connessione, i dati di log vengono archiviati nel seguente gruppo di log.

/aws/redshift/cluster/cluster1/connectionlog

Il registro eventi viene esportato in un gruppo di registri utilizzando il flusso di log. Per cercare informazioni all'interno degli eventi di registro per il tuo endpoint serverless, usa la console Amazon CloudWatch Logs, o l' AWS CLI API Amazon CloudWatch Logs. Per informazioni sulla ricerca e l'applicazione di filtri per i dati di registro, consulta Creazione di parametri da registro eventi mediante filtri.

In CloudWatch, puoi cercare i dati di log con una sintassi di query che garantisce granularità e flessibilità. Per ulteriori informazioni, consulta la sintassi delle query di CloudWatch Logs Insights.

Migrazione alla registrazione di CloudWatch controllo di Amazon

In ogni caso, quando si inviano log ad Amazon S3 e si modifica la configurazione, ad esempio per inviare log a, i log CloudWatch che rimangono in Amazon S3 non subiscono alcuna modifica. È comunque possibile eseguire query sui dati di registro nei bucket Amazon S3 in cui risiedono.

Gestione dei file di log in Simple Storage Service (Amazon S3)

Il numero e le dimensioni dei file di log di Amazon Redshift in Amazon S3 dipendono in larga misura dall'attività nel cluster. Se il cluster è attivo e sta generando un numero elevato di log, Amazon Redshift può generare i file di log più spesso. Può essere generata una serie di file di log per lo stesso tipo di attività, ad esempio più log delle connessioni nella stessa ora.

Poiché Amazon Redshift utilizza Simple Storage Service (Amazon S3) per archiviare i registri, verranno addebitati i costi dell'archiviazione utilizzata in Simple Storage Service (Amazon S3). Prima di configurare la registrazione in Simple Storage Service (Amazon S3), è necessario disporre di un piano per determinare per quanto tempo è necessario archiviare i file di log. Inoltre, è necessario determinare quando è possibile eliminare o archiviare i file di log in base alle proprie esigenze di verifica. Il piano creato dipende in larga misura dal tipo di dati archiviati, ad esempio dati soggetti a requisiti normativi o di conformità. Per ulteriori informazioni sui prezzi di Amazon S3, consultare Prezzi di Amazon Simple Storage Service (S3).

Limitazioni dell'abilitazione della registrazione su Amazon S3

La registrazione dei log di verifica ha i seguenti vincoli:

  • Puoi utilizzare solo la crittografia delle chiavi gestite da Amazon S3 (SSE-S3) (AES-256).

  • I bucket Amazon S3 devono avere la funzionalità Blocco oggetti di S3 disattivata.

Autorizzazioni del bucket per la registrazione di verifica di Amazon Redshift

Quando si abilita la registrazione in Simple Storage Service (Amazon S3), Amazon Redshift raccoglie informazioni di registrazione e le carica in file di log archiviati in Simple Storage Service (Amazon S3). È possibile creare un nuovo bucket o utilizzare un bucket esistente. Amazon Redshift richiede le autorizzazioni IAM seguenti per il bucket:

  • s3:GetBucketAcl: il servizio richiede autorizzazioni di lettura per il bucket Amazon S3 per poter identificare il proprietario del bucket.

  • s3:PutObject: il servizio richiede autorizzazioni di inserimento di oggetti per caricare i log. Inoltre, l'utente o il ruolo IAM che attiva la registrazione deve disporre dell'autorizzazione s3:PutObject per il bucket Amazon S3. Ogni volta che vengono caricati log, il servizio determina se il proprietario corrente del bucket corrisponde al proprietario del bucket al momento dell'abilitazione del logging. Se questi proprietari non corrispondono, verrà ricevuto un errore.

Quando abiliti la registrazione di controllo, selezionando l'opzione per creare un nuovo bucket, ad esso verranno applicate le corrette autorizzazioni. Tuttavia, se il bucket viene creato personalmente in Amazon S3 o si utilizza un bucket esistente, aggiungere una policy di bucket che includa il nome del bucket. I registri vengono consegnati utilizzando le credenziali principali del servizio. Per la maggior parte Regioni AWS, aggiungi il nome principale del servizio Redshift, redshift.amazonaws.com.

La policy del bucket utilizza il formato seguente. ServiceNamee sono segnaposto BucketNamedei tuoi valori. Specificare inoltre le azioni e le risorse associate nella policy del bucket.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "ServiceName" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::BucketName", "arn:aws:s3:::BucketName/*" ] } ] }

L'esempio seguente mostra una policy del bucket per la regione Stati Uniti orientali (Virginia settentrionale) e un bucket denominato AuditLogs.

{ "Version": "2008-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::AuditLogs", "arn:aws:s3:::AuditLogs/*" ] } ] }

Le Regioni che non sono abilitate di default, conosciute anche come regioni "scelte", richiedono un nome del principale di servizio specifico per la Regione. Per questi, il nome principale del servizio include la regione, nel formato redshift.region.amazonaws.com. Ad esempio: redshift.ap-east-1.amazonaws.com per la regione Asia Pacifico (Hong Kong). Per un elenco di regioni che non sono abilitate per impostazione predefinita, consulta Gestione delle Regioni AWS in Riferimenti generali di AWS.

Nota

Il nome del principale del servizio specifico della Regione corrisponde alla Regione in cui si trova il cluster.

Best practice per i file di registro

Quando Redshift carica i file di registro su Amazon S3, è possibile caricare file di grandi dimensioni in parti. Se un caricamento in più parti non ha esito positivo, è possibile che parti di un file rimangano nel bucket Amazon S3. Ciò può comportare costi di storage aggiuntivi, quindi è importante capire cosa si verifica quando un caricamento in più parti fallisce. Per una spiegazione dettagliata sul caricamento in più parti per i registri di controllo, vedere Caricamento e copia di oggetti utilizzando il caricamento in più parti e Interruzione di un caricamento in più parti.

Per ulteriori informazioni sulla creazione di bucket S3 e sull'aggiunta di policy di bucket, consultare Creazione di un bucket e Modifica delle autorizzazioni del bucket nella Guida per l'utente della console di Amazon Simple Storage Service.

Struttura del bucket per il logging di verifica in Amazon Redshift

Per impostazione predefinita, Amazon Redshift organizza i file di log nel bucket Amazon S3 utilizzando il bucket e la struttura di oggetti seguenti:

AWSLogs/AccountID/ServiceName/Region/Year/Month/Day/AccountID_ServiceName_Region_ClusterName_LogType_Timestamp.gz

Un esempio è: AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz

Se si specifica un prefisso della chiave di Amazon S3, posizionare il prefisso all'inizio della chiave.

Ad esempio, se specifichi il prefisso myprefix: myprefix/AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz

Il prefisso della chiave di Amazon S3 non può contenere più di 512 caratteri e non può contenere spazi ( ), virgolette doppie ("), virgolette singole (') né una barra rovesciata (\). C'è anche un numero non consentito di caratteri speciali e caratteri di controllo. I codici esadecimali per questi caratteri sono i seguenti:

  • Da x00 a x20

  • x22

  • x27

  • x5c

  • x7f o maggiore

Risoluzione dei problemi relativi alla registrazione di verifica di Amazon Redshift in Simple Storage Service (Amazon S3)

La registrazione di verifica in Amazon Redshift può essere interrotta per i motivi seguenti:

  • Amazon Redshift non dispone dell'autorizzazione necessaria per caricare i log nel bucket Amazon S3. Verifica che il bucket sia configurato con la policy IAM corretta. Per ulteriori informazioni, consultare Autorizzazioni del bucket per la registrazione di verifica di Amazon Redshift.

  • Il proprietario del bucket è cambiato. Quando Amazon Redshift carica i log, verifica che il proprietario del bucket sia lo stesso di quello al momento dell'abilitazione della registrazione. Se il proprietario del bucket è cambiato, Amazon Redshift non potrà caricare i log finché non viene configurato un altro bucket da usare per la registrazione di verifica.

  • Non è possibile trovare il bucket. Se il bucket è stato eliminato in Amazon S3, Amazon Redshift non può caricare i log. Per il caricamento dei registri in un bucket diverso sarà necessario creare nuovamente il bucket oppure configurare di conseguenza Amazon Redshift.

Registrazione delle chiamate API Amazon Redshift con AWS CloudTrail

Amazon Redshift è integrato con AWS CloudTrail un servizio che fornisce un registro delle azioni intraprese da un utente, un ruolo o un AWS servizio in Amazon Redshift. CloudTrail acquisisce tutte le chiamate API per Amazon Redshift come eventi. Per ulteriori informazioni sull'integrazione di Amazon Redshift con AWS CloudTrail, consulta Logging with. CloudTrail

Puoi utilizzarlo CloudTrail indipendentemente o in aggiunta alla registrazione di audit del database Amazon Redshift.

Per ulteriori informazioni CloudTrail, consulta la Guida per l'AWS CloudTrail utente.