Aktivierung des SAML-Verbunds mit AWS Identity and Access Management - 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.

Aktivierung des SAML-Verbunds mit AWS Identity and Access Management

OpenSearch Die Benutzeroberfläche unterstützt Security Assertion Markup Language 2.0 (SAML), einen offenen Standard, den viele Identitätsanbieter verwenden. Dies ermöglicht einen Identitätsverbund mit AWS Identity and Access Management (IAM). Mit dieser Unterstützung können Benutzer in Ihrem Konto oder Ihrer Organisation direkt auf die OpenSearch Benutzeroberfläche zugreifen, indem sie IAM-Rollen übernehmen. Sie können ein vom Identitätsanbieter initiiertes (IdP) Single Sign-On-Erlebnis für Ihre Endbenutzer einrichten, bei dem sie sich beim externen Identitätsanbieter authentifizieren und direkt zu Ihrer definierten Seite in der Benutzeroberfläche weitergeleitet werden können. OpenSearch Sie können auch eine differenzierte Zugriffskontrolle implementieren, indem Sie Ihre Endbenutzer oder Gruppen so konfigurieren, dass sie unterschiedliche IAM-Rollen mit unterschiedlichen Berechtigungen für den Zugriff auf die Benutzeroberfläche und die zugehörigen Datenquellen annehmen. OpenSearch

In diesem Thema step-by-step finden Sie Anweisungen zur Konfiguration der SAML-Verwendung mit der Benutzeroberfläche. OpenSearch In diesen Verfahren verwenden wir als Beispiel die Schritte zur Konfiguration der Okta-Anwendung für Identitäts- und Zugriffsverwaltung. Die Konfigurationsschritte für andere Identitätsanbieter wie Azure Active Directory und Ping sind ähnlich.

Schritt 1: Richten Sie die Identitätsanbieter-Anwendung (Okta) ein

Um SAML mit OpenSearch UI zu verwenden, müssen Sie zunächst Ihren Identitätsanbieter einrichten.

Aufgabe 1: Okta-Benutzer erstellen
  1. Melden Sie sich bei Ihrer Okta-Organisation unter https://login.okta.com/als Benutzer mit Administratorrechten an.

  2. Wählen Sie in der Admin-Konsole im Navigationsbereich unter Verzeichnis die Option Personen aus.

  3. Wählen Sie Person hinzufügen aus.

  4. Geben Sie unter Vorname den Vornamen des Benutzers ein.

  5. Geben Sie unter Nachname den Nachnamen des Benutzers ein.

  6. Geben Sie unter Benutzername den Benutzernamen des Benutzers im E-Mail-Format ein.

  7. Wählen Sie Ich werde ein Passwort festlegen und ein Passwort eingeben

  8. (Optional) Deaktivieren Sie das Feld Benutzer muss das Passwort bei der ersten Anmeldung ändern, wenn Sie nicht möchten, dass der Benutzer das Passwort bei der ersten Anmeldung ändert.

  9. Wählen Sie Speichern.

Aufgabe 2: Gruppen erstellen und zuweisen
  1. Melden Sie sich bei Ihrer Okta-Organisation unter https://login.okta.com/als Benutzer mit Administratorrechten an.

  2. Wählen Sie in der Admin-Konsole im Navigationsbereich unter Verzeichnis die Option Gruppen aus.

  3. Wählen Sie Add Group (Gruppe hinzufügen) aus.

  4. Geben Sie einen Gruppennamen ein und wählen Sie Speichern.

  5. Wählen Sie die neu erstellte Gruppe aus und klicken Sie dann auf Personen zuweisen.

  6. Wählen Sie das Pluszeichen (+) und dann „Fertig“.

  7. (Optional) Wiederholen Sie die Schritte 1—6, um weitere Gruppen hinzuzufügen.

Aufgabe 3: Okta-Anwendungen erstellen
  1. Melden Sie sich bei Ihrer Okta-Organisation unter https://login.okta.com/als Benutzer mit Administratorrechten an.

  2. Wählen Sie in der Admin-Konsole im Navigationsbereich unter Anwendungen die Option Anwendungen aus.

  3. Wählen Sie Create App Integration (App-Integration erstellen).

  4. Wählen Sie SAML 2.0 als Anmeldemethode und dann Weiter.

  5. Geben Sie einen Namen für Ihre App-Integration ein (z. B.OpenSearch_UI) und wählen Sie dann Weiter.

  6. Geben Sie die folgenden Werte in die App ein. Sie müssen keine anderen Werte ändern:

    1. 1. Geben Sie für Single Sign On URL die kommerziellen AWS Regionen oder die https://signin.aws.amazon.com/saml für Ihre Region spezifische URL ein.

    2. 2. Geben Sie als Zielgruppen-URI (SP Entity ID) einurn:amazon:webservices.

    3. 3. Geben Sie als Namens-ID-Format den Wert einEmailAddress.

  7. Wählen Sie Weiter aus.

  8. Wählen Sie Ich bin ein Okta-Kunde, der eine interne App hinzufügt, und wählen Sie dann Dies ist eine interne App, die wir erstellt haben aus.

  9. Wählen Sie Finish (Abschließen).

  10. Wählen Sie „Aufgaben“ und dann „Zuweisen“.

  11. Wählen Sie Zu Gruppen zuweisen und dann neben den Gruppen, die Sie hinzufügen möchten, die Option Zuweisen aus.

  12. Wählen Sie Erledigt aus.

Aufgabe 4: Richten Sie die erweiterte Okta-Konfiguration ein

Nachdem Sie die benutzerdefinierte SAML-Anwendung erstellt haben, führen Sie die folgenden Schritte aus:

  1. Melden Sie sich bei Ihrer Okta-Organisation unter https://login.okta.com/als Benutzer mit Administratorrechten an.

    Wählen Sie auf der Administratorkonsole im Bereich Allgemein unter SAML-Einstellungen die Option Bearbeiten aus.

  2. Wählen Sie Weiter aus.

  3. Stellen Sie den Standard-Relay-Status auf den OpenSearch UI-Endpunkt ein und verwenden Sie dabei das folgende Format:

    https://region.console.aws.amazon.com/aos/home?region=region#opensearch/applications/application-id/redirectToDashboardURL.

    Im Folgenden wird ein Beispiel gezeigt:

    https://us-east-2.console.aws.amazon.com/aos/home?region=us-east-2#opensearch/applications/abc123def4567EXAMPLE/redirectToDashboardURL

  4. Fügen Sie unter Attributanweisungen (optional) die folgenden Eigenschaften hinzu:

    1. Geben Sie die IAM-Rolle und den Identitätsanbieter mithilfe des Role-Attributs in einem kommagetrennten Format an. Sie werden dieselbe IAM-Rolle und denselben Identitätsanbieter in einem späteren Schritt beim Einrichten der Konfiguration verwenden. AWS

    2. Legen Sie user.login für fest. RoleSessionName Dies wird als Kennung für die temporären Anmeldeinformationen verwendet, die ausgestellt werden, wenn die Rolle übernommen wird.

    Als Referenz:

    Name Format des Namens Format Beispiel

    https://aws.amazon.com/SAML/Attributes/Role

    Nicht spezifiziert

    arn:aws:iam::aws-account-id:role/role-name,arn:aws:iam::aws-account-id:saml-provider/provider-name

    arn:aws:iam::111222333444:role/oktarole,arn:aws:iam::111222333444:saml-provider/oktaidp

    https://aws.amazon.com/SAML/Attributes/RoleSessionName

    Nicht spezifiziert

    user.login

    user.login

  5. Nachdem Sie die Attributeigenschaften hinzugefügt haben, klicken Sie auf Weiter und anschließend auf Fertig stellen.

Ihre Attribute sollten ein ähnliches Format wie in der folgenden Abbildung haben. Der Standard-Relay-State-Wert ist die URL zur Definition der Landingpage für Endbenutzer in Ihrem Konto oder Ihrer Organisation, nachdem diese die Single Sign-On-Validierung von Okta abgeschlossen haben. Sie können es auf eine beliebige Seite in der OpenSearch Benutzeroberfläche festlegen und diese URL dann den vorgesehenen Endbenutzern zur Verfügung stellen.

Im Bereich „SAML 2.0" werden die Standard-Relay-Status-URL und die Metadaten-URL für eine Anwendung gemeldet.

Schritt 2: Richten Sie die AWS Konfiguration für Okta ein

Führen Sie die folgenden Aufgaben aus, um Ihre AWS Konfiguration für Okta einzurichten.

Aufgabe 1: Sammeln Sie Okta-Informationen

Für diesen Schritt müssen Sie Ihre Okta-Informationen sammeln, damit Sie sie später konfigurieren können. AWS

  1. Melden Sie sich bei Ihrer Okta-Organisation unter https://login.okta.com/als Benutzer mit Administratorrechten an.

  2. Wählen Sie auf der Registerkarte Anmelden in der unteren rechten Ecke der Seite die Option SAML-Setup-Anweisungen anzeigen aus.

  3. Notieren Sie sich den Wert für die Single Sign-On-URL des Identity Providers. Sie können diese URL verwenden, wenn Sie eine Verbindung zu einem SQL-Client eines Drittanbieters wie SQL Workbench/J herstellen.

  4. Verwenden Sie die Identitätsanbieter-Metadaten in Block 4 und speichern Sie dann die Metadatendatei im XML-Format (z. B.). metadata.xml

Aufgabe 2: Erstellen Sie den IAM-Anbieter

Gehen Sie wie folgt vor, um Ihren IAM-Anbieter zu erstellen:

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die IAM-Konsole unter. https://console.aws.amazon.com/iam/

  2. Wählen Sie im Navigationsbereich unter Zugriffsverwaltung die Option Identitätsanbieter aus.

  3. Wählen Sie Add provider (Anbieter hinzufügen) aus.

  4. Wählen Sie als Anbietertyp die Option SAML aus.

  5. Geben Sie für den Anbieternamen einen Namen ein.

  6. Wählen Sie für Metadaten-Dokument die Option Datei auswählen und laden Sie die Metadatendatei (.xml) hoch, die Sie zuvor heruntergeladen haben.

  7. Wählen Sie Add provider (Anbieter hinzufügen) aus.

Aufgabe 3: IAM-Rolle erstellen

Gehen Sie wie folgt vor, um Ihre AWS Identity and Access Management Rolle zu erstellen:

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich unter Zugriffsverwaltung die Option Rollen aus.

  3. Wählen Sie Rolle erstellen aus.

  4. Wählen Sie für Vertrauenswürdigen Entitätstyp die Option SAML 2.0-Verbund aus.

  5. Wählen Sie für einen SAML 2.0-basierten Anbieter den Identitätsanbieter aus, den Sie zuvor erstellt haben.

  6. Wählen Sie Programmatisch und Zugriff zulassen aus. AWS Management Console

  7. Wählen Sie Weiter aus.

  8. Aktivieren Sie in der Liste der Berechtigungsrichtlinien die Kontrollkästchen für die Richtlinie, die Sie zuvor erstellt haben, und für OpenSearchFullAccess.

  9. Wählen Sie Weiter aus.

  10. Geben Sie im Bereich Überprüfung in das Feld Rollenname den Namen Ihrer Rolle ein, zum Beispieloktarole.

  11. (Optional) Geben Sie unter Beschreibung eine kurze Beschreibung des Zwecks der Rolle ein.

  12. Wählen Sie Rolle erstellen aus.

  13. Navigieren Sie zu der Rolle, die Sie gerade erstellt haben, wählen Sie die Registerkarte Vertrauensbeziehungen und dann Vertrauensrichtlinie bearbeiten aus.

  14. Wählen Sie im Bereich Aussage bearbeiten unter Aktionen für STS hinzufügen das Feld für aus TagSession.

  15. Wählen Sie Richtlinie aktualisieren.

Schritt 3: Erstellen Sie die Amazon OpenSearch Service-Zugriffsrichtlinie in IAM

Erfahren Sie, wie Sie Ihre IAM-Rollen für die OpenSearch Zugriffskontrolle konfigurieren. Mit IAM-Rollen können Sie eine differenzierte Zugriffskontrolle für Ihre Okta-Benutzergruppen für den Zugriff auf Ressourcen implementieren. OpenSearch In diesem Thema wird die rollenbasierte IAM-Konfiguration anhand von zwei Beispielgruppen veranschaulicht.

Sample group: Alice

Anforderung:

GET _plugins/_security/api/roles/alice-group

Ergebnis:

{ "alice-group": { "reserved": false, "hidden": false, "cluster_permissions": [ "unlimited" ], "index_permissions": [ { "index_patterns": [ "alice*" ], "dls": "", "fls": [], "masked_fields": [], "allowed_actions": [ "indices_all" ] } ], "tenant_permissions": [ { "tenant_patterns": [ "global_tenant" ], "allowed_actions": [ "kibana_all_write" ] } ], "static": false } }
Sample group: Bob

Anforderung:

GET _plugins/_security/api/roles/bob-group

Ergebnis:

{ "bob-group": { "reserved": false, "hidden": false, "cluster_permissions": [ "unlimited" ], "index_permissions": [ { "index_patterns": [ "bob*" ], "dls": "", "fls": [], "masked_fields": [], "allowed_actions": [ "indices_all" ] } ], "tenant_permissions": [ { "tenant_patterns": [ "global_tenant" ], "allowed_actions": [ "kibana_all_write" ] } ], "static": false } }

Sie können die Amazon OpenSearch Service-Domänenrollen mithilfe der Backend-Rollenzuweisung IAM-Rollen zuordnen, wie im folgenden Beispiel gezeigt:

{ "bob-group": { "hosts": [], "users": [], "reserved": false, "hidden": false, "backend_roles": [ "arn:aws:iam::111222333444:role/bob-group" ], "and_backend_roles": [] }, "alice-group": { "hosts": [], "users": [], "reserved": false, "hidden": false, "backend_roles": [ "arn:aws:iam::111222333444:role/alice-group" ], "and_backend_roles": [] } }

Schritt 4: Überprüfen Sie das vom Identitätsanbieter initiierte Single Sign-On-Erlebnis mit SAML

Öffnen Sie die URL für Default Relay State, um die Okta-Authentifizierungsseite zu öffnen. Geben Sie die Anmeldeinformationen eines Endbenutzers ein. Sie werden automatisch zur OpenSearch Benutzeroberfläche weitergeleitet.

Sie können Ihre aktuellen Anmeldeinformationen überprüfen, indem Sie auf das Benutzersymbol unten im Navigationsbereich klicken, wie in der folgenden Abbildung dargestellt:

Wenn Sie auf der Okta-Seite „Einstellungen und Einstellungen“ das Benutzersymbol auswählen, werden die Anmeldeinformationen des aktuellen Benutzers angezeigt.

Sie können die detaillierten Zugriffsberechtigungen für den Benutzer auch überprüfen, indem Sie unten im Navigationsbereich auf die Entwicklertools zugreifen und Abfragen in der Konsole ausführen. Im Folgenden finden Sie Beispielabfragen.

Example 1: Displays information about the current user

Anforderung:

GET _plugins/_security/api/account

Ergebnis:

{ "user_name": "arn:aws:iam::XXXXXXXXXXXX:role/bob-group", "is_reserved": false, "is_hidden": false, "is_internal_user": false, "user_requested_tenant": null, "backend_roles": [ "arn:aws:iam::XXXXXXXXXXXX:role/bob-group" ], "custom_attribute_names": [], "tenants": { "global_tenant": true, "arn:aws:iam::XXXXXXXXXXXX:role/bob-group": true }, "roles": [ "bob-group" ] }
Example 2: Displays actions permitted for a user

Anforderung:

GET bob-test/_search

Ergebnis:

{ "took": 390, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 1, "relation": "eq" }, "max_score": 1, "hits": [ { "_index": "bob-test", "_id": "ui01N5UBCIHpjO8Jlvfy", "_score": 1, "_source": { "title": "Your Name", "year": "2016" } } ] } }
Example 3: Displays actions not permitted for a user

Anforderung:

GET alice-test

Ergebnis:

{ "error": { "root_cause": [ { "type": "security_exception", "reason": "no permissions for [indices:admin/get] and User [name=arn:aws:iam::111222333444:role/bob-group, backend_roles=[arn:aws:iam::111222333444:role/bob-group], requestedTenant=null]" } ], "type": "security_exception", "reason": "no permissions for [indices:admin/get] and User [name=arn:aws:iam::111222333444:role/bob-group, backend_roles=[arn:aws:iam::111222333444:role/bob-group], requestedTenant=null]" }, "status": 403 }

Schritt 5: Konfigurieren Sie die auf SAML-Attributen basierende, feinkörnige Zugriffskontrolle

Mit Amazon OpenSearch Service können Sie eine differenzierte Zugriffskontrolle mit SAML verwenden, um Benutzer und Gruppen von Ihrem Identitätsanbieter dynamisch OpenSearch differenzierten Benutzern und Rollen für die Zugriffskontrolle zuzuordnen. Sie können diese Rollen auf bestimmte OpenSearch Domänen und serverlose Sammlungen beschränken und Berechtigungen auf Indexebene und Sicherheit auf Dokumentebene definieren.

Anmerkung

Weitere Informationen zur detaillierten Zugriffskontrolle finden Sie unter. Feinkörnige Zugriffskontrolle in Amazon Service OpenSearch

SAML-Attribute für eine differenzierte Zugriffskontrolle

BetreffKey

Ordnet ein eindeutiges Benutzerattribut zu, z. B. E-Mail oder Benutzername, das den Benutzer für die Authentifizierung identifiziert.

RolesKey

Ordnet Gruppen- oder Rollenattributen in Ihrem IdP zu, die die Rollen oder Berechtigungen für die Autorisierung festlegen.

Aufgabe 1: Konfigurieren Sie Okta für eine differenzierte Zugriffskontrolle

So konfigurieren Sie Okta für eine differenzierte Zugriffskontrolle
  1. Fügen Sie im Abschnitt Attributanweisungen ein neues Attribut für den OpenSearch Benutzerprinzipal hinzu:

    • Name: UserName

    • Wert: ${user-email}

    Dieses Attribut wird in der detaillierten Konfiguration der Zugriffskontrolle für OpenSearch die Authentifizierung als Betreffschlüssel verwendet.

  2. Fügen Sie im Abschnitt Group Attribute Statement ein Gruppenattribut für Rollen hinzu:

    • Name: groups

    • Filter: OpenSearch_xxx

    Dieses Attribut wird als Rollenschlüssel für die Zuordnung von Gruppen zu OpenSearch detaillierten Zugriffskontrollrollen für die Autorisierung verwendet.

Aufgabe 2: SAML in der Domäne konfigurieren OpenSearch

Um SAML in der Domäne zu konfigurieren OpenSearch
  1. Identifizieren Sie in der AWS Management Console die OpenSearch Dienstdomäne, für die Sie eine differenzierte Zugriffskontrolle für die Benutzer der OpenSearch Benutzeroberfläche aktivieren möchten.

  2. Navigieren Sie zur Detailseite der jeweiligen Domain.

  3. Wählen Sie die Registerkarte Sicherheitskonfiguration und klicken Sie auf Bearbeiten.

  4. Erweitern Sie SAML über IAM Federate.

  5. Geben Sie das subjectKey und einroleKey, das Sie in Okta definiert haben.

  6. Wählen Sie Änderungen speichern aus.

Sie können auch eine detaillierte Zugriffskontrolle mit dem konfigurieren. AWS CLI

aws opensearch create-domain \ --domain-name testDomain \ --engine-version OpenSearch_1.3 \ --cluster-config InstanceType=r5.xlarge.search,InstanceCount=1,DedicatedMasterEnabled=false,ZoneAwarenessEnabled=false,WarmEnabled=false \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":"es:*","Resource":"arn:aws:es:us-east-1:12345678901:domain/neosaml10/*"}]}' \ --domain-endpoint-options '{"EnforceHTTPS":true,"TLSSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"}' \ --node-to-node-encryption-options '{"Enabled":true}' \ --encryption-at-rest-options '{"Enabled":true}' \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"********","MasterUserPassword":"********"}, "IAMFederationOptions":{"Enabled": true,"SubjectKey":"TestSubjectKey","RolesKey":"TestRolesKey"}}' \ --ebs-options "EBSEnabled=true,VolumeType=gp2,VolumeSize=300" \ --no-verify-ssl \ --endpoint-url https://es.us-east-1.amazonaws.com \ --region us-east-1

Um eine bestehende Domain zu aktualisieren:

aws opensearch update-domain-config \ --domain-name testDomain \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"********","MasterUserPassword":"********"}, "IAMFederationOptions":{"Enabled": true,"SubjectKey":"TestSubjectKey","RolesKey":"TestRolesKey"}}' \ --ebs-options "EBSEnabled=true,VolumeType=gp2,VolumeSize=300" \ --no-verify-ssl \ --endpoint-url https://es.us-east-1.amazonaws.com \ --region us-east-1

Aufgabe 3: SAML in OpenSearch serverlosen Sammlungen konfigurieren

So konfigurieren Sie eine auf SAML basierende, detaillierte Zugriffskontrolle in Serverless OpenSearch
  1. Öffnen Sie den AWS Management Console und navigieren Sie zu Amazon OpenSearch Service.

  2. Wählen Sie im Navigationsbereich unter Serverless die Option Security und anschließend Authentication aus.

  3. Wählen Sie im Abschnitt IAM Federation die Option Bearbeiten aus.

    Mit dieser Konfiguration können Sie die auf SAML-Attributen basierende, feinkörnige Zugriffskontrolle steuern. IAM Federation ist standardmäßig deaktiviert.

  4. Wählen Sie IAM-Verbund aktivieren aus.

  5. Geben Sie die roleKey Werte subjectKey und ein, die Sie in Okta definiert haben.

    Weitere Informationen finden Sie unter SAML-Attribute für eine differenzierte Zugriffskontrolle .

  6. Wählen Sie Save (Speichern).

  7. Wählen Sie im Navigationsbereich unter Serverless die Option Datenzugriffsrichtlinie aus.

  8. Aktualisieren Sie entweder eine bestehende Richtlinie oder erstellen Sie eine neue.

  9. Erweitern Sie eine Regel, wählen Sie Prinzipale hinzufügen und dann IAM Federation users and groups aus.

  10. Fügen Sie die erforderlichen Principals hinzu und klicken Sie auf Speichern.

  11. Wählen Sie Grant (Erteilen).

  12. Gehen Sie im Rahmen dieser Regel wie folgt vor:

    • Wählen Sie die Berechtigungen aus, die Sie für die ausgewählten Principals definieren möchten.

    • Geben Sie die Sammlungen an, für die Sie die Berechtigungen anwenden möchten.

    • Definieren Sie optional Berechtigungen auf Indexebene.

    Anmerkung

    Sie können mehrere Regeln erstellen, um verschiedenen Gruppen von Prinzipalen unterschiedliche Berechtigungen zuzuweisen.

  13. Wenn Sie fertig sind, wählen Sie Speichern aus.

  14. Wählen Sie Erstellen aus.

Alternativ können Sie CLI verwenden, um die Sicherheitskonfigurationen für Sammlungen zu erstellen, wie unten angegeben:

aws opensearchserverless create-security-config --region "region" --type iamfederation --name "configuration_name" --description "description" --iam-federation-options '{"groupAttribute":"GroupKey","userAttribute":"UserKey"}'