Authentifizierung mit der Amazon-Redshift-Integration für Apache Spark - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Authentifizierung mit der Amazon-Redshift-Integration für Apache Spark

Verwenden Sie AWS Secrets Manager um Anmeldeinformationen abzurufen und eine Verbindung zu Amazon Redshift herzustellen

Sie können sich sicher bei Amazon Redshift authentifizieren, indem Sie die Anmeldeinformationen in Secrets Manager speichern und den Spark-Job aufrufen lassen, GetSecretValue API um sie abzurufen:

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

Authentifizieren Sie sich mit einem Treiber bei Amazon Redshift JDBC

Geben Sie den Benutzernamen und das Passwort in der JDBC URL

Sie können einen Spark-Job bei einem Amazon Redshift-Cluster authentifizieren, indem Sie den Namen und das Passwort der Amazon Redshift Redshift-Datenbank in der angeben. JDBC URL

Anmerkung

Wenn Sie die Datenbankanmeldedaten in übergeben, URL kann jederURL, der Zugriff auf die hat, auch auf die Anmeldeinformationen zugreifen. Diese Methode wird im Allgemeinen nicht empfohlen, da sie keine sichere Option ist.

Wenn die Sicherheit Ihrer Anwendung kein Problem darstellt, können Sie das folgende Format verwenden, um den Benutzernamen und das Passwort in der Datei festzulegen JDBCURL:

jdbc:redshift://redshifthost:5439/database?user=username&password=password

Verwenden Sie die IAM basierte Authentifizierung mit der Amazon EMR Serverless-Jobausführungsrolle

Ab Amazon EMR Serverless Version 6.9.0 ist der Amazon Redshift JDBC Redshift-Treiber 2.1 oder höher in der Umgebung enthalten. Bei JDBC Treiber 2.1 und höher können Sie den unformatierten Benutzernamen JDBC URL und das Passwort angeben und nicht angeben.

Stattdessen können Sie ein jdbc:redshift:iam://-Schema angeben. Dadurch wird der JDBC Treiber angewiesen, Ihre EMR Serverless-Job-Ausführungsrolle zu verwenden, um die Anmeldeinformationen automatisch abzurufen. Weitere Informationen finden Sie unter Konfiguration einer JDBC ODBC OR-Verbindung für die Verwendung von IAM Anmeldeinformationen im Amazon Redshift Management Guide. Ein Beispiel dafür URL ist:

jdbc:redshift:iam://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev

Die folgenden Berechtigungen sind für Ihre Jobausführungsrolle erforderlich, wenn die angegebenen Bedingungen erfüllt sind:

Berechtigung Bedingungen, sofern sie für die Rolle Auftragsausführung erforderlich sind
redshift:GetClusterCredentials Erforderlich, damit der JDBC Treiber die Anmeldeinformationen von Amazon Redshift abrufen kann
redshift:DescribeCluster Erforderlich, wenn Sie den Amazon Redshift Redshift-Cluster angeben und AWS-Region im JDBC URL statt im Endpunkt
redshift-serverless:GetCredentials Erforderlich, damit der JDBC Treiber die Anmeldeinformationen von Amazon Redshift Serverless abrufen kann
redshift-serverless:GetWorkgroup Erforderlich, wenn Sie Amazon Redshift Serverless verwenden und die URL in Form von Arbeitsgruppenname und Region angeben

Herstellen einer Verbindung zu Amazon Redshift innerhalb eines anderen VPC

Wenn Sie einen bereitgestellten Amazon Redshift-Cluster oder eine Amazon Redshift Serverless-Arbeitsgruppe unter einer einrichten, müssen Sie die VPC Konnektivität für Ihre Amazon EMR Serverless-Anwendung konfigurierenVPC, um auf die Ressourcen zugreifen zu können. Weitere Informationen zur Konfiguration der VPC Konnektivität in einer serverlosen Anwendung finden Sie unter. EMR Zugriff konfigurieren VPC

  • Wenn Ihr bereitgestellter Amazon Redshift-Cluster oder Ihre Amazon Redshift Serverless-Arbeitsgruppe öffentlich zugänglich ist, können Sie bei der Erstellung serverloser Anwendungen ein oder mehrere private Subnetze angeben, an die ein NAT Gateway angeschlossen ist. EMR

  • Wenn Ihr bereitgestellter Amazon Redshift-Cluster oder Ihre Amazon Redshift Serverless-Arbeitsgruppe nicht öffentlich zugänglich ist, müssen Sie einen von Amazon Redshift verwalteten VPC Endpoint für Ihren Amazon Redshift Redshift-Cluster erstellen, wie unter beschrieben. Zugriff konfigurieren VPC Alternativ können Sie Ihre Amazon Redshift Serverless-Arbeitsgruppe wie unter Verbinden mit Amazon Redshift Serverless im Amazon Redshift Management Guide beschrieben erstellen. Sie müssen Ihren Cluster oder Ihre Untergruppe den privaten Subnetzen zuordnen, die Sie bei der Erstellung Ihrer serverlosen Anwendung angeben. EMR

Anmerkung

Wenn Sie die IAM basierte Authentifizierung verwenden und an Ihre privaten Subnetze für die EMR Serverless-Anwendung kein NAT Gateway angeschlossen ist, müssen Sie auch einen VPC Endpunkt in diesen Subnetzen für Amazon Redshift oder Amazon Redshift Serverless erstellen. Auf diese Weise kann der Treiber die Anmeldeinformationen abrufenJDBC.