New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Wie greife ich von meinem lokalen Computer aus auf einen privaten Amazon Redshift-Cluster zu?
Ich möchte meinen lokalen Computer verwenden, um auf einen Amazon Redshift-Cluster zuzugreifen, der sich in einem privaten Subnetz von Amazon Virtual Private Cloud (Amazon VPC) befindet.
Kurzbeschreibung
Verwenden einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance und SQL Workbench/J, um einen SSH-Tunnel zu erstellen. Der Tunnel leitet den gesamten eingehenden Verkehr vom lokalen Computer zum privaten Amazon Redshift-Cluster weiter.
Behebung
Amazon VPC, EC2-Instance und Amazon Redshift-Cluster erstellen
Führen Sie die folgenden Schritte aus, um die Amazon VPC, die EC2-Instance und den Amazon Redshift-Cluster zu erstellen:
-
Erstellen Sie eine Amazon VPC mit öffentlichen und privaten Subnetzen.
-
Starten Sie eine EC2-Instance von einem Amazon Linux 2 Amazon Machine Image (AMI) im öffentlichen Subnetz der Amazon VPC. Wenn Sie die Instance erstellen, wählen Sie die folgenden Optionen:
Wählen Sie unter Öffentliche IP automatisch zuweisen die Option Aktivieren aus. Oder weisen Sie der Instance eine Elastic IP-Adresse zu.
Erstellen Sie eine neue Sicherheitsgruppe mit einer SSH-Regel.
Wählen Sie für Quelle die Option Benutzerdefiniert aus, und geben Sie dann Ihren CIDR-Block ein. Oder wählen Sie Meine IP aus. -
Erstellen Sie auf der Amazon Redshift-Konsole ein Cluster-Subnetz. Geben Sie folgende Informationen ein:
Wählen Sie für VPC-ID die ID Ihrer Amazon VPC aus.
Wählen Sie für Subnetz-ID die ID des privaten Subnetzes aus. -
Fügen Sie der Sicherheitsgruppe eine Regel hinzu, die eingehenden Datenverkehr von der Sicherheitsgruppe der Instance zulässt. Geben Sie folgende Informationen ein:
Wählen Sie für Typ die Option Benutzerdefiniertes TCP aus.
Geben Sie für Anschlussbereich den Standard-Anschluss für Amazon Redshift ein, 5439.
Wählen Sie unter Quelle die Option Benutzerdefiniert aus, und geben Sie dann den Namen Ihrer Sicherheitsgruppe ein. -
Starten Sie einen neuen Amazon Redshift-Cluster oder stellen Sie einen Cluster aus einem Snapshot wieder her. Wählen Sie auf der Seite Zusätzliche Konfiguration die folgenden Optionen aus:
Wählen Sie für VPC auswählen Ihre Amazon VPC aus.
Wählen Sie für Cluster-Subnetzgruppe Ihre Subnetzgruppe aus.
Wählen Sie für Öffentlich zugänglich Nein aus.
Wählen Sie für VPC-Sicherheitsgruppen Ihre Sicherheitsgruppe aus. Warten Sie, bis sich der Cluster im Status Verfügbar befindet. -
Führen Sie den folgenden Befehl aus, um von Ihrem lokalen Computer aus eine Verbindung zur EC2-Instance herzustellen:
ssh -i "your_key.pem" ec2-user@your_EC2_endpoint
**Hinweis:**Ersetzen Sie your\ _key.pem und your\ _EC2\ _endpoint durch Ihre Werte. Weitere Informationen finden Sie unter Herstellen einer Verbindung zu Ihrer Linux-Instance von Linux oder macOS aus mithilfe von SSH.
-
Führen Sie den folgenden Befehl aus, um telnet zu installieren:
sudo yum install telnet
-
Um telnet zum Testen der Verbindung zu Ihrem Amazon Redshift-Cluster zu verwenden, führen Sie den folgenden Befehl aus:
telnet cluster-endpoint cluster-port
Hinweis: Ersetzen Sie cluster-endpoint und cluster-port durch Ihre Werte.
Oder führen Sie den folgenden Befehl aus, um mit dig zu bestätigen, dass Ihr lokaler Computer die private IP-Adresse des Amazon Redshift-Clusters erreichen kann:dig cluster-endpoint
**Hinweis:**Ersetzen Sie cluster-endpoint durch Ihren Cluster-Endpunkt.
Erstellen Sie den Tunnel
Gehen Sie wie folgt vor, um einen Tunnel zu erstellen:
- Installieren Sie SQL Workbench/J auf Ihrem lokalen Computer.
- Laden Sie den neuesten Amazon Redshift JDBC-Treiber herunter.
- Verwenden Sie in SQL Workbench/J den JDBC-Treiber, um ein Verbindungsprofil zu erstellen.
- Um die SSH-Verbindung in SQL Workbench/J zu konfigurieren, wählen Sie SSH und geben Sie dann die folgenden Informationen ein:
Geben Sie für den SSH-Hostnamen die öffentliche IP-Adresse oder den DNS der EC2-Instance ein.
Geben Sie für den SSH-Anschluss 22 ein.
Geben Sie für den Benutzernamen, EC2-Benutzer ein.
Geben Sie für Private Key-Datei die PEM-Datei ein, die Sie beim Erstellen der EC2-Instance heruntergeladen haben.
Lassen Sie das Feld für Passwort leer.
Geben Sie für Lokaler Anschluss einen beliebigen freien lokalen Anschluss ein. Ihr Amazon Redshift-Cluster verwendet standardmäßig Anschluss 5439.
Geben Sie für DB-Hostname den Cluster-Endpunkt ein. Der Endpunkt darf weder die Anschlussnummer noch den Datenbanknamen enthalten.
Geben Sie für DB-Anschluss 5439 ein.
Wählen Sie die Option JDBC-URL neu schreiben. - Wählen Sie OK aus.
- Stellen Sie sicher, dass Sie die JDBC-URL, den Superuser-Namen und das Passwort korrekt eingegeben haben.
- Um zu bestätigen, dass die Verbindung funktioniert, wählen Sie Test aus. Weitere Informationen finden Sie unter Herstellung einer Verbindung über einen SSH-Tunnel auf der SQL Workbench/J-Website.
(Optional) Ändern Sie die Verbindung für einen AWS Identity and Access Management (IAM)-Benutzer
Um als IAM-Benutzer eine Verbindung zum Amazon Redshift-Cluster herzustellen, führen Sie die folgenden Schritte aus, um das Verbindungsprofil zu ändern:
- Überprüfen Sie die IAM-Benutzerrichtlinie. Die IAM-Benutzerrichtlinie muss die Amazon Redshift-Aktionen GetClusterCredentials, JoinGroup und CreateClusterUser für die Ressourcen dbgroup, dbuser und dbname zulassen. Im Folgenden finden Sie ein Beispiel für eine IAM-Benutzerrichtlinie:
**Hinweis:Ersetzen Sie us-west-2 durch die AWS-Region, in der sich Ihr Cluster befindet, 012345678912 durch Ihre AWS-Konto-ID und user\ _name durch den Namen des Amazon Redshift-Benutzers. Sie können auch „\ ***“ anstelle eines bestimmten Benutzernamens verwenden.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials", "redshift:CreateClusterUser", "redshift:JoinGroup" ], "Resource": [ "arn:aws:redshift:eu-west-2:012345678912:dbgroup:clustername/group_name", "arn:aws:redshift:eu-west-2:012345678912:dbuser:clustername/user_name or * ", "arn:aws:redshift:eu-west-2:012345678912:dbname:clustername/database_name" ] } ] }
- Ändern Sie in SQL Workbench/J den ersten Teil der JDBC-URL des Verbindungsprofils in jdbc:redshift:iam. Ändern Sie beispielsweise die JDBC-URL in jdbc:redshift:iam://127.0.0.1:5439/example.
- Wählen Sie Erweiterte Eigenschaften, und geben Sie dann die folgenden Informationen ein:
Geben Sie für AccessKeyID die Zugriffsschlüssel-ID des IAM-Benutzers ein.
Geben Sie für SecretAccessKey den geheimen Zugriffsschlüssel des IAM-Benutzers ein.
(Optional) Wählen Sie für DbGroups diese Option, um den IAM-Benutzer zu zwingen, einer vorhandenen Gruppe beizutreten.
Geben Sie für DbUser den Namen des IAM-Benutzers ein.
Setzen Sie die Option für AutoCreate auf true.
Geben Sie für ClusterID den Namen des Amazon Redshift-Clusters ein.
Geben Sie für Region die Region ein, in der sich der Cluster befindet, z. B. us-east-1. - Wählen Sie auf der Seite mit dem Cluster-Verbindungsprofil die Option Test aus.
Ähnliche Informationen
Warum kann ich keine Verbindung mit meinem Amazon Redshift-Cluster herstellen?

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren