Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog
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: è-possibile visualizzare i dati di registro di verifica utilizzando le caratteristiche integrate in CloudWatch, come le caratteristiche di visualizzazione e le operazioni di impostazione.
Nota
SYS_CONNECTION_LOG raccoglie i dati di log delle connessioni per Amazon Redshift Serverless. Tieni presente che quando raccogli dati di registrazione di controllo per Amazon Redshift Serverless, non possono essere inviati ai file di log, ma solo a CloudWatch.
Argomenti
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 registrazione di controllo 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. |
| duration | 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'AWS Identity and Access Management di autenticazione IAM per la richiesta di AWS CloudTrail. Questo è l'identificatore per la chiamata API GetClusterCredentials 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:
-
Creazione dell'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:
|
| 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. |
| user | 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. |
Log di audit e Amazon CloudWatch
La registrazione di verifica non è abilitata in Amazon Redshift, per impostazione predefinita. Quando si attiva la registrazione nel cluster, Amazon Redshift esporta i registri in Amazon CloudWatch oppure crea e carica i registri in Simple Storage Service (Amazon S3) che acquisisce i dati dall'inizio della registrazione della verifica fino al momento attuale. Ogni aggiornamento di registrazione è una continuazione delle registrazioni precedenti.
La registrazione di verifica in CloudWatch o in Simple Storage Service (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 delle connessioni, il log degli utenti e il log delle attività degli utenti possono essere abilitati insieme utilizzando la Console di gestione AWS, le informazioni di riferimento sull'API di Amazon Redshift o l'AWS Command Line Interface (AWS CLI). 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..
Quando si abilita l'accesso a CloudWatch, Amazon Redshift esporta i dati di registro di connessione dei cluster, dell'utente e delle attività dell'utente in un gruppo di registri di Amazon CloudWatch Logs. I dati di registro non cambiano, in termini di schema. CloudWatch è costruito per il monitoraggio delle applicazioni ed è possibile utilizzarlo per eseguire analisi in tempo reale o impostarlo per intraprendere operazioni. È possibile utilizzare Amazon CloudWatch Logs per archiviare i record dei registri in un'archiviazione durevole.
L'utilizzo di CloudWatch per visualizzare i registri è un'alternativa consigliata all'archiviazione dei file di log in Simple Storage Service (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 registri e registro eventi in Amazon CloudWatch
Dopo aver selezionato quali registri di Amazon Redshift esportare, è possibile monitorare il registro eventi in Amazon CloudWatch Logs. 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 tra il registro eventi per un endpoint serverless, puoi usare la console Amazon CloudWatch Logs, la AWS CLI o l'API di 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, è possibile cercare i dati di registro con una sintassi di query che fornisce granularità e flessibilità. Per ulteriori informazioni, consulta Sintassi query CloudWatch Logs Insights.
Migrazione ai registri di verifica di Amazon CloudWatch
In ogni caso in cui si inviano registri a Simple Storage Service (Amazon S3) e si modifica la configurazione, ad esempio per inviare i registri a CloudWatch, i registri che rimangono in Simple Storage Service (Amazon S3) non vengono influenzati. È comunque possibile eseguire query sui dati di registro nei bucket Amazon S3 in cui risiedono.
File di log in 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'autorizzaziones3:PutObjectper 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 di Regioni AWS, aggiungi il nome principale del servizio Redshift, redshift.amazonaws.com.
La policy del bucket utilizza il formato seguente. ServiceName e BucketName sono segnaposto per i valori. Specificare inoltre le azioni e le risorse associate nella policy del bucket.
L'esempio seguente mostra una policy del bucket per la regione Stati Uniti orientali (Virginia settentrionale) e un bucket denominato 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.. Ad esempio: region.amazonaws.com.rproxy.govskope.caredshift.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, consulta Creazione di un bucket per uso generico e Policy di bucket per Amazon S3 nella Guida per l’utente 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
Considerazioni sulla registrazione di log di audit in 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.
Chiamate API con AWS CloudTrail
Amazon Redshift è integrato con AWS CloudTrail, un servizio che offre un registro delle operazioni eseguite da un utente, un ruolo o un servizio AWS in Amazon Redshift. CloudTrail acquisisce tutte le chiamate API per Amazon Redshift come eventi. Per ulteriori informazioni sull'integrazione Amazon Redshift con AWS CloudTrail, consulta Registrazione con CloudTrail.
È possibile utilizzare CloudTrail indipendentemente da o in aggiunta alla registrazione di verifica dei database di Amazon Redshift.
Per ulteriori informazioni su CloudTrail, consultare la Guida per l'utente di AWS CloudTrail.