Tutorial: Konfigurieren einer Domain mit einem IAM-Hauptbenutzer und Amazon-Cognito-Authentifizierung - OpenSearch Amazon-Dienst

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.

Tutorial: Konfigurieren einer Domain mit einem IAM-Hauptbenutzer und Amazon-Cognito-Authentifizierung

Dieses Tutorial behandelt einen beliebten Amazon OpenSearch Service-Anwendungsfall für eine differenzierte Zugriffskontrolle: einen IAM-Master-Benutzer mit Amazon Cognito Cognito-Authentifizierung für Dashboards. OpenSearch

Im Tutorial konfigurieren wir eine Haupt-IAM-Rolle und eine eingeschränkte IAM-Rolle, die wir dann Benutzern in Amazon Cognito zuordnen. Der Masterbenutzer kann sich dann bei OpenSearch Dashboards anmelden, den eingeschränkten Benutzer einer Rolle zuordnen und mithilfe einer detaillierten Zugriffskontrolle die Benutzerberechtigungen einschränken.

Obwohl diese Schritte den Amazon-Cognito-Benutzerpool für die Authentifizierung verwenden, funktioniert derselbe grundlegende Prozess für jeden Cognito-Authentifizierungsanbieter, mit dem Sie verschiedenen Benutzern unterschiedliche IAM-Rollen zuweisen können.

In diesem Tutorial führen Sie die folgenden Schritte durch:

Schritt 1: Erstellen von Haupt- und eingeschränkten IAM-Rollen

Navigieren Sie zur AWS Identity and Access Management (IAM-) Konsole und erstellen Sie zwei separate Rollen:

  • MasterUserRole – Der Hauptbenutzer, der über vollständige Berechtigungen für den Cluster verfügt und Rollen und Rollenzuordnungen verwaltet.

  • LimitedUserRole – Eine eingeschränktere Rolle, der Sie als Hauptbenutzer eingeschränkten Zugriff gewähren.

Anweisungen zum Erstellen der Rollen finden Sie unter Erstellen einer Rolle mit benutzerdefinierten Vertrauensrichtlinien.

Beide Rollen müssen über die folgende Vertrauensrichtlinie verfügen, die es Ihrem Cognito-Identitätspool ermöglicht, die Rollen zu übernehmen:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "{identity-pool-id}" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } }] }
Anmerkung

Ersetzen Sie identity-pool-id durch die eindeutige Kennung Ihres Amazon-Cognito-Identitätspools. z. B. us-east-1:0c6cdba7-3c3c-443b-a958-fb9feb207aa6.

Schritt 2: Erstellen einer Domain mit Cognito-Authentifizierung

Navigieren Sie zur Amazon OpenSearch Service-Konsole unter https://console.aws.amazon.com/aos/home/ und erstellen Sie eine Domain mit den folgenden Einstellungen:

  • OpenSearch 1.0 oder höher oder Elasticsearch 7.8 oder höher

  • Öffentlicher Zugriff

  • Detallierte Zugriffskontrolle, die mit MasterUserRole als Hauptbenutzer aktiviert ist (im vorherigen Schritt erstellt)

  • Amazon Cognito Cognito-Authentifizierung für OpenSearch Dashboards aktiviert. Anweisungen zum Aktivieren der Cognito-Authentifizierung und zum Auswählen eines Benutzer- und Identitätspools finden Sie unter Konfigurieren einer Domain zur Verwendung der Amazon-Cognito-Authentifizierung.

  • Die folgende Domain-Zugriffsrichtlinie:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-id}:root" }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:{region}:{account-id}:domain/{domain-name}/*" } ] }
  • HTTPS für den gesamten Datenverkehr zur Domain erforderlich

  • Keine Verschlüsselung ode-to-node

  • Verschlüsselung gespeicherter Daten

Schritt 3: Cognito-Benutzer konfigurieren

Während Ihre Domain erstellt wird, konfigurieren Sie die Master- und eingeschränkten Benutzer in Amazon Cognito, indem Sie im Amazon Cognito Developer Guide unter Create a user pool nachlesen. Konfigurieren Sie abschließend Ihren Identitätspool, indem Sie die Schritte unter Erstellen eines Identitätspools in Amazon Cognito befolgen. Der Benutzer- und der Identitätenpool müssen sich in derselben AWS-Region befinden.

Schritt 4: Rollen in OpenSearch Dashboards zuordnen

Nachdem Ihre Benutzer konfiguriert sind, können Sie sich als Hauptbenutzer bei OpenSearch Dashboards anmelden und Benutzer Rollen zuordnen.

  1. Kehren Sie zur OpenSearch Servicekonsole zurück und navigieren Sie zur OpenSearch Dashboard-URL für die von Ihnen erstellte Domain. Die URL weist folgendes Format auf: domain-endpoint/_dashboards/.

  2. Melden Sie sich mit den master-user-Anmeldeinformationen an.

  3. Wählen Sie Add sample data (Beispieldaten hinzufügen) und fügen Sie die Beispielflugdaten hinzu.

  4. Wählen Sie im linken Navigationsbereich Security (Sicherheit), Roles (Rollen), Create role (Rolle erstellen) aus.

  5. Benennen Sie die Rolle new-role.

  6. Geben Sie für Index opensearch_dashboards_sample_data_fli* (kibana_sample_data_fli* auf Elasticsearch-Domains) an.

  7. Wählen Sie für Index permissions (Indexberechtigungen) die Option read (Lesen) aus.

  8. Geben Sie für Sicherheitsabfrage auf Dokumentebene die folgende Abfrage an:

    { "match": { "FlightDelay": true } }
  9. Wählen Sie für die Sicherheit auf Feldebene Ausschließen und geben Sie FlightNum an.

  10. Fü rAnonymisierung, geben Sie Dest an.

  11. Wählen Sie Erstellen.

  12. Wählen Sie Zugeordnete Benutzer, Mapping verwalten. Fügen Sie den Amazon-Ressourcennamen (ARN) für LimitedUserRole als externe Identität hinzu und wählen Sie Map (Zuordnen) aus.

  13. Kehren Sie zur Liste der Rollen zurück und wählen Sie opensearch_dashboards_useraus. Wählen Sie Zugeordnete Benutzer, Mapping verwalten. Fügen Sie den ARN für LimitedUserRole als Backend-Rolle hinzu und wählen Sie Zuordnen aus.

Schritt 5: Testen der Berechtigungen

Wenn Ihre Rollen korrekt zugeordnet sind, können Sie sich als Benutzer mit eingeschränkten Rechten anmelden und die Berechtigungen testen.

  1. Navigieren Sie in einem neuen, privaten Browserfenster zur OpenSearch Dashboard-URL für die Domain, melden Sie sich mit den limited-user Anmeldeinformationen an und wählen Sie Auf eigene Faust erkunden aus.

  2. Wählen Sie Entwicklerwerkzeuge aus und führen Sie dann die Standardsuche aus:

    GET _search { "query": { "match_all": {} } }

    Beachten Sie den Berechtigungsfehler. limited-user hat keine Berechtigungen zum Ausführen von clusterweiten Suchvorgängen.

  3. Führen Sie eine weitere Suche aus:

    GET opensearch_dashboards_sample_data_flights/_search { "query": { "match_all": {} } }

    Beachten Sie, dass alle übereinstimmenden Dokumente ein FlightDelay-Feld von true, ein anonymisiertes Dest- Feld und kein FlightNum-Feld haben.

  4. Wählen Sie in Ihrem ursprünglichen Browserfenster, angemeldet als master-user, Dev Tools, und führen Sie dann die gleichen Suchvorgänge durch. Beachten Sie die Unterschiede zwischen Berechtigungen, Anzahl der Treffer, übereinstimmenden Dokumenten und eingeschlossenen Feldern.