Feinkörnige Zugriffskontrolle in Amazon Service OpenSearch - 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.

Feinkörnige Zugriffskontrolle in Amazon Service OpenSearch

Eine detaillierte Zugriffskontrolle bietet zusätzliche Möglichkeiten, den Zugriff auf Ihre Daten bei Amazon OpenSearch Service zu kontrollieren. Je nachdem, wer die Anforderung ausstellt, kann es sein, dass eine Suche Ergebnisse aus nur einem Index zurückgibt. Sie können bestimmte Felder in Ihren Dokumenten ausblenden oder bestimmte Dokumente ganz ausschließen.

Die differenzierte Zugriffskontrolle bietet folgende Nutzen:

  • Rollenbasierte Zugriffskontrolle

  • Sicherheit auf Index-, Dokument- und Feldebene

  • OpenSearch Dashboards, Mehrmandantenfähigkeit

  • HTTP-Basisauthentifizierung für und Dashboards OpenSearch OpenSearch

Das Gesamtbild: detaillierte Zugriffskontrolle und Servicesicherheit OpenSearch

Die Sicherheit von Amazon OpenSearch Service besteht aus drei Hauptebenen:

Netzwerk

Die erste Sicherheitsebene ist das Netzwerk, das bestimmt, ob Anfragen eine OpenSearch Service-Domain erreichen. Wenn Sie beim Erstellen einer Domain Öffentlichen Zugriff auswählen, können Anforderungen von jedem mit dem Internet verbundenen Client den Domain-Endpunkt erreichen. Wenn Sie VPC-Zugriff auswählen, müssen Clients eine Verbindung zur VPC herstellen (und die zugeordneten Sicherheitsgruppen müssen dies zulassen), damit eine Anforderung den Endpunkt erreichen kann. Weitere Informationen finden Sie unter Starten Sie Ihre Amazon OpenSearch Service-Domains innerhalb eines VPC.

Domain-Zugriffsrichtlinie

Die zweite Sicherheitsebene ist die Domain-Zugriffsrichtlinie. Nachdem eine Anforderung einen Domain-Endpunkt erreicht hat, erlaubt oder verweigert die ressourcenbasierte Zugriffsrichtlinie den Anforderungszugriff auf einen bestimmten URI. Die Zugriffsrichtlinie akzeptiert oder lehnt Anfragen am „Rand“ der Domain ab, bevor sie OpenSearch sich selbst erreichen.

Differenzierte Zugriffskontrolle

Die dritte und letzte Sicherheitsebene ist eine differenzierte Zugriffskontrolle. Nachdem eine ressourcenbasierte Zugriffsrichtlinie eine Anforderung einen Domain-Endpunkt erreichen lässt, werden die Benutzeranmeldeinformationen durch eine differenzierte Zugriffskontrolle ausgewertet und entweder der Benutzer authentifiziert oder die Anforderung verweigert. Wenn eine differenzierte Zugriffskontrolle Zugriffssteuerung den Benutzer authentifiziert, ruft sie alle dem Benutzer zugeordneten Rollen ab und verwendet den vollständigen Satz von Berechtigungen, um zu bestimmen, wie die Anforderung behandelt werden soll.

Anmerkung

Wenn eine ressourcenbasierte Zugriffsrichtlinie IAM-Rollen oder -Benutzer enthält, müssen Clients signierte Anfragen mit AWS Signature Version 4 senden. Daher können Zugriffsrichtlinien in Konflikt mit einer differenzierten Zugriffskontrolle stehen, insbesondere wenn Sie die interne Benutzerdatenbank und die HTTP-Standardauthentifizierung verwenden. Sie können eine Anfrage nicht mit einem Benutzernamen und einem Passwort sowie mit IAM-Anmeldeinformationen signieren. Wenn Sie die differenzierte Zugriffskontrolle aktivieren, wird im Allgemeinen empfohlen, eine Domain-Zugriffsrichtlinie zu verwenden, die keine signierten Anforderungen erfordert.

Das folgende Diagramm veranschaulicht eine typische Konfiguration: eine VPC-Zugriff-Domain mit aktivierter differenzierter Zugriffskontrolle, eine IAM-basierte Zugriffsrichtlinie und ein IAM-Master-Benutzer.

Autorisierungsfluss bei differenzierter Zugriffskontrolle mit einer VPC-Domain

Das folgende Diagramm veranschaulicht eine weitere typische Konfiguration: eine öffentliche Zugriff-Domain mit aktivierter differenzierter Zugriffskontrolle, eine Zugriffsrichtlinie, die keine IAM-Prinzipale verwendet, und ein Master-Benutzer in der internen Benutzerdatenbank.

Autorisierungsfluss bei differenzierter Zugriffskontrolle mit einer öffentlichen Zugriff-Domain

Beispiel

Nehmen wir eine GET-Anfrage an movies/_search?q=thor an. Hat der Benutzer die Berechtigung, den movies-Index zu durchsuchen? Wenn ja: Hat der Benutzer die Berechtigung, alle darin befindlichen Dokumente anzuzeigen? Sollte die Antwort Felder auslassen oder anonymisieren? Für den Master-Benutzer könnte die Antwort folgendermaßen aussehen:

{ "hits": { "total": 7, "max_score": 8.772789, "hits": [{ "_index": "movies", "_type": "_doc", "_id": "tt0800369", "_score": 8.772789, "_source": { "directors": [ "Kenneth Branagh", "Joss Whedon" ], "release_date": "2011-04-21T00:00:00Z", "genres": [ "Action", "Adventure", "Fantasy" ], "plot": "The powerful but arrogant god Thor is cast out of Asgard to live amongst humans in Midgard (Earth), where he soon becomes one of their finest defenders.", "title": "Thor", "actors": [ "Chris Hemsworth", "Anthony Hopkins", "Natalie Portman" ], "year": 2011 } }, ... ] } }

Wenn ein Benutzer mit eingeschränkten Berechtigungen genau dieselbe Anforderung ausgibt, könnte die Antwort folgendermaßen aussehen:

{ "hits": { "total": 2, "max_score": 8.772789, "hits": [{ "_index": "movies", "_type": "_doc", "_id": "tt0800369", "_score": 8.772789, "_source": { "year": 2011, "release_date": "3812a72c6dd23eef3c750c2d99e205cbd260389461e19d610406847397ecb357", "plot": "The powerful but arrogant god Thor is cast out of Asgard to live amongst humans in Midgard (Earth), where he soon becomes one of their finest defenders.", "title": "Thor" } }, ... ] } }

Die Antwort hat weniger Treffer und weniger Felder für jeden Treffer. Außerdem ist das release_date-Feld anonymisiert. Wenn ein Benutzer ohne Berechtigungen dieselbe Anforderung stellt, gibt der Cluster einen Fehler zurück:

{ "error": { "root_cause": [{ "type": "security_exception", "reason": "no permissions for [indices:data/read/search] and User [name=limited-user, roles=[], requestedTenant=null]" }], "type": "security_exception", "reason": "no permissions for [indices:data/read/search] and User [name=limited-user, roles=[], requestedTenant=null]" }, "status": 403 }

Wenn ein Benutzer ungültige Anmeldeinformationen bereitstellt, gibt der Cluster eine Unauthorized-Ausnahme zurück.

Die wichtigsten Konzepte

Wenn Sie mit der detaillierten Zugriffskontrolle beginnen, sollten Sie die folgenden Konzepte berücksichtigen:

  • Rollen — Die wichtigste Methode zur Verwendung einer differenzierten Zugriffskontrolle. In diesem Fall unterscheiden sich die Rollen von IAM-Rollen. Rollen enthalten eine beliebige Kombination von Berechtigungen: clusterweit, indexspezifisch, auf Dokumentebene oder auf Feldebene.

  • Zuordnung — Nachdem Sie eine Rolle konfiguriert haben, ordnen Sie sie einem oder mehreren Benutzern zu. Beispielsweise können Sie einem einzelnen Benutzer drei Rollen zuordnen: eine Rolle, die Zugriff auf Dashboards bietet, eine mit schreibgeschütztem Zugriff auf index1 und eine mit Schreibzugriff auf index2. Sie können auch alle diese Berechtigungen in eine einzige Rolle aufnehmen.

  • Benutzer — Personen oder Anwendungen, die Anfragen an den OpenSearch Cluster stellen. Benutzer verfügen über Anmeldeinformationen — entweder IAM-Zugriffsschlüssel oder einen Benutzernamen und ein Passwort —, die sie angeben, wenn sie Anfragen stellen.

Über den Masterbenutzer

Der Masterbenutzer in OpenSearch Service ist entweder eine Kombination aus Benutzername und Passwort oder ein IAM-Prinzipal, der über vollständige Berechtigungen für den zugrunde liegenden OpenSearch Cluster verfügt. Ein Benutzer gilt als Masterbenutzer, wenn er uneingeschränkten Zugriff auf den OpenSearch Cluster hat und über die Möglichkeit verfügt, interne Benutzer, Rollen und Rollenzuordnungen in Dashboards zu erstellen. OpenSearch

Ein in der OpenSearch Service Console oder über die CLI erstellter Masterbenutzer wird automatisch zwei vordefinierten Rollen zugeordnet:

  • all_access— Bietet vollen Zugriff auf alle clusterweiten Operationen, Schreibberechtigungen für alle Clusterindizes und Schreibberechtigungen für alle Mandanten.

  • security_manager— Ermöglicht den Zugriff auf das Security-Plugin und die Verwaltung von Benutzern und Berechtigungen.

Mit diesen beiden Rollen erhält der Benutzer Zugriff auf die Registerkarte Sicherheit in OpenSearch Dashboards, wo er Benutzer und Berechtigungen verwalten kann. Wenn Sie einen weiteren internen Benutzer erstellen und ihn nur der all_access Rolle zuordnen, hat der Benutzer keinen Zugriff auf den Tab Sicherheit. Sie können zusätzliche Masterbenutzer erstellen, indem Sie sie explizit all_access sowohl den security_manager Rollen als auch zuordnen. Anweisungen finden Sie unter Zusätzliche Hauptbenutzer.

Wenn Sie einen Masterbenutzer für Ihre Domain erstellen, können Sie entweder einen vorhandenen IAM-Prinzipal angeben oder einen Masterbenutzer in der internen Benutzerdatenbank erstellen. Beachten Sie bei der Entscheidung, welche Sie verwenden möchten, Folgendes:

  • IAM-Prinzipal — Wenn Sie einen IAM-Prinzipal für Ihren Masterbenutzer wählen, müssen alle Anfragen an den Cluster mit AWS Signature Version 4 signiert werden.

    OpenSearch Der Service berücksichtigt keine der Berechtigungen des IAM-Prinzipals. Der IAM-Benutzer oder die IAM-Rolle dient ausschließlich der Authentifizierung. Die Richtlinien für diesen Benutzer oder diese Rolle haben keinen Einfluss auf die Autorisierung des Masterbenutzers. Die Autorisierung erfolgt über die verschiedenen Berechtigungen im OpenSearch Security-Plugin.

    Sie können beispielsweise einem IAM-Prinzipal keine IAM-Berechtigungen zuweisen, und solange sich der Computer oder die Person bei diesem Benutzer oder dieser Rolle authentifizieren kann, hat sie die Macht des Masterbenutzers in Service. OpenSearch

    Wir empfehlen IAM, wenn Sie dieselben Benutzer auf mehreren Clustern verwenden möchten, wenn Sie Amazon Cognito für den Zugriff auf Dashboards verwenden möchten oder wenn Sie OpenSearch Clients haben, die Signature Version 4-Signaturen unterstützen.

  • Interne Benutzerdatenbank — Wenn Sie in der internen Benutzerdatenbank einen Master erstellen (mit einer Kombination aus Benutzername und Passwort), können Sie die HTTP-Basisauthentifizierung (sowie IAM-Anmeldeinformationen) verwenden, um Anfragen an den Cluster zu stellen. Die meisten Clients unterstützen die Standardauthentifizierung, einschließlich Curl, die auch AWS Signature Version 4 mit der Option --aws-sigv4 unterstützt. Die interne Benutzerdatenbank wird in einem OpenSearch Index gespeichert, sodass Sie sie nicht mit anderen Clustern teilen können.

    Wir empfehlen die interne Benutzerdatenbank, wenn Sie Benutzer nicht über mehrere Cluster hinweg wiederverwenden müssen, wenn Sie HTTP-Standardauthentifizierung für den Zugriff auf Dashboards verwenden möchten (statt Amazon Cognito), oder wenn Sie Clients haben, die nur die Standardauthentifizierung unterstützen. Die interne Benutzerdatenbank ist der einfachste Weg, um mit OpenSearch Service zu beginnen.

Aktivieren der differenzierten Zugriffskontrolle

Ermöglichen Sie eine differenzierte Zugriffskontrolle mithilfe der Konsole oder der Konfigurations-API. AWS CLI Informationen zu den erforderlichen Schritten finden Sie unter Amazon OpenSearch Service-Domains erstellen und verwalten.

Für eine detaillierte Zugriffskontrolle ist Elasticsearch 6.7 OpenSearch oder höher erforderlich. Außerdem sind HTTPS für den gesamten Datenverkehr zur Domain, Verschlüsselung ruhender Daten und Verschlüsselung erforderlich. node-to-node Je nachdem, wie Sie die erweiterten Funktionen der detaillierten Zugriffskontrolle konfigurieren, kann die zusätzliche Verarbeitung Ihrer Anfragen Rechen- und Speicherressourcen auf einzelnen Datenknoten erfordern. Nachdem Sie die differenzierte Zugriffskontrolle aktiviert haben, können Sie sie nicht mehr deaktivieren.

Aktivieren der differenzierten Zugriffskontrolle für vorhandene Domains

Sie können eine differenzierte Zugriffskontrolle für bestehende Domains aktivieren, auf denen Elasticsearch 6.7 OpenSearch oder höher ausgeführt wird.

So aktivieren Sie die differenzierte Zugriffskontrolle für eine vorhandene Domain (Konsole)
  1. Wählen Sie die Domain aus und wählen Sie Aktionen und Sicherheitskonfiguration bearbeiten.

  2. „True“ zur Aktivierung der differenzierten Zugriffskontrolle.

  3. Auswahl zur Erstellung des Hauptbenutzers:

    • Wenn Sie IAM für die Benutzerverwaltung verwenden möchten, wählen Sie IAM-ARN als Haupt-Benutzer festlegen, und geben Sie den ARN für eine IAM-Rolle an.

    • Wenn Sie die interne Benutzerdatenbank verwenden möchten, wählen Sie Masterbenutzer erstellen und geben Sie einen Benutzernamen und ein Passwort an.

  4. (Optional) Wählen Sie Migrationszeitraum für offene/IP-basierte Zugriffsrichtlinie aktivieren aus. Diese Einstellung aktiviert einen 30-tägigen Übergangszeitraum, in dem Ihre bestehenden Benutzer weiterhin ohne Unterbrechungen auf die Domain zugreifen können, sowie vorhandene offene und IP-basierte Zugriffsrichtlinien weiterhin mit Ihrer Domain arbeiten werden. Während diesem Migrationszeitraum empfehlen wir Administratoren, die notwendigen Rollen zu erstellen und diese Benutzern für die Domain zuzuordnen. Wenn Sie identitätsbasierte Richtlinien anstelle einer offenen oder IP-basierten Zugriffsrichtlinie verwenden, können Sie diese Einstellung deaktivieren.

    Sie müssen Ihre Clients ebenfalls aktualisieren, um während des Migrationszeitraums mit einer differenzierten Zugriffskontrolle arbeiten zu können. Wenn Sie beispielsweise IAM-Rollen mit detaillierter Zugriffskontrolle zuordnen, müssen Sie Ihre Clients aktualisieren, damit sie Anfragen mit AWS Signature Version 4 signieren können. Wenn Sie die HTTP-Standardauthentifizierung mit einer differenzierten Zugriffskontrolle konfigurieren, müssen Sie Ihre Clients aktualisieren, um in Anfragen entsprechende grundlegende Anmeldeinformationen zur Authentifizierung bereitzustellen.

    Während der Migrationsphase landen Benutzer, die auf den OpenSearch Dashboards-Endpunkt für die Domain zugreifen, direkt auf der Discover-Seite und nicht auf der Anmeldeseite. Administratoren und Master-Benutzer können Anmeldung auswählen, um sich mit Administrator-Anmeldeinformationen anzumelden und das Rollen-Mapping zu konfigurieren.

    Wichtig

    OpenSearch Der Service deaktiviert den Migrationszeitraum automatisch nach 30 Tagen. Wir empfehlen die Beendigung des Migrationszeitraums, sobald Sie die erforderlichen Rollen erstellt und sie Benutzern zugeordnet haben. Nach Beendigung des Migrationszeitraums können Sie ihn nicht erneut aktivieren.

  5. Wählen Sie Änderungen speichern aus.

Die Änderung löst ein Blau/Grün-Bereitstellung aus, in der der Cluster-Zustand rot wird. Alle Cluster-Operationen bleiben davon jedoch unberührt.

So aktivieren Sie die differenzierte Zugriffskontrolle für eine vorhandene Domain (CLI)

Ändern Sie AnonymousAuthEnabled zu true, um den Migrationszeitraum mit einer differenzierten Zugriffskontrolle zu aktivieren:

aws opensearch update-domain-config --domain-name test-domain --region us-east-1 \ --advanced-security-options '{ "Enabled": true, "InternalUserDatabaseEnabled":true, "MasterUserOptions": {"MasterUserName":"master-username","MasterUserPassword":"master-password"},"AnonymousAuthEnabled": true}'

Über die Rolle „default_role“

Die differenzierte Zugriffskontrolle erfordert das Rollen-Mapping. Wenn Ihre Domain identitätsbasierte Zugriffsrichtlinien verwendet, ordnet OpenSearch Service Ihre Benutzer automatisch einer neuen Rolle namens default_role zu, um Sie bei der ordnungsgemäßen Migration vorhandener Benutzer zu unterstützen. Diese temporäre Zuordnung stellt sicher, dass Ihre Benutzer weiterhin erfolgreich IAM-signierte GET- und PUT-Anfragen senden können, bis Sie Ihr eigenes Rollen-Mapping erstellen.

Die Rolle fügt Ihrer Service-Domain keine Sicherheitslücken oder -mängel hinzu. OpenSearch Wir empfehlen die Löschung der Standardrolle, sobald Sie Ihre eigenen Rollen erstellt und entsprechend zugeordnet haben.

Migrationszenarien

In der folgenden Tabelle wird das Verhalten für jede Authentifizierungsmethode vor und nach dem Aktivieren der differenzierten Zugriffskontrolle für eine vorhandene Domain beschrieben und die Schritte, die Administratoren durchführen müssen, um ihre Benutzer ordnungsgemäß Rollen zuzuordnen:

Authentifizierungsmethode Vor der Aktivierung der differenzierten Zugriffskontrolle Nach der Aktivierung der differenzierten Zugriffskontrolle Aufgaben des Administrators
Identitätsbasierte Richtlinien

Alle Benutzer, die IAM-Richtlinie erfüllen, können auf die Domain zugreifen.

Sie müssen den Migrationszeitraum nicht aktivieren.

OpenSearch Der Service ordnet automatisch alle Benutzer, die IAM-Richtlinie erfüllen, der Rolle default_role zu, sodass sie weiterhin auf die Domain zugreifen können.

  1. Benutzerdefiniertes Rollen-Mapping für die Domain erstellen.

  2. Löschen Sie die Rolle default_role.

IP-basierte Richtlinien

Alle Benutzer von den zulässigen IP-Adressen oder CIDR-Blöcken können auf die Domain zugreifen.

Während des 30-tägigen Migrationszeitraums können alle Benutzer von den zulässigen IP-Adressen oder CIDR-Blöcken weiterhin auf die Domain zugreifen.

  1. Benutzerdefiniertes Rollen-Mapping für die Domain erstellen.

  2. Aktualisieren Sie Ihre Clients, um je nach Konfiguration des Rollen-Mapping entweder Anmeldeinformationen für die grundlegende Authentifizierung oder IAM-Anmeldeinformationen bereitzustellen.

  3. Den Migrationszeitraum deaktivieren. Benutzer von den zulässigen IP-Adressen oder CIDR-Blöcken, die Anfragen ohne grundlegende Authentifizierung oder IAM-Anmeldeinformationen senden, verlieren den Zugriff auf die Domain.

Offene Zugriffsrichtlinien

Alle Benutzer im Internet können auf die Domain zugreifen.

Während des 30-tägigen Migrationszeitraums können alle Benutzer über das Internet weiterhin auf die Domain zugreifen.

  1. Erstellen Sie Rollenzuordnungen in der Domain.

  2. Aktualisieren Sie Ihre Clients, um je nach Konfiguration des Rollen-Mapping entweder Anmeldeinformationen für die grundlegende Authentifizierung oder IAM-Anmeldeinformationen bereitzustellen.

  3. Den Migrationszeitraum deaktivieren. Benutzer, die Anfragen ohne grundlegende Authentifizierung oder IAM-Anmeldeinformationen senden, verlieren den Zugriff auf die Domain.

Als Masterbenutzer auf OpenSearch Dashboards zugreifen

Die differenzierte Zugriffskontrolle verfügt über ein OpenSearch Dashboards-Plugin, das Verwaltungsaufgaben vereinfacht. Mit Dashboards können Sie Benutzer, Rollen, Zuweisungen, Aktionsgruppen und Mandanten verwalten. Die Anmeldeseite von OpenSearch Dashboards und die zugrunde liegende Authentifizierungsmethode unterscheiden sich jedoch, je nachdem, wie Sie Benutzer verwalten und Ihre Domain konfiguriert haben.

Verwalten von Berechtigungen

Wie in Die wichtigsten Konzepte erwähnt, verwalten Sie differenzierte Zugriffskontrollberechtigungen mithilfe von Rollen, Benutzern und Zuweisungen. In diesem Abschnitt wird beschrieben, wie diese Ressourcen erstellt und angewendet werden. Wir empfehlen Ihnen, sich bei Dashboards als Hauptbenutzer anzumelden, um diese Operationen auszuführen.

Sicherheits-Homepage in Dashboards
Anmerkung

Die Berechtigungen, die Sie Ihren Benutzern gewähren möchten, variieren je nach Anwendungsfall stark. Wir können nicht alle Szenarien in dieser Dokumentation durchführbar abdecken. Achten Sie bei der Entscheidung, welche Berechtigungen Sie Ihren Benutzern gewähren möchten, darauf, die in den folgenden Abschnitten genannten OpenSearch Cluster- und Indexberechtigungen zu beachten und stets das Prinzip der geringsten Rechte zu beachten.

Erstellen von Rollen

Sie können mithilfe von OpenSearch Dashboards oder dem _plugins/_security Vorgang in der REST-API neue Rollen für eine detaillierte Zugriffskontrolle erstellen. Weitere Informationen finden Sie unter Rollen erstellen.

Die differenzierte Zugriffskontrolle umfasst auch eine Reihe vordefinierter Rollen. Clients wie OpenSearch Dashboards und Logstash stellen eine Vielzahl von Anfragen an OpenSearch, was es schwierig machen kann, Rollen mit den Mindestberechtigungen manuell zu erstellen. Die opensearch_dashboards_user Rolle umfasst beispielsweise die Berechtigungen, die ein Benutzer benötigt, um mit Indexmustern, Visualisierungen, Dashboards und Mandanten zu arbeiten. Es wird empfohlen, sie einer beliebigen Benutzer- oder Backend-Rolle zuzuweisen, die auf Dashboards zugreift, zusammen mit zusätzlichen Rollen, die den Zugriff auf andere Indizes ermöglichen.

Amazon OpenSearch Service bietet die folgenden OpenSearch Rollen nicht an:

  • observability_full_access

  • observability_read_access

  • reports_read_access

  • reports_full_access

Amazon OpenSearch Service bietet mehrere Rollen an, die nicht verfügbar sind bei OpenSearch:

  • ultrawarm_manager

  • ml_full_access

  • cold_manager

  • notifications_full_access

  • notifications_read_access

Sicherheit auf Clusterebene

Berechtigungen auf Clusterebene beinhalten die Möglichkeit, breite Anforderungen wie _mget, _msearch und _bulk zu machen, die Integrität zu überwachen, Snapshots zu erstellen und vieles mehr. Verwalten Sie diese Berechtigungen mithilfe des Abschnitts Clusterberechtigungen beim Erstellen einer Rolle. Eine vollständige Liste der Berechtigungen auf Clusterebene finden Sie unterCluster-Berechtigungen.

Anstelle einzelner Berechtigungen können Sie häufig Ihren gewünschten Sicherheitsstatus mithilfe einer Kombination der Standard-Aktionsgruppen erreichen. Eine Liste der Aktionsgruppen auf Cluster-Ebene finden Sie unter Clusterebene.

Sicherheit auf Index-Ebene

Berechtigungen auf Index-Ebene beinhalten die Möglichkeit, neue Indizes zu erstellen, Indizes zu durchsuchen, Dokumente zu lesen und zu schreiben, Dokumente zu löschen, Aliase zu verwalten und vieles mehr. Verwalten Sie diese Berechtigungen beim Erstellen einer Rolle mithilfe des Abschnitts Index Permissions (Indexberechtigungen). Eine vollständige Liste der Berechtigungen auf Indexebene finden Sie unter Berechtigungen indizieren.

Anstelle einzelner Berechtigungen können Sie häufig Ihren gewünschten Sicherheitsstatus mithilfe einer Kombination der Standard-Aktionsgruppen erreichen. Eine Liste der Aktionsgruppen auf Index-Ebene finden Sie unter Index-Ebene.

Sicherheit auf Dokumentebene

Mit der Sicherheit auf Dokumentebene können Sie einschränken, welche Dokumente in einem Index ein Benutzer anzeigen kann. Geben Sie beim Erstellen einer Rolle ein Indexmuster und eine OpenSearch Abfrage an. Alle Benutzer, die Sie dieser Rolle zuordnen, können nur die Dokumente sehen, die mit der Abfrage übereinstimmen. Die Sicherheit auf Dokumentebene wirkt sich auf die Anzahl der Treffer aus, die Sie bei der Suche erhalten.

Weitere Informationen finden Sie unter Sicherheit auf Dokumentenebene.

Sicherheit auf Feldebene

Mit der Sicherheit auf Feldebene können Sie steuern, welche Dokumentfelder ein Benutzer anzeigen kann. Fügen Sie beim Erstellen einer Rolle eine Liste von Feldern hinzu, die entweder eingeschlossen oder ausgeschlossen werden sollen. Wenn Sie Felder einschließen, können alle Benutzer, die Sie dieser Rolle zuordnen, nur diese Felder sehen. Wenn Sie Felder ausschließen, können sie alle Felder mit Ausnahme der ausgeschlossenen sehen. Die Sicherheit auf Feldebene wirkt sich auf die Anzahl der Felder aus, die bei der Suche in Treffer enthalten sind.

Weitere Informationen finden Sie unter Sicherheit auf Feldebene.

Feldmaskierung

Die Feldmaskierung ist eine Alternative zur Sicherheit auf Feldebene, mit der Sie die Daten in einem Feld anonymisieren können, anstatt sie vollständig zu entfernen. Fügen Sie beim Erstellen einer Rolle eine Liste von Feldern hinzu, die maskiert werden sollen. Die Feldmaskierung wirkt sich darauf aus, ob beim Suchen der Inhalt eines Feldes angezeigt wird.

Tipp

Wenn Sie die Standardmaskierung auf ein Feld anwenden, verwendet OpenSearch Service einen sicheren, zufälligen Hash, der zu ungenauen Aggregationsergebnissen führen kann. Verwenden Sie stattdessen die musterbasierte Maskierung, um Aggregationen für maskierte Felder durchzuführen.

Erstellen von Benutzern

Wenn Sie die interne Benutzerdatenbank aktiviert haben, können Sie Benutzer mithilfe von OpenSearch Dashboards oder der _plugins/_security Operation in der REST-API erstellen. Weitere Informationen finden Sie unter Benutzer erstellen.

Wenn Sie sich für IAM als Ihren Hauptbenutzer entschieden haben, ignorieren Sie diesen Teil von Dashboards. Erstellen Sie stattdessen IAM-Rollen. Weitere Informationen finden Sie im IAM-Benutzerhandbuch.

Rollen an Benutzer zuweisen

Das Rollen-Mapping ist der kritischste Aspekt der differenzierten Zugriffskontrolle. Die differenzierte Zugriffskontrolle verfügt über einige vordefinierte Rollen, die Ihnen beim Einstieg helfen. Wenn Sie jedoch nicht den Benutzern Rollen zuordnen, endet jede Anforderung an den Cluster mit einem Berechtigungsfehler.

Backend-Rollen können dazu beitragen, den Rollenzuordnungsprozess zu vereinfachen. Anstatt dieselbe Rolle 100 einzelnen Benutzern zuzuordnen, können Sie die Rolle einer einzelnen Backend-Rolle zuordnen, die sich alle 100 Benutzer teilen. Backend-Rollen können IAM-Rollen oder beliebige Zeichenfolgen sein.

  • Geben Sie Benutzer, Benutzer-ARNs und Amazon-Cognito-Benutzerzeichenfolgen im Abschnitt Users (Benutzer) an. Cognito-Benutzerzeichenfolgen haben die Form von Cognito/user-pool-id/username.

  • Geben Sie Backend-Rollen und IAM-Rollen-ARNs im Abschnitt Backend roles (Backend-Rollen) an.

Rollen-Mapping-Bildschirm

Mithilfe von OpenSearch Dashboards oder der _plugins/_security Operation in der REST-API können Sie Benutzern Rollen zuordnen. Weitere Informationen finden Sie unter Zuordnen von Benutzern zu Rollen.

Aktionsgruppen erstellen

Aktionsgruppen sind Gruppen von Berechtigungen, die Sie über verschiedene Ressourcen hinweg wiederverwenden können. Sie können mithilfe von OpenSearch Dashboards oder der _plugins/_security Operation in der REST-API neue Aktionsgruppen erstellen, obwohl die Standardaktionsgruppen für die meisten Anwendungsfälle ausreichend sind. Weitere Informationen zu den Standardaktionsgruppen finden Sie unter Standardaktionsgruppen.

OpenSearch Dashboards, Mehrmandantenfähigkeit

Mandanten (Tenants) sind Räume zum Speichern von Indexmustern, Visualisierungen, Dashboards und anderen Dashboards-Objekten. Mit der Mehrmandantenfähigkeit von Dashboards können Sie Ihre Arbeit sicher mit anderen Dashboard-Benutzern teilen (oder sie privat halten) und Mandanten dynamisch konfigurieren. Sie können steuern, welche Rollen Zugriff auf einen Mandanten haben, und ob diese Rollen Lese- oder Schreibzugriff haben. Der globale Mandant ist der Standardmandant. Weitere Informationen finden Sie unter Mehrmandantenfähigkeit von Dashboards. OpenSearch

So zeigen Sie Ihren aktuellen Mandanten an oder ändern Mandanten:
  1. Navigieren Sie zu OpenSearch Dashboards und melden Sie sich an.

  2. Wählen Sie oben rechts Ihr Benutzersymbol aus und wählen Sie Tenant wechseln.

  3. Überprüfen Sie Ihren Mandanten, bevor Sie Visualisierungen oder Dashboards erstellen. Wenn Sie Ihre Arbeit mit allen anderen Dashboards-Benutzern teilen möchten, wählen Sie Global. Um Ihre Arbeit für eine Teilmenge von Dashboards-Benutzern freizugeben, wählen Sie einen anderen freigegebenen Mandanten aus. Andernfalls wählen Sie Private (Privat).

Anmerkung

OpenSearch Dashboards verwaltet einen separaten Index für jeden Mandanten und erstellt eine Indexvorlage namens. tenant_template Löschen oder ändern Sie den tenant_template Index nicht, da dies zu Fehlfunktionen der OpenSearch Dashboards führen kann, wenn die Indexzuordnung des Mandanten falsch konfiguriert ist.

Empfohlene Konfigurationen

Aufgrund der Interaktion der differenzierten Zugriffskontrolle mit anderen Sicherheitsfunktionen empfehlen wir mehrere differenzierte Zugriffskontrollkonfigurationen, die für die meisten Anwendungsfälle gut funktionieren.

Beschreibung Hauptbenutzer Domain-Zugriffsrichtlinie

Verwenden Sie IAM-Anmeldeinformationen für Aufrufe der OpenSearch APIs und verwenden Sie die SAML-Authentifizierung, um auf Dashboards zuzugreifen. Verwalten Sie differenzierte Zugriffskontrollrollen mithilfe von Dashboards oder der REST-API.

IAM-Rolle oder -Benutzer
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESHttp*", "Resource": "domain-arn/*" } ] }

Verwenden Sie IAM-Anmeldeinformationen oder die Standardauthentifizierung für Aufrufe der APIs. OpenSearch Verwalten Sie differenzierte Zugriffskontrollrollen mithilfe von Dashboards oder der REST-API.

Diese Konfiguration bietet viel Flexibilität, insbesondere wenn Sie OpenSearch Clients haben, die nur die Standardauthentifizierung unterstützen.

Wenn Sie über einen vorhandenen Identitätsanbieter verfügen, verwenden Sie die SAML-Authentifizierung, um auf Dashboards zuzugreifen. Andernfalls verwalten Sie Dashboards-Benutzer in der internen Benutzerdatenbank.

Nutzername und Passwort
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESHttp*", "Resource": "domain-arn/*" } ] }

Verwenden Sie IAM-Anmeldeinformationen für Aufrufe der OpenSearch APIs und verwenden Sie Amazon Cognito, um auf Dashboards zuzugreifen. Verwalten Sie differenzierte Zugriffskontrollrollen mithilfe von Dashboards oder der REST-API.

IAM-Rolle oder -Benutzer
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESHttp*", "Resource": "domain-arn/*" } ] }

Verwenden Sie IAM-Anmeldeinformationen für Aufrufe der OpenSearch APIs und blockieren Sie die meisten Zugriffe auf Dashboards. Verwalten Sie differenzierte Zugriffskontrollrollen mithilfe oder der REST-API.

IAM-Rolle oder -Benutzer
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESHttp*", "Resource": "domain-arn/*" }, { "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": "es:ESHttp*", "Resource": "domain-arn/_dashboards*" } ] }

Einschränkungen

Die differenzierte Zugriffskontrolle hat mehrere wichtige Einschränkungen:

  • Der hosts-Aspekt von Rollen-Mappings, der Rollen Hostnamen oder IP-Adressen zuweist, funktioniert nicht, wenn sich die Domain innerhalb einer VPC befindet. Sie können jedoch Rollen weiterhin Benutzern und Backend-Rollen zuordnen.

  • Wenn Sie IAM für den Master-Benutzer auswählen und die Amazon-Cognito- oder SAML-Authentifizierung nicht aktivieren, zeigt Dashboards eine nicht funktionierende Anmeldeseite an.

  • Wenn Sie IAM für den Master-Benutzer auswählen, können Sie weiterhin Benutzer in der internen Benutzerdatenbank erstellen. Da die HTTP-Standardauthentifizierung unter dieser Konfiguration nicht aktiviert ist, werden jedoch alle mit diesen Benutzeranmeldeinformationen signierten Anforderungen abgelehnt.

  • Wenn Sie SQL verwenden, um einen Index abzufragen, auf den Sie keinen Zugriff haben, erhalten Sie den Fehler „No permissions (Keine Berechtigungen)“. Wenn der Index nicht existiert, erhalten Sie den Fehler „no such index (Kein solcher Index vorhanden)“. Dieser Unterschied bei den Fehlermeldungen bedeutet, dass Sie die Existenz eines Index bestätigen können, wenn Sie zufällig seinen Namen erraten.

    Um das Problem zu minimieren, geben Sie keine vertraulichen Informationen in Indexnamen ein. Um jeden Zugriff auf SQL zu verweigern, fügen Sie der Domainszugriffsrichtlinie das folgende Element hinzu:

    { "Effect": "Deny", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:*" ], "Resource": "arn:aws:es:us-east-1:123456789012:domain/my-domain/_plugins/_sql" }
  • Wenn Ihre Domain-Version 2.3 oder höher ist und Sie eine differenzierte Zugriffskontrolle aktiviert haben, führt die Einstellung auf 1 max_clause_count zu Problemen mit Ihrer Domain. Wir empfehlen, für dieses Konto eine höhere Zahl festzulegen.

  • Wenn Sie die differenzierte Zugriffskontrolle in einer Domäne aktivieren, in der keine differenzierte Zugriffskontrolle eingerichtet ist, müssen Sie für Datenquellen, die für direkte Abfragen erstellt wurden, die detaillierten Zugriffssteuerungsrollen selbst einrichten. Weitere Informationen zum Einrichten detaillierter Zugriffsrollen finden Sie unter Erstellen von Amazon OpenSearch Service-Datenquellenintegrationen mit Amazon S3.

Hauptbenutzer ändern

Wenn Sie die Details des Master-Benutzers vergessen haben, können Sie ihn mithilfe der Konsole, AWS CLI, oder der Konfigurations-API neu konfigurieren.

So ändern Sie den Master-Benutzer (Konsole):
  1. Navigieren Sie zur Amazon OpenSearch Service-Konsole unter https://console.aws.amazon.com/aos/home/.

  2. Wählen Sie Ihre Domain aus und wählen Sie Actions (Aktionen), Edit security configuration (Sicherheitskonfiguration bearbeiten).

  3. Wählen Sie entweder IAM-ARN als Hauptbenutzer festlegen oder Neuen Hauptbenutzer erstellen aus.

    • Wenn Sie zuvor einen IAM-Master-Benutzer verwendet haben, ordnet die differenzierte Zugriffskontrolle die all_access-Rolle dem von Ihnen angegebenen neuen IAM-ARN neu zu.

    • Wenn Sie zuvor die interne Benutzerdatenbank verwendet haben, erstellt die differenzierte Zugriffskontrolle einen neuen Master-Benutzer. Sie können den neuen Master-Benutzer verwenden, um den alten zu löschen.

    • Beim Wechsel von der internen Benutzerdatenbank zu einem IAM-Hauptbenutzer werden keine Benutzer aus der internen Benutzerdatenbank gelöscht. Stattdessen deaktiviert es nur die HTTP-Basisauthentifizierung. Löschen Sie Benutzer manuell aus der internen Benutzerdatenbank oder behalten Sie sie für den Fall, dass Sie die HTTP-Basisauthentifizierung je wieder aktivieren müssen.

  4. Wählen Sie Änderungen speichern aus.

Zusätzliche Hauptbenutzer

Sie bestimmen einen Master-Benutzer, wenn Sie eine Domain erstellen, aber wenn Sie möchten, können Sie diesen Master-Benutzer verwenden, um zusätzliche Master-Benutzer zu erstellen. Sie haben zwei Optionen: OpenSearch Dashboards oder die REST-API.

  • Wählen Sie in Dashboards Sicherheit, Rollen und weisen Sie den neuen Hauptbenutzer den Rollen all_access und security_manager zu.

    Seite „Role mapping (Rollen-Mapping)“
  • Um die REST-API zu verwenden, senden Sie die folgenden Anforderungen:

    PUT _plugins/_security/api/rolesmapping/all_access { "backend_roles": [ "arn:aws:iam::123456789012:role/fourth-master-user" ], "hosts": [], "users": [ "master-user", "second-master-user", "arn:aws:iam::123456789012:user/third-master-user" ] }
    PUT _plugins/_security/api/rolesmapping/security_manager { "backend_roles": [ "arn:aws:iam::123456789012:role/fourth-master-user" ], "hosts": [], "users": [ "master-user", "second-master-user", "arn:aws:iam::123456789012:user/third-master-user" ] }

    Diese Anforderungen ersetzen die aktuellen Rollen-Mappings. Führen Sie daher zuerst GET-Anforderungen aus, damit Sie alle aktuellen Rollen in die PUT-Anforderungen aufnehmen können. Die REST-API ist besonders nützlich, wenn Sie nicht auf Dashboards zugreifen können und der all_access-Rolle eine IAM-Rolle aus Amazon Cognito zuordnen möchten.

Manuelle Snapshots

Die differenzierte Zugriffskontrolle bringt einige zusätzliche Komplikationen bei der Erstellung manueller Snapshots mit sich. Um ein Snapshot-Repository zu registrieren – auch wenn Sie die HTTP-Basisauthentifizierung für alle anderen Zwecke verwenden – müssen Sie die manage_snapshots-Rolle einer IAM-Rolle zuordnen, die über iam:PassRole Berechtigungen zum Annehmen von TheSnapshotRole verfügt, wie in Voraussetzungen definiert.

Verwenden Sie dann diese IAM-Rolle, um eine signierte Anforderung an die Domain zu senden, wie in Registrieren eines manuellen Snapshot-Repositorys beschrieben.

Integrationen

Wenn Sie andere AWS Dienste mit OpenSearch Service verwenden, müssen Sie den IAM-Rollen für diese Dienste die entsprechenden Berechtigungen zuweisen. Beispielsweise verwenden Firehose-Lieferstreams häufig eine IAM-Rolle namens. firehose_delivery_role Erstellen Sie in Dashboards eine Rolle für die differenzierte Zugriffskontrolle, und ordnen Sie dieser die IAM-Rolle zu. In diesem Fall benötigt die neue Rolle die folgenden Berechtigungen:

{ "cluster_permissions": [ "cluster_composite_ops", "cluster_monitor" ], "index_permissions": [{ "index_patterns": [ "firehose-index*" ], "allowed_actions": [ "create_index", "manage", "crud" ] }] }

Berechtigungen variieren je nach den Aktionen, die jeder Service ausführt. Eine AWS IoT Regel oder AWS Lambda Funktion, die Daten indexiert, benötigt wahrscheinlich ähnliche Berechtigungen wie Firehose, während eine Lambda-Funktion, die nur Suchen durchführt, einen eingeschränkteren Satz verwenden kann.

REST-API-Unterschiede

Die detaillierte REST-API für die Zugriffskontrolle unterscheidet sich je nach Ihrer /Elasticsearch-Version geringfügig. OpenSearch Bevor Sie eine PUT-Anforderung stellen, stellen Sie eine GET-Anforderung, um den erwarteten Anforderungsinhalt zu überprüfen. Beispielsweise gibt eine GET-Anforderung an _plugins/_security/api/user alle Benutzer zurück, die Sie dann ändern und verwenden können, um gültige PUT-Anforderungen zu stellen.

Auf Elasticsearch 6.x sehen Anforderungen zum Erstellen von Benutzern wie folgt aus:

PUT _opendistro/_security/api/user/new-user { "password": "some-password", "roles": ["new-backend-role"] }

Auf OpenSearch oder Elasticsearch 7.x sehen Anfragen so aus (wechseln _plugins Sie zu, wenn Sie Elasticsearch verwenden): _opendistro

PUT _plugins/_security/api/user/new-user { "password": "some-password", "backend_roles": ["new-backend-role"] }

Außerdem sind Tenants Eigenschaften von Rollen in Elasticsearch 6.x:

GET _opendistro/_security/api/roles/all_access { "all_access": { "cluster": ["UNLIMITED"], "tenants": { "admin_tenant": "RW" }, "indices": { "*": { "*": ["UNLIMITED"] } }, "readonly": "true" } }

In OpenSearch und Elasticsearch 7.x handelt es sich um Objekte mit eigener URI (ändern Sie _plugins zu, _opendistro wenn Sie Elasticsearch verwenden):

GET _plugins/_security/api/tenants { "global_tenant": { "reserved": true, "hidden": false, "description": "Global tenant", "static": false } }

Die Dokumentation zur OpenSearch REST-API finden Sie in der API-Referenz für das Sicherheits-Plugin.

Tipp

Wenn Sie die interne Benutzerdatenbank verwenden, können Sie curl verwenden, um Anforderungen zu stellen und Ihre Domain zu testen. Probieren Sie die folgenden Beispielbefehle aus:

curl -XGET -u 'master-user:master-user-password' 'domain-endpoint/_search' curl -XGET -u 'master-user:master-user-password' 'domain-endpoint/_plugins/_security/api/user'