Wie verwende ich eine Amazon-EC2-Instance als Bastion-Host, um von einem lokalen Computer aus eine Verbindung zu einer privaten Amazon-RDS-DB-Instance herzustellen?
Ich möchte eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance als Bastion (Jump)-Host verwenden, um von einem lokalen Computer aus eine Verbindung zu einer privaten Amazon Relational Database Service (Amazon RDS)-DB-Instance herzustellen.
Lösung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Um eine Verbindung zu einer privaten Amazon-RDS- oder Amazon-Aurora-DB-Instance herzustellen, empfiehlt es sich, ein VPN oder AWS Direct Connect zu verwenden. Wenn du keine der beiden Optionen verwenden kannst, verwende einen Bastion-Host.
Die folgende Beispielkonfiguration bezieht sich auf eine Instance von Amazon RDS für MySQL, die sich in einer Amazon Virtual Private Cloud (Amazon VPC) befindet. Das Beispiel verwendet Sicherheitsgruppen, um den Zugriff einzuschränken. Du kannst jedoch die Netzwerk-Zugriffssteuerungsliste (Netzwerk-ACL) von Subnetzen einschränken, um die Verbindung sicherer zu machen.
Starten und Konfigurieren einer EC2-Instance
Führe die folgenden Schritte aus:
- Öffne die Amazon EC2-Konsole und wähle dann Instance starten aus.
- Wähle ein Amazon Machine Image (AMI) aus.
- Wähle einen Instance-Typ und dann Weiter: Konfigurieren von Instance-Details.
- Wähle für Netzwerk die VPC aus, die die Amazon-RDS-DB-Instance verwendet.
- Für Subnetz das private Subnetz in der VPC auswählen
- Wähle Weiter: Speicher hinzufügen und ändere den Speicher dann nach Bedarf.
- Wähle Weiter: Tags hinzufügen und füge dann nach Bedarf Tags hinzu.
- Wähle Weiter: Sicherheitsgruppe konfigurieren aus.
- Wähle Regel hinzufügen aus und gib dann die folgenden Werte ein:
Gib für Typ Benutzerdefinierte TCP-Regel ein
Gib für Protokoll TCP ein
Gib im Feld Portbereich 22 ein
Gib als Quelle die Sicherheitsgruppe ein, die vom Amazon-EC2-Connect-Endpunkt verwendet wird. - Wähle Überprüfung und Lancierung und dann Starten aus.
Die Sicherheitsgruppen der Amazon-RDS-DB-Instance konfigurieren
Hinweis: Informationen zur automatischen Herstellung einer Verbindung einer oder mehrerer EC2-Instances zu einer Amazon-RDS-Datenbank findest du unter Automatische Herstellung einer Verbindung einer Instance zu einer RDS-Datenbank mithilfe der RDS-Konsole.
Führe die folgenden Schritte aus:
- Öffne die Amazon-RDS-Konsole.
- Wähle im Navigationsbereich Datenbanken aus.
- Wähle den Namen der Amazon-RDS-DB-Instance. Wenn du noch keine hast, erstelle eine RDS-DB-Instance.
- Wähle Konnektivität und Sicherheit.
- Wähle im Abschnitt Sicherheit den Link unter VPC-Sicherheitsgruppen aus.
- Wähle die Sicherheitsgruppe aus, wähle Aktionen und dann Bearbeiten von Regeln für eingehenden Datenverkehr aus.
- Wähle Regel hinzufügen aus und gib dann Folgendes ein:
Gib für Typ Benutzerdefinierte TCP-Regel ein
Gib für Protokoll TCP ein
Gib für Portbereich den Port deiner Amazon-RDS-DB-Instance ein.
Gib für Quelle die private IP-Adresse deiner EC2-Instance ein. - Wähle Speichern.
Diese Konfiguration für die Sicherheitsgruppe ermöglicht Datenverkehr von der privaten IP-Adresse der EC2-Instance. Wenn die EC2-Instance und die Amazon-RDS-DB-Instance dieselbe VPC verwenden, musst du die Routing-Tabelle der Amazon-RDS-DB-Instance nicht ändern. Wenn die VPC unterschiedlich ist, erstelle eine VPC-Peering-Verbindung, um Verbindungen zwischen diesen VPCs zu ermöglichen.
Hinweis: Wenn du eine skalierbarere Lösung verwendest, überprüfe die Konfiguration. Wenn du beispielsweise die Sicherheitsgruppen-ID in einer Sicherheitsgruppenregel verwendest, stelle sicher, dass dadurch der Zugriff auf eine Instance nicht eingeschränkt wird. Konfiguriere die Regel stattdessen so, dass der Zugriff auf alle Ressourcen eingeschränkt wird, die die spezifische Sicherheitsgruppen-ID verwenden.
Einen EC2-Instance-Verbindungsendpunkt erstellen
- Öffne die Amazon-VPC-Konsole.
- Wähle im Navigationsbereich Endpunkte aus.
- Wähle Endpunkt erstellen aus und gib dann die Endpunkteinstellungen an.
(Optional) Gib für Name-Tag einen Namen für den Endpunkt ein.
Wähle für Servicekategorie die Option EC2-Instance-Verbindungsendpunkt aus.
Wähle für VPC die VPC mit den Ziel-Instances aus.
(Optional) Um Client-IP-Adressen beizubehalten, erweitere Zusätzliche Einstellungen und aktiviere das Kontrollkästchen. Andernfalls wird standardmäßig die Netzwerkschnittstelle des Endpunkts als Client-IP-Adresse verwendet.
Wähle für Sicherheitsgruppen die Sicherheitsgruppe aus, die du dem Endpunkt zuordnen möchtest. Andernfalls wird standardmäßig die Standardsicherheitsgruppe für die VPC verwendet.
Wähle für Subnetz das Subnetz aus, in dem der Endpunkt erstellt werden soll.
(Optional) Um ein Tag hinzuzufügen, wähle Neues Tag hinzufügen und gib den Tag-Schlüssel und den Tag-Wert ein. - Überprüfe die Einstellungen und wähle dann Endpunkt erstellen aus.
- Der Anfangsstatus des Endpunkts lautet Ausstehend. Um eine Verbindung zu einer Instance herzustellen, musst du warten, bis der Endpunktstatus Verfügbar ist. Dies kann bis zu einigen Minuten dauern.
Von deinem lokalen Computer aus eine Verbindung zur RDS-DB-Instance herstellen
Hinweis: Du musst Zugriff auf die AWS CLI haben.
Gehe wie folgt vor, um von deinem lokalen MySQL-Client über einen SSH-Tunnel eine Verbindung zu einer privaten RDS-Instance herzustellen:
Linux oder macOS
-
Führe den folgenden Befehl aus, um einen Tunnel vom lokalen Computer zur EC2-Instance zu öffnen:
aws ec2-instance-connect open-tunnel --instance-id ec2-instance-ID --local-port 8888Hinweis: Ersetze ec2-instance-ID durch deine EC2-Instance-ID.
-
Öffne eine zweite Verbindung und führe den folgenden Befehl aus, um über eine EC2-Instance einen SSH-Tunnel vom lokalen Host zur RDS-Datenbank zu erstellen:
ssh -i YOUR_EC2_KEY EC2_USER@EC2_HOST -p EC2_TUNNEL_PORT -L LOCAL_PORT:RDS_ENDPOINT:REMOTE_PORT -N -fHinweis: Ersetze die folgenden Werte:
YOUR_EC2_KEY durch den Pfad zu deiner privaten EC2-Schlüsseldatei
EC2_USER durch deinen EC2-Instance-Benutzernamen
EC2_HOST durch den Hostnamen deiner EC2-Instance
EC2_TUNNEL_PORT durch den von dir konfigurierten Port
LOCAL_PORT durch einen unbenutzten Port auf dem lokalen Computer
RDS_ENDPOINT durch den Endpunkt der RDS-Instance
REMOTE_PORT durch den Port, den die Amazon-RDS-DB in der RDS-Instance verwendet. -
Verwende eine dritte Verbindung und führe den folgenden Befehl aus, um vom lokalen Computer aus eine Verbindung zur Amazon-RDS-Instance herzustellen:
mysql -h 127.0.0.1 -P LOCAL_PORT -u RDS_USER -pHinweis: Ersetze die folgenden Werte:
LOCAL_PORT durch die Nummer deines lokalen Ports
DB_USER durch deinen RDS-DB-Benutzernamen
DB password durch das Amazon-RDS-DB-Passwort
Ähnliche Informationen
Wie löse ich Probleme bei der Herstellung einer Verbindung mit meiner Amazon-RDS-DB-Instance?
- Sprache
- Deutsch
