Accesso ai bucket Amazon S3 con Redshift Spectrum - Amazon Redshift

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.

Accesso ai bucket Amazon S3 con Redshift Spectrum

In generale Amazon Redshift Spectrum non supporta il routing VPC avanzato con cluster con provisioning, anche se un cluster con provisioning può eseguire query sulle tabelle esterne di Amazon S3 quando è abilitato il routing VPC avanzato.

Il routing VPC avanzato di Amazon Redshift invia traffico specifico attraverso il VPC, il che significa che tutto il traffico tra il cluster e i bucket Amazon S3 è costretto a passare attraverso il VPC Amazon. Poiché Redshift Spectrum viene eseguito su risorse gestite da AWS di proprietà di Amazon Redshift ma esterne al VPC, Redshift Spectrum non utilizza il routing VPC avanzato.

Il traffico tra Redshift Spectrum ed Amazon S3 viene instradato in modo sicuro tramite la rete privata AWS, esternamente al VPC. Il traffico in transito viene firmato tramite il protocollo Amazon Signature Version 4 (SIGv4) e crittografato tramite HTTPS. Questo traffico è autorizzato in base al ruolo IAM che è associato al cluster Amazon Redshift. Per gestire ulteriormente il traffico di Redshift Spectrum, è possibile modificare il ruolo IAM del cluster e la policy collegata al bucket Amazon S3. Potrebbe inoltre essere necessario configurare il VPC per consentire l'accesso a AWS Glue o Athena da parte del cluster, come illustrato di seguito.

Si noti che poiché il routing VPC avanzato influisce sul modo in cui Amazon Redshift accede alle altre risorse, se il VPC non viene configurato correttamente, le query potrebbero restituire degli errori. Per ulteriori informazioni, consulta Controllo del traffico di rete con il routing VPC avanzato di Redshift, che illustra più nel dettaglio la creazione di un endpoint VPC, un gateway NAT e altre risorse di rete per indirizzare il traffico verso i bucket Amazon S3.

Nota

Amazon Redshift serverless supporta il routing VPC avanzato per le query verso tabelle esterne su Amazon S3. Per ulteriori informazioni sulla configurazione, consulta Caricamento di dati da Amazon S3 nella Guida alle operazioni di base di Amazon Redshift serverless.

Configurazione delle policy delle autorizzazioni durante l’utilizzo di Amazon Redshift Spectrum

Quando utilizzi Redshift Spectrum, considera quanto segue:

Policy di accesso ai bucket Amazon S3 e ruoli IAM

Puoi controllare l’accesso ai dati nei bucket Amazon S3 utilizzando una policy di bucket collegata al bucket e un ruolo IAM collegato al cluster con provisioning.

Redshift Spectrum sui cluster con provisioning non può accedere ai dati archiviati nei bucket Amazon S3 che utilizzano una policy per bucket che limita l'accesso solo a specifici endpoint VPC. Utilizzare invece una policy di bucket che limita l'accesso solo a principali specifici, come un account AWS specifico o utenti specifici.

Per il ruolo IAM a cui viene concesso l'accesso al bucket, utilizzare una relazione di trust che consente al ruolo di essere assegnato solo al principale di servizio Amazon Redshift. Se collegato al cluster, il ruolo può essere utilizzato solo nel contesto di Amazon Redshift e non può essere condiviso esternamente al cluster. Per ulteriori informazioni, consulta Limitazione dell'accesso a ruoli IAM. È possibile utilizzare anche una policy di controllo dei servizi (SCP) per limitare ulteriormente il ruolo. Vedi Impedire agli utenti e ai ruoli IAM di apportare modifiche specifiche, con un'eccezione per un ruolo di amministratore specificato nella Guida per l'utente AWS Organizations.

Nota

Per utilizzare Redshift Spectrum, non è possibile applicare alcuna policy IAM che blocchi l’uso di URL prefirmati di Amazon S3. Gli URL prefirmati generati da Amazon Redshift Spectrum sono validi per un’ora in modo che Amazon Redshift abbia il tempo sufficiente per caricare tutti i file dal bucket Amazon S3. Per ogni file scansionato da Redshift Spectrum viene generato un URL prefirmato univoco. Per le policy di bucket che includono un’azione s3:signatureAge, assicurati di impostare il valore su almeno 3.600.000 millisecondi.

La seguente policy di bucket di esempio consente l’accesso al bucket specificato di proprietà dell’account AWS 123456789012.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "BucketPolicyForSpectrum", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::123456789012:role/redshift"] }, "Action": [ "s3:GetObject", "s3:ListBucketVersions", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

Autorizzazioni per l’assunzione del ruolo IAM

Il ruolo collegato al cluster deve avere una relazione di trust che gli consenta di essere assunto solo dal servizio Amazon Redshift, come illustrato di seguito.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Per ulteriori informazioni, consulta Policy IAM per Amazon Redshift Spectrum nella Guida per gli sviluppatori di database di Amazon Redshift.

Registrazione e verifica dell'accesso ad Amazon S3

Un vantaggio dell'utilizzo del routing VPC avanzato di Amazon Redshift consiste nel fatto che tutto il traffico COPY e UNLOAD è registrato nei log di flusso VPC. Il traffico originato da Redshift Spectrum ad Amazon S3 non passa attraverso il VPC, perciò non effettua l'accesso nei log di flusso VPC. Quando Redshift Spectrum accede ai dati in Amazon S3, esegue tali operazioni nel contesto dell'account AWSe dei rispettivi privilegi del ruolo. È possibile registrare e controllare l'accesso ad Amazon S3 utilizzando la registrazione degli accessi al server in AWS CloudTrail e Amazon S3.

Assicurati che gli intervalli IP S3 siano aggiunti all'elenco di indirizzi consentiti. Per ulteriori informazioni sugli intervalli IP S3 richiesti, consulta Isolamento di rete.

AWS CloudTrail File di log

Per tracciare tutti gli accessi agli oggetti in Amazon S3, incluso l'accesso a Redshift Spectrum, abilitare la registrazione CloudTrail per gli oggetti Amazon S3.

per visualizzare, cercare, scaricare, archiviare, analizzare e rispondere alle attività dell'account all'interno dell'infrastruttura AWS è possibile utilizzare CloudTrail. Per ulteriori informazioni, consultare Nozioni di base su CloudTrail.

Per impostazione predefinita, CloudTrail traccia solo le operazioni a livello di bucket. Per tracciare le operazioni a livello di oggetto (come GetObject), abilitare gli eventi di dati e gestione per ciascun bucket registrato.

Registrazione degli accessi al server Amazon S

La registrazione degli accessi al server fornisce record dettagliati per le richieste che sono effettuate a un bucket. Il log di accesso può essere utile nei controlli di accesso e di sicurezza. Per ulteriori informazioni, consultare Come abilitare la registrazione degli accessi al server nella Guida per l'utente di Amazon Simple Storage Service.

Per ulteriori informazioni, consultare il post del blog sulla sicurezza AWS Come utilizzare le policy di bucket e applicare misure difensive per proteggere i dati Amazon S3.

Accesso a AWS Glue o Amazon Athena

Redshift Spectrum accede al catalogo dati in AWS Glue o Athena. Un'altra opzione consiste nell'utilizzare un Hive Metastore dedicato per il catalogo dati.

Per abilitare l'accesso a AWS Glue o Athena, configurare il VPC con un gateway Internet o un gateway NAT. Configurare i gruppi di sicurezza del VPC per consentire il traffico in uscita verso gli endpoint pubblici per AWS Glue e Athena. In alternativa, è possibile configurare un endpoint VPC di interfaccia per fare in modo che AWS Glue acceda a AWS Glue Data Catalog. Quando utilizzi un endpoint di interfaccia VPC, la comunicazione tra il VPC e AWS Glue avviene in modo completo e sicuro all'interno della rete AWS. Per ulteriori informazioni, consultare Creazione di un endpoint di interfaccia.

È possibile configurare i percorsi seguenti nel VPC:

  • Gateway Internet: per connettersi ai servizi AWS al di fuori del VPC, è possibile collegare un gateway Internet alla sottorete VPC, come descritto nella Guida per l'utente di Amazon VPC. Per usare un gateway Internet, un cluster con provisioning deve avere un indirizzo IP pubblico per permettere la comunicazione di altri servizi con il cluster.

  • Gateway NAT: per connettersi a un bucket Amazon S3 in un'altra regione AWS o a un altro servizio all'interno della rete AWS, configurare un gateway NAT (Network Address Translation), come descritto nellaGuida per l'utente di Amazon VPC. Utilizzare questa configurazione anche per effettuare l'accesso a un'istanza host al di fuori dalla rete AWS.

Per ulteriori informazioni, consultare Controllo del traffico di rete con il routing VPC avanzato di Redshift.