Direkt zum Inhalt

Wie verwende ich einen SSH-Tunnel, um von außerhalb einer VPC auf OpenSearch-Dashboards mit Amazon-Cognito-Authentifizierung zuzugreifen?

Lesedauer: 5 Minute
0

Meine Amazon-OpenSearch-Service-Domain befindet sich in einer Virtual Private Cloud (VPC). Ich möchte einen SSH-Tunnel verwenden, um von außerhalb der VPC auf OpenSearch-Dashboards mit Amazon-Cognito-Authentifizierung zuzugreifen.

Kurzbeschreibung

Standardmäßig schränkt Amazon Cognito den Zugriff von OpenSearch-Dashboards auf Benutzer von AWS Identity and Access Management (IAM) in der VPC ein. Um von einer anderen VPC aus auf eine OpenSearch-Service-Domain zuzugreifen, erstelle einen Schnittstellen-VPC-Endpunkt für OpenSearch Service. Verwende einen SSH-Tunnel, um öffentlich auf eine Dashboard-URL zuzugreifen.

Wichtig: Stelle sicher, dass der Zugriff auf OpenSearch-Dashboards von außerhalb der VPC den Sicherheitsanforderungen deines Unternehmens entspricht.

Gehe wie folgt vor, um über einen SSH-Tunnel von außerhalb der VPC auf OpenSearch-Dashboards zuzugreifen:

  1. Erstelle einen Amazon-Cognito-Benutzerpool und einen Identitätspool.
  2. Erstelle eine Amazon-Elastic-Compute-Cloud(Amazon EC2)-Instance in einem öffentlichen Subnetz.
  3. Verwende ein Browser-Add-on, um einen SOCKS-Proxy zu konfigurieren.
  4. Erstelle einen SSH-Tunnel von deinem lokalen Computer zur EC2-Instance.
    **Hinweis:**Du kannst auch einen NGINX-Proxy oder ein Client-VPN verwenden, um von außerhalb einer VPC mit Amazon-Cognito-Authentifizierung auf OpenSearch-Dashboards zuzugreifen.
  5. (Optional) Wenn du die granulare Zugriffskontrolle aktivierst, füge danach eine authentifizierte Amazon-Cognito-Rolle hinzu.

Lösung

Erstelle einen Amazon-Cognito-Benutzerpool und einen Identitätspool

Führe die folgenden Schritte aus:

  1. Erstelle einen Amazon-Cognito-Benutzerpool. Konfiguriere folgende Einstellungen:
    Wähle als Anwendungstyp die Option Herkömmliche Webanwendung aus.
    Gib unter Benenne die Anwendung einen benutzerdefinierten Anwendungsnamen ein oder behalte den Standardnamen bei.
    Wähle unter Optionen für Anmeldekennungen die Option Benutzername aus.
    Wähle unter Erforderliche Attribute für die Anmeldung die Option E-Mail aus.
  2. Öffne die Amazon-Cognito-Konsole.
  3. Wähle im Navigationsbereich Benutzerpools aus.
  4. Wähle deinen Benutzerpool aus.
  5. Wähle im Navigationsbereich unter Branding die Option Verwaltete Anmeldung aus. Konfiguriere folgende Einstellungen:
    Wähle unter Domains with managed login branding (Domains mit Branding für die verwaltete Anmeldung) Version aktualisieren aus.
    Wähle unter Branding-Version Gehostete Benutzeroberfläche (klassisch) aus.
  6. Konfiguriere deine Benutzer und Gruppen.
  7. Erstelle einen Amazon-Cognito-Identitätspool. Konfiguriere folgende Einstellungen:
    Wähle unter Benutzerzugriff die Option Authentifizierter Zugriff aus.
    Gib unter Authentifizierte Identitätsquellen den Amazon-Cognito-Benutzerpool ein.
    Wähle unter IAM-Rolle die OptionNeue IAM-Rolle erstellen aus, und gib danach einen Rollennamen ein.
    Wähle unter Benutzerpool-Details deinen Benutzerpool aus, und wähle danach AppClient-ID aus.
    Wähle unter Rolleneinstellungen die Option Die als Standard definierte authentifizierte Rolle verwenden aus.
    Wähle unter Anspruchszuweisung die Option Inaktiv aus.
  8. Konfiguriere deine OpenSearch-Service-Domain für die Verwendung der Amazon Cognito-Authentifizierung. Konfiguriere folgende Einstellungen:
    Wähle unter Cognito-Benutzerpool deinen Benutzerpool aus.
    Wähle unter Cognito-Identitätspool deinen Identitätspool aus.
  9. Gib unter Domänenzugriffsrichtlinie die folgende Zugriffsrichtlinie ein:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::account-id:role/service-role/identitypool-role"
          },
          "Action": "es:*",
          "Resource": "arn:aws:es:region:account-id:domain/domain-name/*"
        }
      ]
    }
    Hinweis: Ersetze account-id durch dein AWS-Konto und identitypool-role durch den Namen deiner Identitätspool-Rolle. Ersetze domain-name durch deine OpenSearch-Service-Domain und region durch die AWS-Region deiner Domain.

Erstelle eine EC2-Instance und konfiguriere Sicherheitsgruppenregeln

Wichtig: Das Subnetz der Instance muss sich in derselben VPC wie deine OpenSearch-Service-Domain befinden.

Führe die folgenden Schritte aus:

  1. Starte eine Instance im öffentlichen Subnetz der VPC, in der sich deine OpenSearch-Service-Domain befindet.
  2. Vergewissere dich, dass auf der Seite Konfigurieren von Instance-Details die Option Öffentliche IP-Adresse automatisch zuweisen aktiviert ist.
  3. Füge der Sicherheitsgruppe, die deiner Instance zugeordnet ist, Regeln für eingehenden Datenverkehr hinzu. Erlaube den Datenverkehr zu den Ports 8157 und 22 von der IP-Adresse deines lokalen Computers.
  4. Füge der Sicherheitsgruppe, die der OpenSearch-Service-Domain zugeordnet ist, eine Regel für eingehenden Datenverkehr hinzu. Erlaube den Datenverkehr von der privaten IP-Adresse deiner Instance.

SOCKS-Proxy konfigurieren

Hinweis: Die folgenden Anweisungen verwenden FoxyProxy, um den SOCKS-Proxy zu konfigurieren. Informationen zur Installation der Erweiterung findest du unter FoxyProxy im Chrome-Webstore.

Führe die folgenden Schritte aus:

  1. Öffne FoxyProxy und wähle dann Options (Optionen).
  2. Wähle unter Proxies (Proxys) Add (Hinzufügen) aus.
  3. Konfiguriere folgende Einstellungen:
    Gib unter Title (Titel) einen Proxynamen ein.
    Gib unter Hostname localhost ein.
    Gib unter Port den Wert 8157 ein.
    Wähle unter Type (Typ) die Option SOCKS5 aus.
  4. Um ein Muster hinzuzufügen, wähle das Pluszeichen (+) und konfiguriere danach die folgenden Einstellungen:
    Lasse das erste Feld leer.
    Gib unter Title (Titel) einen Namen für dein Muster ein.
    Gib unter Pattern (Muster) den VPC-Endpunkt von OpenSearch-Dashboards ein, zum Beispiel: https://vpc-mydomain-rg3abcdefghiflge.us-east-1.es.amazonaws.com/_dashboards.
    Wähle unter Type (Typ) die Option Wildcards (Platzhalter) aus.
    Wähle unter Include (Einschließen) die Option Include (Einschließen) aus.
  5. Wähle Speichern aus.

Erstelle den SSH-Tunnel

Führe die folgenden Schritte aus:

  1. Verwende den lokalen Computer, den du für den Zugriff auf OpenSearch-Dashboards verwendest, um den folgenden Befehl auszuführen:

    ssh -i "mykeypair.pem"  ec2-user@public_dns_name -ND 8157

    Hinweis: Ersetze mykeypair.pem durch den Namen der .pem-Datei für das Schlüsselpaar, den du beim Start deiner Instance angegeben hast. Ersetze public_dns_name durch den öffentlichen DNS deiner Instance. Weitere Informationen findest du unter DNS-Attribute für deine VPC.

  2. Gib den OpenSearch-Dashboards-Endpunkt in deinen Browser ein, um die Amazon-Cognito-Anmeldeseite für OpenSearch-Dashboards zu öffnen.

(Optional) Wenn du granulare Zugriffskontrollen aktivierst, füge danach eine Amazon-Cognito-Identitätspool-Rolle hinzu

Wenn du die granulare Zugriffskontrolle für deinen OpenSearch-Service-Cluster aktivierst, erhältst du möglicherweise den Fehler missing role (fehlende Rolle).

Gehe wie folgt vor, um den Fehler missing role (fehlende Rolle) zu beheben:

  1. Öffne die OpenSearch-Service-Konsole.
  2. Wähle im Navigationsbereich unter Verwaltete Cluster die Option Domains aus.
  3. Wähle deine Domain und dann Aktionen aus.
  4. Wähle Sicherheitskonfigurationen bearbeiten aus.
  5. Wähle IAM-ARN als Haupt-Benutzer festlegen.
  6. Gib unter IAM ARN den ARN der Amazon-Cognito-Identitätspoolrolle ein.
  7. Wähle Speichern aus.

Weitere Informationen zur granularen Zugriffskontrolle findest du im Tutorial: Konfiguriere eine Domain mit einem IAM-Haupt-Benutzer und Amazon-Cognito-Authentifizierung.

Ähnliche Informationen

Konfiguration der Amazon-Cognito-Authentifizierung für OpenSearch-Dashboards

Starten deiner Amazon-OpenSearch-Service-Domains innerhalb einer VPC

AWS OFFICIALAktualisiert vor einem Jahr