Configurazione dell'autenticazione e di SSL - 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à.

Configurazione dell'autenticazione e di SSL

Per proteggere i dati da accessi non autorizzati, gli archivi dati di Amazon Redshift richiedono l'autenticazione di tutte le connessioni tramite le credenziali utente. Alcuni archivi dati richiedono inoltre connessioni tramite il protocollo Secure Sockets Layer (SSL), con o senza autenticazione unidirezionale.

Il driver JDBC versione 2.1 di Amazon Redshift fornisce il supporto completo per questi protocolli di autenticazione.

La versione SSL supportata dal driver dipende dalla versione JVM che si sta utilizzando. Per ulteriori informazioni sulle versioni SSL supportate da ogni versione di Java, consultare Diagnosi di TLS, SSL e HTTPS sul blog di gestione prodotti del gruppo di piattaforme Java.

La versione SSL utilizzata per la connessione è la versione più alta supportata sia dal driver che dal server e viene determinata al momento della connessione.

Configura il driver JDBC versione 2.1 di Amazon Redshift per autenticare la connessione in base ai requisiti di sicurezza del server Redshift a cui stai effettuando la connessione.

Per autenticare la connessione, è sempre necessario specificare il nome utente e la password di Redshift. A seconda che SSL sia abilitato e necessario sul server, potresti dover configurare il driver per la connessione tramite SSL. Oppure potrebbe essere necessario utilizzare l'autenticazione SSL unidirezionale in modo che il client (il driver stesso) verifichi l'identità del server.

Le informazioni di configurazione vengono fornite al driver nell'URL di connessione. Per ulteriori informazioni sulla sintassi dell'URL di connessione, consultare Creazione dell'URL di connessione.

SSL indica TLS/SSL, ovvero sia Transport Layer Security che Secure Sockets Layer. Il driver supporta le versioni standard di settore di TLS/SSL.

Utilizzo solo del nome utente e della password

Se il server a cui ti connetti non utilizza SSL, per autenticare la connessione è sufficiente fornire il nome utente e la password di Redshift.

Per configurare l'autenticazione utilizzando solo il nome utente e la password di Redshift
  1. Imposta la proprietà UID sul nome utente di Redshift per accedere al server Amazon Redshift.

  2. Imposta la proprietà PWD sulla password corrispondente al nome utente di Redshift.

Utilizzo di SSL senza verifica dell'identità

Se il server a cui ci si connette utilizza SSL ma non richiede la verifica dell'identità, è possibile configurare il driver per utilizzare un factory SSL non convalidante.

Come configurare una connessione SSL senza verifica dell'identità
  1. Imposta la proprietà UID sul nome utente di Redshift per accedere al server Amazon Redshift.

  2. Imposta la proprietà PWD sulla password corrispondente al nome utente di Redshift.

  3. Impostare la proprietà SSLFactory su com.amazon.redshift.ssl.NonValidatingFactory.

Utilizzo dell'autenticazione SSL unidirezionale

Se il server a cui ci si connette utilizza SSL e dispone di un certificato, allora è possibile configurare il driver per verificare l'identità del server utilizzando l'autenticazione unidirezionale.

L'autenticazione unidirezionale richiede un certificato SSL firmato e attendibile che verifichi l'identità del server. È possibile configurare il driver per utilizzare un certificato specifico o accedere a un certificato TrustStore che contiene il certificato appropriato. Se non si specifica un certificato o TrustStore, il driver utilizza il codice Java predefinito TrustStore (in genere uno jssecacerts o duecacerts).

Come configurare l'autenticazione SSL unidirezionale
  1. Imposta la proprietà UID sul nome utente di Redshift per accedere al server Amazon Redshift.

  2. Imposta la proprietà PWD sulla password corrispondente al nome utente di Redshift.

  3. Impostare la proprietà SSL su true.

  4. Imposta la RootCert proprietà SSL sulla posizione del certificato CA principale.

  5. Se non utilizzi uno dei file Java predefiniti TrustStores, esegui una delle seguenti operazioni:

    • Per specificare un certificato server, imposta la RootCert proprietà SSL sul percorso completo del certificato.

    • Per specificare a TrustStore, procedi come segue:

      1. Utilizzate il programma keytool per aggiungere il certificato del server a TrustStore quello che desiderate utilizzare.

      2. Specificate la password TrustStore e da utilizzare all'avvio dell'applicazione Java utilizzando il driver. Per esempio:

        -Djavax.net.ssl.trustStore=[TrustStoreName] -Djavax.net.ssl.trustStorePassword=[TrustStorePassword] -Djavax.net.ssl.trustStoreType=[TrustStoreType]
  6. modi:

    • Per convalidare il certificato, impostare la proprietà SSLMode su verify-ca.

    • Per convalidare il certificato e verificare il nome host nel certificato, impostare la proprietà SSLMode su verify-full.

Configurazione dell'autenticazione IAM

Se ci si connette a un server Amazon Redshift tramite l'autenticazione IAM, impostare le seguenti proprietà come parte della stringa di connessione all'origine dati.

Per ulteriori informazioni sull'autenticazione IAM, consultare Identity and Access Management in Amazon Redshift.

Per utilizzare l'autenticazione IAM, utilizzare uno dei seguenti formati di stringa di connessione:

Stringa di connessione Descrizione

jdbc:redshift:iam:// [host]:[port]/[db]

Una stringa di connessione normale. Il driver deduce il ClusterID e la regione dall'host.

jdbc:redshift:iam:// [cluster-id]: [region]/[db]

Il driver recupera le informazioni sull'host, dato il ClusterID e la regione.

jdbc:redshift:iam:// [host]/[db]

Il driver utilizza di default la porta 5439 e recupera ClusterID e regione dall'host. A seconda della porta selezionata durante la creazione, la modifica o la migrazione del cluster, consenti l'accesso alla porta selezionata.

Specifica di profili

Se si utilizza l'autenticazione IAM, è possibile specificare eventuali altre proprietà di connessione obbligatorie o facoltative sotto il nome di un profilo. In questo modo, è possibile evitare di inserire determinate informazioni direttamente nella stringa di connessione. Il nome del profilo viene specificato nella stringa di connessione utilizzando la proprietà Profile.

I profili possono essere aggiunti al file delle AWS credenziali. Il percorso predefinito per questo file è ~/.aws/credentials.

È possibile modificare il valore predefinito impostando il percorso nella seguente variabile di ambiente: AWS_CREDENTIAL_PROFILES_FILE

Per ulteriori informazioni sui profili, consultare Utilizzo delle credenziali AWS nella AWS SDK for Java.

Utilizzo delle credenziali del profilo dell'istanza

Se si sta eseguendo un'applicazione su un'istanza Amazon EC2 associata a un ruolo IAM, è possibile connettersi utilizzando le credenziali del profilo dell'istanza.

A tale scopo, utilizzare uno dei formati di stringa di connessione IAM nella tabella precedente e impostare la proprietà dbuser connection sul nome utente Amazon Redshift con cui ci si connette.

Per ulteriori informazioni sui profili dell'istanza, consultare Gestione degli accessi nella Guida per l'utente di IAM.

Utilizzo di provider di credenziali

Il driver supporta inoltre i plug-in del provider di credenziali dei seguenti servizi:

  • Active Directory Federation Service (ADFS)

  • Servizio JSON Web Tokens (JWT)

  • Servizio Microsoft Azure Active Directory (AD) e servizio Browser Microsoft Azure Active Directory (AD)

  • Servizio Okta

  • PingFederate Servizio

  • Browser SAML per servizi SAML quali Okta, Ping o ADFS

Se si utilizza uno di questi servizi, l'URL di connessione deve specificare le proprietà seguenti:

  • Plugin_Name: la variabile classpath completa per la classe di plug-in del provider di credenziali.

  • IdP_Host:: l'host del servizio che si sta utilizzando per autenticarsi in Amazon Redshift.

  • IdP_Port: la porta su cui l'host del servizio di autenticazione è in ascolto. Non richiesta per Okta.

  • User: il nome utente per il server idp_host.

  • Password: la password associata al nome utente idp_host.

  • DbUser— Il nome utente Amazon Redshift con cui ti stai connettendo.

  • SSL_Insecure: indica se il certificato del server IDP deve essere verificato.

  • Client_ID: l'ID client associato al nome utente nel portale di Azure AD. Utilizzata solo per Azure AD.

  • Client_Secret: il segreto client associato all'ID client nel portale di Azure AD. Utilizzata solo per Azure AD.

  • IdP_Tenant: l'ID tenant di Azure AD per l'applicazione Amazon Redshift. Utilizzata solo per Azure AD.

  • App_ID: l'ID dell'app Okta per l'applicazione Amazon Redshift. Utilizzata solo per Okta.

  • App_Name: il nome dell'app Okta per l'applicazione Amazon Redshift. Utilizzata solo per Okta.

  • Partner_SPID: il valore facoltativo dello SPID (Service Provider ID) del partner. Utilizzato solo per PingFederate.

Se si utilizza un plug-in per il browser per uno di questi servizi, l'URL di connessione può includere anche:

  • Login_URL: l'URL della risorsa sul sito Web del provider di identità quando si usa il linguaggio SAML (Security Assertion Markup Language) o i servizi di Azure AD tramite un plug-in del browser. Questo parametro è obbligatorio se si utilizza un plug-in del browser.

  • Listen_Port: la porta utilizzata dal driver per ottenere la risposta SAML dal provider di identità quando si usano i servizi SAML o Azure AD tramite un plug-in del browser.

  • IdP_Response_Timeout: la quantità di tempo, espressa in secondi, per cui il driver attende la risposta SAML dal provider di identità quando si usano i servizi SAML o Azure AD tramite un plug-in del browser.

Per informazioni sulle proprietà aggiuntive della stringa di connessione, consultare Opzioni per la configurazione del driver JDBC versione 2.1.