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à.
Autenticazione con l'integrazione di Amazon Redshift per Apache Spark
Utilizzo AWS Secrets Manager per recuperare le credenziali e connettersi ad Amazon Redshift
Puoi autenticarti in modo sicuro su Amazon Redshift archiviando le credenziali in Secrets Manager e facendo in modo che il job GetSecretValue
API Spark chiami per recuperarle:
from pyspark.sql import SQLContextimport boto3 sc = # existing SparkContext sql_context = SQLContext(sc) secretsmanager_client = boto3.client('
secretsmanager
', region_name=os.getenv('AWS_REGION
')) secret_manager_response = secretsmanager_client.get_secret_value( SecretId='string', VersionId='string', VersionStage='string' ) username = # get username from secret_manager_response password = # get password from secret_manager_response url = "jdbc:redshift://redshifthost:5439/database?user=" +username
+ "&password=" +password
# Access to Redshift cluster using Spark
Effettua l'autenticazione su Amazon Redshift con un driver JDBC
Imposta nome utente e password all'interno di JDBC URL
Puoi autenticare un job Spark in un cluster Amazon Redshift specificando il nome e la password del database Amazon Redshift nel. JDBC URL
Nota
Se trasmetti le credenziali del database inURL, chiunque abbia accesso ad esse può accedere anche alle credenziali. URL Questo metodo non è generalmente consigliato perché non è un'opzione sicura.
Se la sicurezza non è un problema per la vostra applicazione, potete utilizzare il seguente formato per impostare il nome utente e la password in: JDBC URL
jdbc:redshift://redshifthost:5439/database?user=
username
&password=password
Usa l'autenticazione IAM basata con il ruolo di esecuzione del lavoro di Amazon EMR Serverless
A partire dalla versione 6.9.0 di Amazon EMR Serverless, il JDBC driver Amazon Redshift 2.1 o superiore viene integrato nell'ambiente. Con JDBC il driver 2.1 e versioni successive, puoi specificare e non includere il nome utente JDBC URL e la password non elaborati.
È invece possibile specificare uno schema jdbc:redshift:iam://
. Ciò ordina al JDBC driver di utilizzare il ruolo di esecuzione del lavoro EMR Serverless per recuperare automaticamente le credenziali. Per ulteriori informazioni, consulta Configurare una ODBC connessione JDBC or per utilizzare IAM le credenziali nella Amazon Redshift Management Guide. Un esempio di ciò èURL:
jdbc:redshift:iam://
examplecluster.abc123xyz789
.us-west-2
.redshift.amazonaws.com:5439/dev
Le seguenti autorizzazioni sono necessarie per il ruolo di esecuzione del lavoro quando sono soddisfatte le condizioni fornite:
Autorizzazione | Condizioni richieste per il ruolo di esecuzione di processo |
---|---|
redshift:GetClusterCredentials
|
Richiesto al JDBC conducente per recuperare le credenziali da Amazon Redshift |
redshift:DescribeCluster
|
Obbligatorio se si specifica il cluster Amazon Redshift e Regione AWS al JDBC URL posto dell'endpoint |
redshift-serverless:GetCredentials
|
Richiesto al JDBC driver per recuperare le credenziali da Amazon Redshift Serverless |
redshift-serverless:GetWorkgroup
|
Obbligatorio se utilizzi Amazon Redshift Serverless e specifichi il nome del gruppo di lavoro e la URL regione |
Connessione ad Amazon Redshift all'interno di un altro VPC
Quando configuri un cluster Amazon Redshift o un gruppo di lavoro Amazon Redshift Serverless con un provisioning nell'ambito di VPC un, devi configurare la VPC connettività per l'applicazione EMR Amazon Serverless per accedere alle risorse. Per ulteriori informazioni su come configurare la VPC connettività su un'applicazione Serverless, consulta. EMR Configurazione dell'VPCaccesso per le applicazioni EMR Serverless per la connessione ai dati
-
Se il cluster Amazon Redshift o il gruppo di lavoro Serverless Amazon Redshift fornito sono accessibili al pubblico, puoi specificare una o più sottoreti private a cui è collegato un gateway quando crei applicazioni Serverless. NAT EMR
-
Se il cluster Amazon Redshift o il gruppo di lavoro Serverless Amazon Redshift fornito non sono accessibili al pubblico, devi creare un VPC endpoint gestito Amazon Redshift per il tuo cluster Amazon Redshift come descritto in. Configurazione dell'VPCaccesso per le applicazioni EMR Serverless per la connessione ai dati In alternativa, puoi creare il tuo gruppo di lavoro Amazon Redshift Serverless come descritto in Connessione ad Amazon Redshift Serverless nella Amazon Redshift Management Guide. È necessario associare il cluster o il sottogruppo alle sottoreti private specificate al momento della creazione dell'applicazione Serverless. EMR
Nota
Se utilizzi l'autenticazione IAM basata e le tue sottoreti private per l'applicazione EMR Serverless non dispongono di un NAT gateway collegato, devi anche creare un VPC endpoint su tali sottoreti per Amazon Redshift o Amazon Redshift Serverless. In questo modo, l'autista può recuperare le credenziali. JDBC