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:

  1. Starten und konfigurieren Sie Ihre EC2-Instance und konfigurieren Sie die Netzwerkeinstellungen der Instance.
  2. Konfigurieren Sie die Sicherheitsgruppen der RDS-DB-Instance.
  3. 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

  1. Öffnen Sie die Amazon-EC2-Konsole und wählen Sie dann Instance starten aus.
  2. Wählen Sie ein Amazon Machine Image (AMI) aus.
  3. Wählen Sie einen Instance-Typ aus, und wählen Sie dann Weiter: Instance-Details konfigurieren.
  4. Wählen Sie für Netzwerk die VPC aus, welche die RDS-DB-Instance verwendet.
  5. 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.
  6. Wählen Sie Weiter: Speicher hinzufügen und passen Sie den Speicher nach Bedarf an.
  7. Wählen Sie Weiter: Tags hinzufügen und fügen Sie nach Bedarf Tags hinzu.
  8. 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.
  9. Wählen Sie Überprüfen und Starten.
  10. Wählen Sie Starten.

Konfigurieren Sie die Sicherheitsgruppen der RDS-DB-Instance

  1. Öffnen Sie die Amazon-RDS-Konsole und wählen Sie im Navigationsbereich Datenbanken aus.
  2. Wählen Sie den Namen der RDS-DB-Instance aus. Oder erstellen Sie eine RDS-DB-Instance, falls Sie noch keine haben.
  3. Wählen Sie die Registerkarte Konnektivität und Sicherheit aus.
  4. Wählen Sie im Abschnitt Sicherheit den Link unter VPC-Sicherheitsgruppen aus.
  5. Wählen Sie die Sicherheitsgruppe aus, wählen Sie Aktionen und wählen Sie Eingangsregeln bearbeiten.
  6. 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
  7. 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:

  1. Starten Sie eine neue Verbindung und wählen Sie Standard TCP/IP über SSH als Verbindungsmethode aus.
  2. 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.
  3. 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.
  4. Wählen Sie Verbindung testen aus.
  5. 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.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?