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/
-
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.
-
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/ -
Melden Sie sich mit den
master-user
-Anmeldeinformationen an. -
Wählen Sie Add sample data (Beispieldaten hinzufügen) und fügen Sie die Beispielflugdaten hinzu.
-
Wählen Sie im linken Navigationsbereich Security (Sicherheit), Roles (Rollen), Create role (Rolle erstellen) aus.
-
Benennen Sie die Rolle
new-role
. -
Geben Sie für Index
opensearch_dashboards_sample_data_fli*
(kibana_sample_data_fli*
auf Elasticsearch-Domains) an. -
Wählen Sie für Index permissions (Indexberechtigungen) die Option read (Lesen) aus.
-
Geben Sie für Sicherheitsabfrage auf Dokumentebene die folgende Abfrage an:
{ "match": { "FlightDelay": true } }
-
Wählen Sie für die Sicherheit auf Feldebene Ausschließen und geben Sie
FlightNum
an. -
Fü rAnonymisierung, geben Sie
Dest
an. -
Wählen Sie Erstellen.
-
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. -
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.
-
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. -
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. -
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 vontrue
, ein anonymisiertesDest
- Feld und keinFlightNum
-Feld haben. -
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.