Sicurezza dell'infrastruttura in Amazon Redshift - 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.

Sicurezza dell'infrastruttura in Amazon Redshift

Come servizio gestito, Amazon Redshift è protetto dalla sicurezza di rete globale di AWS. Per informazioni sui servizi di sicurezza AWSe su come AWSprotegge l'infrastruttura, consulta la pagina Sicurezza del cloud AWS. Per progettare l'ambiente AWSutilizzando le best practice per la sicurezza dell'infrastruttura, consulta la pagina Protezione dell'infrastruttura nel Pilastro della sicurezza di AWSWell‐Architected Framework.

Utilizzare le chiamate all'API pubblicate da AWS per accedere ad Amazon Redshift tramite la rete. I client devono supportare quanto segue:

  • Transport Layer Security (TLS). È richiesto TLS 1.2 ed è consigliato TLS 1.3.

  • Suite di cifratura con Perfect Forward Secrecy (PFS), ad esempio Ephemeral Diffie-Hellman (DHE) o Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La maggior parte dei sistemi moderni, come Java 7 e versioni successive, supporta tali modalità.

Isolamento della rete

Un Virtual Private Cloud (VPC) basato sul servizio Amazon VPC è la rete privata, isolata logicamente in AWS Cloud. Puoi distribuire un cluster Amazon Redshift o un gruppo di lavoro Redshift serverless all’interno di un VPC seguendo questa procedura:

Un cluster Amazon Redshift è bloccato per impostazione predefinita sul provisioning. Per consentire il traffico di rete in entrata dai client Amazon Redshift, associare un gruppo di sicurezza VPC in un cluster Amazon Redshift. Per ulteriori informazioni, consultare Sottoreti per le risorse Redshift.

Per abilitare il solo traffico a o da intervalli di indirizzi IP specifici, aggiornare i gruppi di sicurezza con il VPC. Un esempio consiste nel consentire il traffico solo da o alla rete aziendale.

Durante la configurazione delle liste di controllo degli accessi di rete associati alle sottoreti con cui è taggato il cluster Amazon Redshift, assicurati che i rispettivi intervalli CIDR S3 della regione AWS siano aggiunti all'elenco degli elementi consentiti per le regole di ingresso e uscita. In questo modo potrai eseguire operazioni basate su S3 come Redshift Spectrum, COPY e UNLOAD senza interruzioni.

Nel seguente comando di esempio viene analizzata la risposta JSON per tutti gli indirizzi IPv4 utilizzati in Amazon S3 nella regione us-est-1.

curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="S3") | .ip_prefix' 54.231.0.0/17 52.92.16.0/20 52.216.0.0/15

Per le istruzioni su come ottenere intervalli IP S3 per una determinata regione, consulta Intervalli di indirizzi IP AWS.

Amazon Redshift supporta la distribuzione dei cluster in VPC con istanza dedicata a tenant singolo. Per ulteriori informazioni, consultare Istanze dedicate nella Guida per l'utente di Amazon EC2.

Gruppo di sicurezza Amazon Redshift

Quando si effettua il provisioning di un cluster Amazon Redshift, questo è bloccato per impostazione predefinita perché nessuno possa accedervi. Per concedere ad altri utenti l'accesso in ingresso a un cluster ad Amazon Redshift, è necessario associare il cluster a un gruppo di sicurezza. Se si utilizza la piattaforma EC2-VPC, è possibile usare un gruppo di sicurezza Amazon VPC esistente o definirne uno nuovo e quindi associarlo a un cluster. Per ulteriori informazioni sulla gestione di un cluster nella piattaforma EC2-VPC, consultare Risorse Redshift in un VPC.

Puoi connetterti direttamente ai servizi API Amazon Redshift e Amazon Redshift serverless utilizzando un endpoint VPC dell’interfaccia (AWS PrivateLink) nel cloud privato virtuale (VPC) invece di connetterti tramite Internet. Per ulteriori informazioni sulle operazioni API di Amazon Redshift, consultare Operazioni nella Documentazione di riferimento dell'API Amazon Redshift. Per ulteriori informazioni sulle operazioni dell’API Redshift serverless, consulta Operazioni nella documentazione di riferimento dell’API Amazon Redshift serverless. Per ulteriori informazioni, su AWS PrivateLink, consultare Endpoint VPC di interfaccia (AWS PrivateLink) nella Guida per l'utente di Amazon VPC. Tieni presente che la connessione JDBC/ODBC al cluster o allo spazio di lavoro non fa parte del servizio API Amazon Redshift.

Quando utilizzi un endpoint VPC dell’interfaccia, la comunicazione tra il VPC e Amazon Redshift o Redshift serverless avviene interamente all’interno della rete AWS, il che garantisce una sicurezza maggiore. Ogni endpoint VPC è rappresentato da una o più interfacce di rete elastiche con indirizzi IP privati nelle sottoreti del VPC. Per maggiori informazioni sulle interfacce di rete elastiche, consulta le interfacce di rete elastiche nella Guida dell'utente di Amazon EC2.

Un endpoint VPC di interfaccia collega il VPC direttamente ad Amazon Redshift. Non utilizza un gateway Internet, un dispositivo NAT (Network Address Translation), una connessione di rete privata virtuale (VPN) o una connessione Direct Connect. Le istanze presenti nel tuo VPC non richiedono indirizzi IP pubblici per comunicare con l'API di Amazon Redshift.

Per utilizzare Amazon Redshift o Redshift serverless tramite il VPC, sono disponibili due opzioni. Una è quella di connettersi da un'istanza che si trova all'interno del VPC. L'altra è connettere la rete privata al VPC utilizzando un'opzione Site-to-Site VPN o Direct Connect. Per ulteriori informazioni sulle opzioni Site-to-Site VPN, consultare Connessioni VPN nella Guida per l'utente di Amazon VPC. Per informazioni su Direct Connect, consultare Creazione di una connessione nella Guida per l'utente di Direct Connect.

È possibile creare un endpoint VPC di interfaccia per connettersi ad Amazon Redshift utilizzando la Console di gestione AWS o i comandi della AWS Command Line Interface (AWS CLI). Per ulteriori informazioni, consultare Creazione di un endpoint di interfaccia.

Una volta creato un endpoint VPC di interfaccia, è possibile abilitare nomi host DNS privati per l'endpoint. In questo caso l’endpoint predefinito è il seguente:

  • Amazon Redshift con provisioning: https://redshift.Region.amazonaws.com

  • Amazon Redshift serverless: https://redshift-serverless.Region.amazonaws.com

Se non si abilitano nomi host DNS privati, Amazon VPC fornisce un nome di endpoint DNS che può essere utilizzato nel formato seguente:

  • Amazon Redshift con provisioning: VPC_endpoint_ID.redshift.Region.vpce.amazonaws.com

  • Amazon Redshift serverless: VPC_endpoint_ID.redshift-serverless.Region.vpce.amazonaws.com

Per ulteriori informazioni, consultare Endpoint VPC di interfaccia (AWS PrivateLink) nella Guida per l'utente di Amazon VPC.

Amazon Redshift e Redshift serverless supportano le chiamate a tutte le operazioni dell’API Amazon Redshift e le operazioni dell’API Redshift serverless all’interno del VPC.

È possibile collegare le policy di endpoint VPC a un endpoint VPC per controllare l'accesso per i principal AWS Identity and Access Management (IAM). È inoltre possibile associare i gruppi di sicurezza a un endpoint VPC per controllare l'accesso in ingresso e in uscita in base all'origine e alla destinazione del traffico di rete. Un esempio è un intervallo di indirizzi IP. Per ulteriori informazioni, consultare Controllo degli accessi ai servizi con endpoint VPC nella Guida per l'utente di Amazon VPC.

È possibile creare una policy per gli endpoint VPC per Amazon Redshift in cui specificare quanto segue:

  • Il principal che può o non può eseguire operazioni

  • Le azioni che possono essere eseguite

  • Le risorse sui cui si possono eseguire le azioni

Per ulteriori informazioni, consultare Controllo degli accessi ai servizi con endpoint VPC in Guida per l'utente di Amazon VPC.

Di seguito sono riportati alcuni esempi di policy di endpoint VPC.

Di seguito sono riportati alcuni esempi di policy di endpoint VPC per Amazon Redshift con provisioning.

La seguente policy di endpoint VPC nega all'account AWS 123456789012 l'accesso completo alle risorse tramite questo l'endpoint.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ] }

La seguente policy di endpoint VPC consente l'accesso completo solo al ruolo IAM redshiftrole nell'account AWS 123456789012. A tutte le altre entità principali IAM viene negato l'accesso utilizzando l'endpoint.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/redshiftrole" ] } }] }

Si tratta solo di un esempio, nella maggior parte dei casi d'uso ti consigliamo di collegare le autorizzazioni per operazioni specifiche in modo da limitare l'ambito delle autorizzazioni.

La seguente policy di endpoint VPC consente l'accesso completo solo all'utente IAM redshiftadmin nell'account AWS 123456789012. A tutti gli altri principal IAM viene negato l'accesso tramite l'endpoint.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/redshiftadmin" ] } }] }

Si tratta solo di un esempio, nella maggior parte dei casi d'uso ti consigliamo di collegare le autorizzazioni a un ruolo prima di assegnarlo a un utente. Inoltre, suggeriamo di utilizzare operazioni specifiche in modo da limitare l'ambito delle autorizzazioni.

La seguente policy di endpoint VPC consente solo all'account AWS 123456789012 di eseguire le operazioni Amazon Redshift specificate.

Le operazioni specificate forniscono l'equivalente dell'accesso di sola lettura per Amazon Redshift. Tutte le altre azioni sul VPC vengono negate per l'account specificato. Inoltre, a tutti gli altri account viene negato l'accesso. Per visualizzare un elenco delle operazioni Amazon Redshift, consultare Operazioni, risorse e chiavi di condizione per Amazon Redshift nella Guida per l'utente di IAM.

{ "Statement": [ { "Action": [ "redshift:DescribeAccountAttributes", "redshift:DescribeClusterParameterGroups", "redshift:DescribeClusterParameters", "redshift:DescribeClusterSecurityGroups", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusterSubnetGroups", "redshift:DescribeClusterVersions", "redshift:DescribeDefaultClusterParameters", "redshift:DescribeEventCategories", "redshift:DescribeEventSubscriptions", "redshift:DescribeHsmClientCertificates", "redshift:DescribeHsmConfigurations", "redshift:DescribeLoggingStatus", "redshift:DescribeOrderableClusterOptions", "redshift:DescribeQuery", "redshift:DescribeReservedNodeOfferings", "redshift:DescribeReservedNodes", "redshift:DescribeResize", "redshift:DescribeSavedQueries", "redshift:DescribeScheduledActions", "redshift:DescribeSnapshotCopyGrants", "redshift:DescribeSnapshotSchedules", "redshift:DescribeStorage", "redshift:DescribeTable", "redshift:DescribeTableRestoreStatus", "redshift:DescribeTags", "redshift:FetchResults", "redshift:GetReservedNodeExchangeOfferings" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ] }

La seguente policy di endpoint VPC consente l'accesso completo a tutti gli account e principal. Allo stesso tempo, nega qualsiasi accesso per l'account AWS 123456789012 alle azioni eseguite sul cluster Amazon Redshift con ID cluster my-redshift-cluster. Le altre operazioni Amazon Redshift che non supportano le autorizzazioni a livello di risorsa per i cluster sono comunque consentite. Per un elenco delle operazioni Amazon Redshift e dei tipi di risorse corrispondenti, consultare Operazioni, risorse e chiavi di condizione per Amazon Redshift nella Guida per l'utente di IAM.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "arn:aws:redshift:us-east-1:123456789012:cluster:my-redshift-cluster", "Principal": { "AWS": [ "123456789012" ] } } ] }

Di seguito sono riportati alcuni esempi di policy di endpoint VPC per Redshift serverless.

La seguente policy di endpoint VPC consente solo all’account AWS 123456789012 di eseguire le operazioni Redshift serverless specificate.

Le azioni specificate forniscono l’equivalente dell’accesso di sola lettura per Redshift serverless. Tutte le altre azioni sul VPC vengono negate per l'account specificato. Inoltre, a tutti gli altri account viene negato l'accesso. Per visualizzare un elenco delle azioni Redshift serverless, consulta Azioni, risorse e chiavi di condizione per Redshift serverless nella Guida per l’utente di IAM.

{ "Statement": [ { "Action": [ "redshift-serverless:DescribeOneTimeCredit", "redshift-serverless:GetCustomDomainAssociation", "redshift-serverless:GetEndpointAccess", "redshift-serverless:GetNamespace", "redshift-serverless:GetRecoveryPoint", "redshift-serverless:GetResourcePolicy", "redshift-serverless:GetScheduledAction", "redshift-serverless:GetSnapshot", "redshift-serverless:GetTableRestoreStatus", "redshift-serverless:GetUsageLimit", "redshift-serverless:GetWorkgroup" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ] }

La seguente policy di endpoint VPC consente l'accesso completo a tutti gli account e principal. Allo stesso tempo nega qualsiasi accesso per l’account AWS 123456789012 alle azioni eseguite per il gruppo di lavoro Amazon Redshift con l’ID gruppo di lavoro my-redshift-workgroup. Le altre azioni Amazon Redshift che non supportano le autorizzazioni a livello di risorsa per i gruppi di lavoro sono comunque consentite. Per un elenco delle azioni Redshift serverless e del tipo di risorsa corrispondente, consulta Azioni, risorse e chiavi di condizione per Redshift serverless nella Guida per l’utente di IAM.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup:my-redshift-workgroup", "Principal": { "AWS": [ "123456789012" ] } } ] }