Zugriff auf Ihren Cluster - Amazon MemoryDB

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.

Zugriff auf Ihren Cluster

Ihre MemoryDB-Instances sind für den Zugriff über eine EC2 Amazon-Instance konzipiert.

Sie können von einer EC2 Amazon-Instance im selben Amazon auf Ihren MemoryDB-Knoten zugreifen. VPC Oder Sie können mithilfe von VPC Peering von einem Amazon EC2 in einem anderen Amazon auf Ihren MemoryDB-Knoten zugreifen. VPC

Gewähren Sie Zugriff auf Ihren Cluster

Sie können nur von einer EC2 Amazon-Instance aus, die im selben Amazon läuft, eine Verbindung zu Ihrem MemoryDB-Cluster herstellen. VPC In diesem Fall müssen Sie Netzwerkzugang zum Cluster gewähren.

So gewähren Sie Netzwerkzugang von einer VPC Amazon-Sicherheitsgruppe zu einem Cluster
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im linken Navigationsbereich unter Netzwerk und Sicherheit die Option Sicherheitsgruppen aus.

  3. Wählen Sie aus der Liste der Sicherheitsgruppen die Sicherheitsgruppe für Ihr Amazon ausVPC. Sofern Sie keine Sicherheitsgruppe für die Verwendung von MemoryDB erstellt haben, wird diese Sicherheitsgruppe als Standard bezeichnet.

  4. Wählen Sie die Registerkarte Inbound und verfahren Sie dann wie folgt:

    1. Wählen Sie Edit aus.

    2. Wählen Sie Regel hinzufügen aus.

    3. Wählen Sie in der Spalte Typ die Option Benutzerdefinierte TCP Regel aus.

    4. Geben Sie in das Feld Port Range die Portnummer Ihres Clusterknotens ein. Diese Nummer muss mit der Nummer übereinstimmen, die Sie beim Starten des Clusters angegeben haben. Der Standardport für Valkey und Redis ist OSS. 6379

    5. Wählen Sie im Feld Quelle die Option Anywhere mit dem Portbereich (0.0.0.0/0) aus, sodass jede EC2 Amazon-Instance, die Sie in Ihrem Amazon starten, eine Verbindung zu Ihren VPC MemoryDB-Knoten herstellen kann.

      Wichtig

      Wenn Sie den MemoryDB-Cluster für 0.0.0.0/0 öffnen, wird der Cluster nicht dem Internet zugänglich gemacht, da er keine öffentliche IP-Adresse hat und daher nicht von außerhalb des darauf zugegriffen werden kann. VPC Die Standardsicherheitsgruppe kann jedoch auf andere EC2 Amazon-Instances im Kundenkonto angewendet werden, und diese Instances können eine öffentliche IP-Adresse haben. Wenn diese Instances zufälligerweise eine Aktion auf dem Standardport ausführen, dann könnte dieser Service unbeabsichtigt zugänglich gemacht werden. Daher empfehlen wir, eine VPC Sicherheitsgruppe zu erstellen, die ausschließlich von MemoryDB verwendet wird. Weitere Informationen finden Sie unter Benutzerdefinierte Sicherheitsgruppen.

    6. Wählen Sie Save (Speichern) aus.

Wenn Sie eine EC2 Amazon-Instance in Ihrem Amazon startenVPC, kann diese Instance eine Verbindung zu Ihrem MemoryDB-Cluster herstellen.

Von außen auf MemoryDB-Ressourcen zugreifen AWS

MemoryDB ist ein Dienst, der so konzipiert ist, dass er intern für Sie verwendet werden kann. VPC Von einem externen Zugriff wird wegen der Latenz des Internetverkehrs und aufgrund von Sicherheitsbedenken abgeraten. Wenn jedoch für Test- oder Entwicklungszwecke ein externer Zugriff auf MemoryDB erforderlich ist, kann dies über einen erfolgen. VPN

Mit dem AWS Client VPN ermöglichen Sie den externen Zugriff auf Ihre MemoryDB-Knoten mit den folgenden Vorteilen:

  • Eingeschränkter Zugriff auf zugelassene Benutzer oder Authentifizierungsschlüssel;

  • Verschlüsselter Verkehr zwischen dem VPN Client und dem Endpunkt; AWS VPN

  • beschränkter Zugriff auf bestimmte Subnetze oder Knoten,

  • einfacher Widerruf des Zugriffs von Benutzern oder Authentifizierungsschlüsseln,

  • Prüfung von Verbindungen.

Die folgenden Verfahren veranschaulichen, wie Sie:

Anlegen einer Zertifizierungsstelle

Es ist möglich, eine Zertifizierungsstelle (Certificate Authority, CA) mit verschiedenen Methoden oder Tools zu erstellen. Wir empfehlen das vom Open-Projekt bereitgestellte Hilfsprogramm easy-rsa. VPN Unabhängig von der Option, die Sie wählen, achten Sie darauf, die Schlüssel sicher zu halten. Das folgende Verfahren lädt die easy-rsa-Skripte herunter, erstellt die Zertifizierungsstelle und die Schlüssel zur Authentifizierung des ersten Clients: VPN

  • Um die ersten Zertifikate zu erstellen, öffnen Sie ein Terminal und gehen Sie folgendermaßen vor:

    • git clonehttps://github.com/OpenVPN/easy-rsa

    • cd easy-rsa

    • ./easyrsa3/easyrsa init-pki

    • ./easyrsa3/easyrsa build-ca nopass

    • ./easyrsa3/easyrsa build-server-full server nopass

    • ./easyrsa3/easyrsa build-client-full client1.domain.tld nopass

    Es wird ein pki-Unterverzeichnis mit den Zertifikaten unter easy-rsa erstellt.

  • Senden Sie das Serverzertifikat an den AWS Zertifikatsmanager (): ACM

    • Wählen Sie auf der ACM Konsole Certificate Manager aus.

    • Wählen Sie Import Certificate (Zertifikat importieren)aus.

    • Geben Sie das in der Datei easy-rsa/pki/issued/server.crt zur Verfügung stehende Zertifikat des öffentlichen Schlüssels in das Feld Certificate body (Zertifikattext) ein.

    • Fügen Sie den unter easy-rsa/pki/private/server.key zur Verfügung stehenden privaten Schlüssel in das Feld Private Certificate Key (Privater Zertifikatsschlüssel) ein. Achten Sie darauf, dass Sie alle Zeilen zwischen BEGIN AND END PRIVATE KEY (einschließlich der Zeilen BEGIN und END) auswählen.

    • Fügen Sie den in der Datei easy-rsa/pki/ca.crt verfügbaren öffentlichen CA-Schlüssel in das Feld Certificate chain (Zertifikatskette) ein.

    • Wählen Sie die Option Review and import (Überprüfen und Importieren) aus.

    • Klicken Sie auf Import (Importieren).

    Führen Sie den folgenden Befehl aus AWS CLI, um die Zertifikate des Servers ACM mit dem zu senden: aws acm import-certificate --certificate fileb://easy-rsa/pki/issued/server.crt --private-key file://easy-rsa/pki/private/server.key --certificate-chain file://easy-rsa/pki/ca.crt --region region

    Notieren Sie sich das Zertifikat ARN für future Verwendung.

Konfiguration der AWS VPN Client-Komponenten

Die AWS Konsole verwenden

Wählen Sie auf der AWS Konsole Dienste und dann aus VPC.

Wählen Sie unter Virtual Private Network die Option Client VPN Endpoints aus und gehen Sie wie folgt vor:

Konfiguration der AWS Client-Komponenten VPN

  • Wählen Sie VPNClient-Endpunkt erstellen aus.

  • Folgende Optionen stehen Ihnen zur Verfügung:

    • Client IPv4 CIDR: Verwenden Sie ein privates Netzwerk mit einer Netzmaske im Bereich /22. Stellen Sie sicher, dass das ausgewählte Subnetz nicht mit den Adressen der VPC Netzwerke in Konflikt steht. Beispiel: 10.0.0.0/22.

    • Wählen Sie unter Serverzertifikat das ARN Zertifikat ausARN, das zuvor importiert wurde.

    • Wählen Sie die Option Use mutual authentication (Gegenseitige Authentifizierung verwenden) aus.

    • Wählen Sie unter Clientzertifikat das ARN Zertifikat ausARN, das zuvor importiert wurde.

    • Wählen Sie VPNClient-Endpunkt erstellen aus.

Verwenden des AWS CLI

Führen Sie den folgenden Befehl aus:

aws ec2 create-client-vpn-endpoint --client-cidr-block "10.0.0.0/22" --server-certificate-arn arn:aws:acm:us-east-1:012345678912:certificate/0123abcd-ab12-01a0-123a-123456abcdef --authentication-options Type=certificate-authentication,,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:us-east-1:012345678912:certificate/123abcd-ab12-01a0-123a-123456abcdef} --connection-log-options Enabled=false

Beispielausgabe:

"ClientVpnEndpointId": "cvpn-endpoint-0123456789abcdefg", "Status": { "Code": "pending-associate" }, "DnsName": "cvpn-endpoint-0123456789abcdefg.prod.clientvpn.us-east-1.amazonaws.com" }

Ordnen Sie die Zielnetzwerke dem VPN Endpunkt zu

  • Wählen Sie den neuen VPN Endpunkt und dann die Registerkarte Verknüpfungen aus.

  • Wählen Sie Associate (Zuordnen) aus und nutzen Sie die folgenden Optionen:

    • VPC: Wählen Sie die MemoryDB-Cluster aus. VPC

    • Wählen Sie eines der Netzwerke des MemoryDB-Clusters aus. Überprüfen Sie im Zweifelsfall die Netzwerke in den Subnetzgruppen im MemoryDB-Dashboard.

    • Wählen Sie Associate (Zuordnen)aus. Wiederholen Sie ggf. die Schritte für die verbleibenden Netzwerke.

Mit dem AWS CLI

Führen Sie den folgenden Befehl aus:

aws ec2 associate-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --subnet-id subnet-0123456789abdcdef

Beispielausgabe:

"Status": { "Code": "associating" }, "AssociationId": "cvpn-assoc-0123456789abdcdef" }

Überprüfen Sie die VPN Sicherheitsgruppe

Der VPN Endpoint übernimmt automatisch die Standardsicherheitsgruppe VPC von. Überprüfen Sie die Regeln für eingehenden und ausgehenden Datenverkehr und bestätigen Sie, ob die Sicherheitsgruppe den Datenverkehr vom VPN Netzwerk (in den VPN Endpunkt-Einstellungen definiert) zu den MemoryDB-Netzwerken über die Service-Ports zulässt (standardmäßig 6379 für Redis).

Wenn Sie die dem Endpunkt zugewiesene Sicherheitsgruppe ändern müssen, gehen Sie wie folgt vorVPN:

  • Wählen Sie die aktuelle Sicherheitsgruppe aus.

  • Klicken Sie auf Apply Security Group (Sicherheitsgruppe anwenden).

  • Wählen Sie die neue Sicherheitsgruppe aus.

Verwenden Sie den AWS CLI

Führen Sie den folgenden Befehl aus:

aws ec2 apply-security-groups-to-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefga  --vpc-id vpc-0123456789abdcdef --security-group-ids sg-0123456789abdcdef

Beispielausgabe:

"SecurityGroupIds": [ "sg-0123456789abdcdef" ] }

Anmerkung

Die MemoryDB-Sicherheitsgruppe muss auch den Datenverkehr zulassen, der von den VPN Clients kommt. Die Adressen der Clients werden je nach Netzwerk mit der VPN Endpunktadresse maskiert. VPC Berücksichtigen Sie daher das VPC Netzwerk (nicht das Netzwerk der VPN Clients), wenn Sie die Regel für eingehende Nachrichten für die MemoryDB-Sicherheitsgruppe erstellen.

Autorisieren Sie den Zugriff auf die VPN Zielnetzwerke

Wählen Sie auf der Registerkarte Authorization (Autorisierung) die Option Authorize Ingress (Autorisierung eingehender Daten) aus und geben Sie Folgendes an:

  • Zielnetzwerk, um den Zugriff zu ermöglichen: Verwenden Sie entweder 0.0.0.0/0, um den Zugriff auf jedes Netzwerk (einschließlich des Internets) zu ermöglichen, oder schränken Sie die MemoryDB-Netzwerke/Hosts ein.

  • Wählen Sie unter Grant access to: (Zugriff gewähren für:) die Option Allow access to all users (Zugriff für alle Benutzer zulassen)aus.

  • Wählen Sie Add Authorization Rules (Autorisierungsregeln hinzufügen)aus.

Mit dem AWS CLI

Führen Sie den folgenden Befehl aus:

aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --target-network-cidr 0.0.0.0/0 --authorize-all-groups

Beispielausgabe:

{ "Status": { "Code": "authorizing" } }

Zulassen des Zugriffs auf das Internet von den VPN Clients aus

Wenn Sie über das im Internet surfen müssenVPN, müssen Sie eine zusätzliche Route erstellen. Wählen Sie die Registerkarte Route Table (Routentabelle) und dann die Option Create Route (Route erstellen) aus:

  • Routenziel: 0.0.0.0/0

  • VPCZielsubnetz-ID: Wählen Sie eines der zugehörigen Subnetze mit Zugriff auf das Internet aus.

  • Klicken Sie auf Create Route (Route erstellen).

Verwenden Sie den AWS CLI

Führen Sie den folgenden Befehl aus:

aws ec2 create-client-vpn-route --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --destination-cidr-block 0.0.0.0/0 --target-vpc-subnet-id subnet-0123456789abdcdef

Beispielausgabe:

{ "Status": { "Code": "creating" } }

Konfigurieren Sie den VPN Client

Wählen Sie im AWS VPN Client-Dashboard den kürzlich erstellten VPN Endpunkt aus und wählen Sie Client-Konfiguration herunterladen aus. Kopieren Sie die Konfigurationsdatei sowie die Dateien easy-rsa/pki/issued/client1.domain.tld.crt und easy-rsa/pki/private/client1.domain.tld.key. Bearbeiten Sie die Konfigurationsdatei und ändern oder fügen Sie die folgenden Parameter hinzu:

  • cert: Fügen Sie eine neue Zeile hinzu, wobei der Parameter „cert“ auf die Datei client1.domain.tld.crt verweist. Verwenden Sie den vollständigen Pfad zu der Datei. Beispiel: cert /home/user/.cert/client1.domain.tld.crt

  • cert: key: Fügen Sie eine neue Zeile hinzu, wobei der Parameter „key“ auf die Datei client1.domain.tld.key verweist. Verwenden Sie den vollständigen Pfad zu der Datei. Beispiel: key /home/user/.cert/client1.domain.tld.key

Stellen Sie die VPN Verbindung mit dem folgenden Befehl her: sudo openvpn --config downloaded-client-config.ovpn

Aufheben des Zugriffs

Soll die Gültigkeit des Zugriffs eines bestimmten Clientschlüssels aufgehoben werden, muss der Schlüssel in der Zertifizierungsstelle widerrufen werden. Senden Sie dann die Sperrliste an den AWS ClientVPN.

Widerrufen des Schlüssels mit easy-rsa:

  • cd easy-rsa

  • ./easyrsa3/easyrsa revoke client1.domain.tld

  • Geben Sie „yes“ (Ja) ein, um fortzufahren, oder nehmen Sie zum Abbrechen eine andere Eingabe vor.

    Continue with revocation: `yes` ... * `./easyrsa3/easyrsa gen-crl

  • Eine Aktualisierung CRL wurde erstellt. CRLdatei: /home/user/easy-rsa/pki/crl.pem

Import der Sperrliste auf den AWS ClientVPN:

  • Wählen Sie auf dem AWS Management ConsoleDienste und dann VPC.

  • Wählen Sie VPNClient-Endpunkte aus.

  • Wählen Sie den VPN Client-Endpunkt und dann Aktionen -> Client-Zertifikat CRL importieren aus.

  • Fügen Sie den Inhalt der Datei crl.pem-Datei ein:

Verwenden des AWS CLI

Führen Sie den folgenden Befehl aus:

aws ec2 import-client-vpn-client-certificate-revocation-list --certificate-revocation-list file://./easy-rsa/pki/crl.pem --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg

Beispielausgabe:

Example output: { "Return": true }