Wie kann ich von einem lokalen Computer aus eine Verbindung zu einer privaten Amazon RDS-DB-Instance herstellen, wenn ich eine Amazon-EC2-Instance als Bastion-Host verwende?
Letzte Aktualisierung: 29.03.2022
Wie kann ich von einem lokalen Computer aus eine Verbindung zu einer privaten DB-Instance im Amazon Relational Database Service (Amazon RDS) herstellen, wenn ich eine Instance aus der Amazon Elastic Compute Cloud (Amazon EC2) als Bastion-(Jump-)Host verwende?
Kurzbeschreibung
Gehen Sie folgendermaßen vor, um eine Verbindung zu einer privaten RDS-DB-Instance von einem lokalen Computer mit einer EC2-Instance als Jump-Server herzustellen:
- Starten und konfigurieren Sie Ihre EC2-Instance und konfigurieren Sie die Netzwerkeinstellungen der Instance.
- Konfigurieren Sie die Sicherheitsgruppen der RDS-DB-Instance.
- Stellen Sie von Ihrem lokalen Gerät aus eine Verbindung zur RDS-DB-Instance her.
Wichtig: Für das Herstellen einer Verbindung zu einer privaten Amazon-RDS- oder Amazon-Aurora-DB-Instance ist es eine bewährte Methode, ein VPN oder AWS Direct Connect zu verwenden. Wenn Sie kein VPN oder Direct Connect verwenden können, verwenden Sie einen Bastion-Host. In der folgenden Beispielkonfiguration ist der Zugriff mithilfe von Sicherheitsgruppen eingeschränkt. Sie können jedoch auch die Netzwerk-Zugriffskontrollliste (Netzwerk-ACL) von Subnetzen einschränken, um die Verbindung sicherer zu machen. Sie können auch den Routbereich des Internet-Gateways einschränken, um einen kleineren Bereich anstelle von 0.0.0.0/0 zu verwenden. Beispielsweise können Sie beim Hinzufügen des Internet-Gateways nur den erforderlichen CIDR-Bereich in die Routing-Tabelle für das Ziel einfügen. Weitere Informationen finden Sie unter Beispiele für Routingoptionen.
Behebung
Die folgende Beispielkonfiguration gilt für eine Amazon-RDS-for-MySQL-Instance in einer Amazon Virtual Private Cloud (Amazon VPC). Für die Instance sind Sicherheitsgruppen für eine EC2-Instance eingerichtet.
Starten und Konfigurieren der EC2-Instance
- Öffnen Sie die Amazon-EC2-Konsole und wählen Sie dann Instance starten aus.
- Wählen Sie ein Amazon Machine Image (AMI) aus.
- Wählen Sie einen Instance-Typ aus, und wählen Sie dann Weiter: Instance-Details konfigurieren.
- Wählen Sie für Netzwerk die VPC aus, welche die RDS-DB-Instance verwendet.
- Wählen Sie für Subnet das Subnetz aus, das ein Internet-Gateway in seiner Routing-Tabelle enthält. Wenn Sie noch kein Internet-Gateway haben, können Sie es dem Subnetz hinzufügen, nachdem die EC2-Instance erstellt wurde.
- Wählen Sie Weiter: Speicher hinzufügen und passen Sie den Speicher nach Bedarf an.
- Wählen Sie Weiter: Tags hinzufügen und fügen Sie nach Bedarf Tags hinzu.
- Wählen Sie Weiter: Sicherheitsgruppe konfigurieren, wählen Sie Regel hinzufügen und geben Sie Folgendes ein:
Typ: Benutzerdefinierte TCP-Regel
Protokoll: TCP
Portbereich: 22
Quelle: Geben Sie die IP-Adresse Ihres lokalen Computers ein. Standardmäßig ist die Quell-IP-Adresse für alle offen. Sie können den Zugriff jedoch auf Ihre lokale öffentliche IP-Adresse beschränken. - Wählen Sie Überprüfen und Starten.
- Wählen Sie Starten.
Konfigurieren Sie die Sicherheitsgruppen der RDS-DB-Instance
- Öffnen Sie die Amazon-RDS-Konsole und wählen Sie im Navigationsbereich Datenbanken aus.
- Wählen Sie den Namen der RDS-DB-Instance aus. Oder erstellen Sie eine RDS-DB-Instance, falls Sie noch keine haben.
- Wählen Sie die Registerkarte Konnektivität und Sicherheit aus.
- Wählen Sie im Abschnitt Sicherheit den Link unter VPC-Sicherheitsgruppen aus.
- Wählen Sie die Sicherheitsgruppe aus, wählen Sie Aktionen und wählen Sie Eingangsregeln bearbeiten.
- Wählen Sie Regel hinzufügen und geben Sie Folgendes ein:
Typ: Benutzerdefinierte TCP-Regel
Protokoll: TCP
Port Range: Geben Sie den Port Ihrer RDS-DB-Instance ein
Quelle: Geben Sie die private IP-Adresse Ihrer EC2-Instance ein - Wählen Sie Speichern aus.
Diese Konfiguration der Sicherheitsgruppe erlaubt Datenverkehr von der privaten IP-Adresse der EC2-Instance. Wenn die EC2-Instance und die RDS-DB-Instance dieselbe VPC verwenden, müssen Sie die von der RDS-DB-Instance verwendete Routing-Tabelle nicht ändern. Wenn die VPC unterschiedlich ist, erstellen Sie eine VPC-Peering-Verbindung, um Verbindungen zwischen diesen VPCs zu erlauben.
Stellen Sie von Ihrem lokalen Computer aus eine Verbindung zur RDS-DB-Instance her
Je nach verwendetem Client unterscheiden sich die Schritte zum Herstellen einer Verbindung mit der RDS-DB-Instance. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit einer Amazon-RDS-DB-Instance. Wenn Sie MySQL verwenden, ist es eine bewährte Methode, SSL zum Verschlüsseln der Verbindung zwischen der Clientanwendung und Amazon RDS zu verwenden.
Im folgenden Beispiel wird der MySQL Workbench-Client verwendet, um eine Verbindung zum Bastion-Host herzustellen:
- Starten Sie eine neue Verbindung und wählen Sie Standard TCP/IP über SSH als Verbindungsmethode aus.
- Geben Sie die folgenden Details der EC2-Instance für die SSH-Einstellungen ein:
SSH-Hostname: Geben Sie den öffentlichen DNS-Namen der EC2-Instance ein.
SSH-Benutzername: Geben Sie den Benutzernamen für Ihre EC2-Instance ein. „ec2-user“ ist beispielsweise der Benutzername für EC2-Linux-Computer.
SSH-Schlüsseldatei: Wählen Sie den privaten Schlüssel aus, der beim Erstellen der EC2-Instance verwendet wurde. - Geben Sie für die MySQL-Instance-Einstellungen Folgendes ein:
MySQL-Hostname: Geben Sie den Endpunkt der RDS-DB-Instance ein.
MySQL Server-Port: Geben Sie 3306 (oder den von Ihnen verwendeten benutzerdefinierten Port) ein.
Benutzername: Geben Sie den Haupt-Benutzernamen der RDS-DB-Instance ein.
Passwort: Geben Sie das Haupt-Passwort der RDS-DB-Instance ein. - Wählen Sie Verbindung testen aus.
- Geben Sie nach erfolgreicher Verbindung einen Verbindungsnamen ein und speichern Sie die Verbindung.
Um von Ihrem lokalen MySQL-Client über einen SSH-Tunnel eine Verbindung zu einer privaten RDS-Instance herzustellen, sind die folgenden Befehle zu verwenden.
Linux oder macOS:
Führen Sie die folgenden Befehle aus:
ssh -N -L 3336:127.0.0.1:3306 [user]@[server_ip]
mysql -u MYSQL_USER -p -h 127.0.0.1
Hinweis: Ersetzen Sie user, server_ip und mysql_user durch Ihre Angaben.
Windows PowerShell:
ssh -i "<filename>.pem" <user_name>@<EC2_Endpoint> -L <Port_number>:<RDS_Endpoint>:<Port_number> -N
Hinweis: Ersetzen Sie filename und username durch Ihre Angaben. Ersetzen Sie EC2_Endpoint, port_number, RDS_Ednpoint und Port_number durch die Angaben zu Ihrer RDS-Instance.
Ähnliche Informationen
War dieser Artikel hilfreich?
Benötigen Sie Hilfe zur Fakturierung oder technischen Support?