Identity and Access Management in Amazon OpenSearch Service - 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.

Identity and Access Management in Amazon OpenSearch Service

Amazon OpenSearch Service bietet verschiedene Möglichkeiten, den Zugriff auf Ihre Domains zu kontrollieren. Dieses Thema geht auf die verschiedenen Richtlinientypen, deren Interaktion miteinander und die Erstellung eigener, benutzerdefinierter Richtlinien ein.

Wichtig

VPCDer Support stellt einige zusätzliche Überlegungen zur Zugriffskontrolle für OpenSearch Dienste vor. Weitere Informationen finden Sie unter Informationen zu Zugriffsrichtlinien für Domänen VPC.

Arten von Richtlinien

OpenSearch Service unterstützt drei Arten von Zugriffsrichtlinien:

Ressourcenbasierte Richtlinien

Beim Erstellen einer Domain fügen Sie eine ressourcenbasierte Richtlinie hinzu, die oft als Domain-Zugriffsrichtlinie bezeichnet wird. Diese Richtlinien legen fest, welche Aktionen ein Prinzipal auf den Subressourcen der Domain durchführen kann (mit Ausnahme der clusterübergreifenden Suche). Zu den Unterressourcen gehören OpenSearch Indizes und. APIs Das Element Principal gibt die Konten, Benutzer oder Rollen an, denen Zugriff gewährt ist. Das Element Resource gibt an, auf welche Unterressourcen diese Prinzipale zugreifen können.

Beispielsweise gewährt die folgende ressourcenbasierte Richtlinie test-user vollen Zugriff (es:*) auf die Unterressourcen auf test-domain:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/test-user" ] }, "Action": [ "es:*" ], "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*" } ] }

Zwei wichtige Überlegungen treffen auf diese Richtlinie zu:

  • Diese Berechtigungen gelten nur für diese Domain. Sofern Sie keine ähnlichen Richtlinien auf anderen Domains erstellen, kann test-user nur auf test-domain zugreifen.

  • Das nachgestellte /* im Resource-Element ist wichtig und weist darauf hin, dass ressourcenbasierte Richtlinien nur für die Unterressourcen der Domain gelten, nicht für die Domain selbst. In ressourcenbasierten Richtlinien entspricht die es:*-Aktion es:ESHttp*.

    Beispielsweise kann test-user zwar Anforderungen an einen Index (GET https://search-test-domain.us-west-1.es.amazonaws.com/test-index) richten, aber nicht die Konfiguration der Domain (POST https://es.us-west-1.amazonaws.com/2021-01-01/opensearch/domain/test-domain/config) aktualisieren. Beachten Sie den Unterschied zwischen den beiden Endpunkten. Für den Zugriff auf die Konfiguration ist API eine identitätsbasierte Richtlinie erforderlich.

Sie können einen partiellen Indexnamen angeben, indem Sie einen Platzhalter hinzufügen. Dieses Beispiel identifiziert alle Indizes, die mit commerce beginnen:

arn:aws:es:us-west-1:987654321098:domain/test-domain/commerce*

In diesem Fall bedeutet der Platzhalter, dass test-user Anfragen an Indizes innerhalb von test-domain stellen kann, deren Namen mit commerce beginnen.

Um test-user weiter einzuschränken, können Sie die folgende Richtlinie anwenden:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/test-user" ] }, "Action": [ "es:ESHttpGet" ], "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/commerce-data/_search" } ] }

Nun kann test-user nur noch eine Operation durchführen: die Suche nach dem Index commerce-data. Auf alle anderen Indizes innerhalb der Domain kann nicht zugegriffen werden, und ohne die Berechtigung, die Aktionen es:ESHttpPut oder es:ESHttpPost zu verwenden, kann test-user keine Dokumente hinzufügen oder ändern.

Als nächstes möchten Sie vielleicht eine Rolle für Hauptbenutzer konfigurieren. Diese Richtlinie ermöglicht den power-user-role Zugriff auf die PUT Methoden HTTP GET und für alle URIs im Index enthaltenen Methoden:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/power-user-role" ] }, "Action": [ "es:ESHttpGet", "es:ESHttpPut" ], "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/commerce-data/*" } ] }

Wenn sich Ihre Domain in einer differenzierten Zugriffskontrolle befindet VPC oder diese verwendet, können Sie eine offene Domänenzugriffsrichtlinie verwenden. Andernfalls muss Ihre Domain-Zugriffsrichtlinie eine Einschränkung enthalten, entweder nach Prinzipal oder IP-Adresse.

Weitere Informationen zu allen verfügbaren Aktionen finden Sie unter Richtlinienelementreferenz. Für eine weitaus detailliertere Kontrolle über Ihre Daten verwenden Sie eine offene Domain-Zugriffsrichtlinie mit differenzierte Zugriffssteuerung.

Identitätsbasierte Richtlinien

Im Gegensatz zu ressourcenbasierten Richtlinien, die Teil jeder OpenSearch Dienstdomäne sind, fügen Sie Benutzern oder Rollen, die den Dienst () verwenden, identitätsbasierte Richtlinien zu. AWS Identity and Access Management IAM Genauso wie ressourcenbasierte Richtlinien legen identitätsbasierte Richtlinien fest, welche Personen auf einen Service zugreifen können, welche Aktionen sie ausführen können und, sofern zutreffend, für welche Ressourcen sie diese Aktionen ausführen können.

Identitätsbasierte Richtlinien sind in der Regel allgemeiner, dies muss aber nicht unbedingt so sein. Sie regeln häufig nur die API Konfigurationsaktionen, die ein Benutzer ausführen kann. Sobald Sie diese Richtlinien eingerichtet haben, können Sie ressourcenbasierte Richtlinien (oder eine differenzierte Zugriffskontrolle) in OpenSearch Service verwenden, um Benutzern Zugriff auf Indizes und zu gewähren. OpenSearch APIs

Anmerkung

Benutzer mit der AWS verwalteten AmazonOpenSearchServiceReadOnlyAccess Richtlinie können den Cluster-Integritätsstatus auf der Konsole nicht sehen. Damit sie den Cluster-Integritätsstatus (und andere OpenSearch Daten) sehen können, fügen Sie die es:ESHttpGet Aktion einer Zugriffsrichtlinie hinzu und fügen Sie sie ihren Konten oder Rollen hinzu.

Da identitätsbasierte Richtlinien an Benutzer oder Rollen (Prinzipale) gebunden sind, JSON gibt sie keinen Prinzipal an. Die folgende Richtlinie gewährt Zugriff auf Aktionen, die mit Describe und List beginnen. Diese Kombination von Aktionen bietet schreibgeschützten Zugriff auf Domain-Konfigurationen, jedoch nicht direkt auf die in der Domain gespeicherten Daten:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "es:Describe*", "es:List*" ], "Effect": "Allow", "Resource": "*" } ] }

Ein Administrator hat möglicherweise vollen Zugriff auf den OpenSearch Dienst und alle in allen Domänen gespeicherten Daten:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "es:*" ], "Effect": "Allow", "Resource": "*" } ] }

Mithilfe von identitätsbasierten Richtlinien können Sie Tags verwenden, um den Zugriff auf die Konfiguration zu steuern. API Die folgende Richtlinie ermöglicht es beispielsweise angehängten Prinzipalen, die Konfiguration einer Domain anzuzeigen und zu aktualisieren, wenn die Domain über das Tag team:devops verfügt:

{ "Version": "2012-10-17", "Statement": [{ "Action": [ "es:UpdateDomainConfig", "es:DescribeDomain", "es:DescribeDomainConfig" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/team": [ "devops" ] } } }] }

Sie können Tags auch verwenden, um den Zugriff auf die zu steuern. OpenSearch API Tag-basierte Richtlinien für die gelten OpenSearch API nur für HTTP Methoden. Mit der folgenden Richtlinie können beispielsweise zugeordnete Principals PUT Anfragen an die Domain sendenGET, OpenSearch API ob die Domain über das environment:production Tag verfügt:

{ "Version": "2012-10-17", "Statement": [{ "Action": [ "es:ESHttpGet", "es:ESHttpPut" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/environment": [ "production" ] } } }] }

Für eine detailliertere Steuerung von sollten Sie eine OpenSearch API differenzierte Zugriffskontrolle in Betracht ziehen.

Anmerkung

Nachdem Sie einer tagbasierten Richtlinie eine oder mehrere Tags OpenSearch APIs hinzugefügt haben, müssen Sie einen einzelnen Tagvorgang (z. B. ein Tag hinzufügen, entfernen oder ändern) ausführen, damit die Änderungen in einer Domäne wirksam werden. Sie müssen die Service-Software R20211203 oder höher verwenden, um Operationen in tagbasierte Richtlinien aufnehmen OpenSearch API zu können.

OpenSearch Der Service unterstützt die RequestTag und die TagKeys globalen Bedingungsschlüssel für die Konfiguration, nicht die. API OpenSearch API Diese Bedingungen gelten nur für API Aufrufe, die Tags in der Anfrage enthaltenCreateDomain, wieAddTags, undRemoveTags. Mit der folgenden Richtlinie können angehängte Prinzipale Domains erstellen, jedoch nur, wenn sie das team:it-Tag in die Anfrage aufnehmen:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "es:CreateDomain", "es:AddTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/team": [ "it" ] } } } }

Weitere Informationen zur Verwendung von Tags für die Zugriffskontrolle und zu den Unterschieden zwischen ressourcenbasierten und identitätsbasierten Richtlinien finden Sie im Benutzerhandbuch. IAM

IP-basierte Richtlinien

IP-basierte Richtlinien beschränken den Zugriff auf eine Domain auf eine oder mehrere IP-Adressen oder Blöcke. CIDR Aus technischer Sicht sind IP-basierte Richtlinien kein eigener Richtlinientyp. Stattdessen sind sie einfach ressourcenbasierte Richtlinien, die einen anonymen Prinzipal angeben und ein besonderes Condition-Element einschließen.

Der Hauptvorteil IP-basierter Richtlinien besteht darin, dass sie unsignierte Anfragen an eine OpenSearch Service-Domain zulassen, sodass Sie Clients wie Curl und OpenSearch Dashboards verwenden oder über einen Proxyserver auf die Domain zugreifen können. Weitere Informationen hierzu finden Sie unter Verwenden eines Proxys für den Zugriff auf den OpenSearch Service über Dashboards.

Anmerkung

Wenn Sie VPC den Zugriff für Ihre Domain aktiviert haben, können Sie keine IP-basierte Richtlinie konfigurieren. Sie können stattdessen mit Sicherheitsgruppen steuern, welche IP-Adressen auf die Domain zugreifen dürfen. Weitere Informationen finden Sie unter Informationen zu Zugriffsrichtlinien für Domänen VPC.

Die folgende Richtlinie gewährt allen HTTP Anfragen, die aus dem angegebenen IP-Bereich stammen, test-domain Zugriff auf:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "es:ESHttp*" ], "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24" ] } }, "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*" } ] }

Wenn Ihre Domain über einen öffentlichen Endpunkt verfügt und keine detaillierte Zugriffskontrolle verwendet, empfehlen wir, IAM Prinzipale und IP-Adressen zu kombinieren. Diese Richtlinie gewährt test-user HTTP Zugriff nur, wenn die Anfrage aus dem angegebenen IP-Bereich stammt:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::987654321098:user/test-user" ] }, "Action": [ "es:ESHttp*" ], "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24" ] } }, "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*" }] }

Konflikte in Richtlinien

Komplexitäten entstehen, wenn Richtlinien einander widersprechen oder den Benutzer nicht explizit erwähnen. Die Erläuterung der IAM Funktionsweise im IAMBenutzerhandbuch bietet eine kurze Zusammenfassung der Logik zur Bewertung von Richtlinien:

  • Standardmäßig werden alle Anforderungen verweigert.

  • Dieser Standardwert kann durch eine explizite Zugriffserlaubnis überschrieben werden.

  • Eine explizite Zugriffsverweigerung überschreibt jedwede Zugriffserlaubnis.

Wenn Ihnen beispielsweise eine ressourcenbasierte Richtlinie Zugriff auf eine Domain-Unterressource (einen OpenSearch Index oderAPI) gewährt, Ihnen aber eine identitätsbasierte Richtlinie den Zugriff verweigert, wird Ihnen der Zugriff verweigert. Wenn eine identitätsbasierte Richtlinien den Zugriff gewährt, eine ressourcenbasierte Richtlinie aber nicht festlegt, ob Ihnen Zugriff gewährt werden soll oder ob nicht, wird Ihnen der Zugriff gewährt. In der folgenden Tabelle sich überschneidender Richtlinien finden Sie eine vollständige Übersicht der Ergebnisse für Domains-Subressourcen.

Zugelassen in ressourcenbasierter Richtlinie Verweigert in ressourcenbasierter Richtlinie Weder zugelassen noch verweigert in ressourcenbasierter Richtlinie
Allowed in identity-based policy

Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf

Deny Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf
Denied in identity-based policy Deny Deny Deny
Neither allowed nor denied in identity-based policy Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Deny Deny

Richtlinienelementreferenz

OpenSearch Service unterstützt die meisten Richtlinienelemente in der IAMPolicy Elements Reference, mit Ausnahme von. NotPrincipal Die folgende Tabelle zeigt die gängigsten Elemente.

JSONpolitisches Element Übersicht
Version

Die aktuelle Version der Richtliniensprache ist 2012-10-17. Alle vordefinierten Zugriffsrichtlinien sollten diesen Wert angeben.

Effect

Dieses Element legt fest, ob die Anweisung den Zugriff auf die angegebenen Aktionen zulässt oder verweigert. Gültige Werte sind Allow oder Deny.

Principal

Dieses Element gibt die IAM Rolle AWS-Konto oder den Benutzer an, dem der Zugriff auf eine Ressource gewährt oder verweigert wird, und kann verschiedene Formen annehmen:

  • AWS Konten: "Principal":{"AWS": ["123456789012"]} oder "Principal":{"AWS": ["arn:aws:iam::123456789012:root"]}

  • IAMNutzer: "Principal":{"AWS": ["arn:aws:iam::123456789012:user/test-user"]}

  • IAMRollen: "Principal":{"AWS": ["arn:aws:iam::123456789012:role/test-role"]}

Wichtig

Die Angabe des * Platzhalters ermöglicht den anonymen Zugriff auf die Domain, was wir nicht empfehlen, es sei denn, Sie fügen eine IP-basierte Bedingung hinzu, verwenden VPCSupport oder aktivieren eine differenzierte Zugriffskontrolle. Prüfen Sie außerdem sorgfältig die folgenden Richtlinien, um sicherzustellen, dass sie keinen umfassenden Zugriff gewähren:

  • Identitätsbasierte Richtlinien, die mit zugehörigen AWS Prinzipalen verknüpft sind (z. B. Rollen) IAM

  • Ressourcenbasierte Richtlinien, die mit zugehörigen AWS Ressourcen verknüpft sind (z. B. Schlüssel) AWS Key Management Service KMS

Action

OpenSearch Der Service verwendet ESHttp* Aktionen für OpenSearch HTTP Methoden. Die restlichen Aktionen gelten für die KonfigurationAPI.

Bestimmte es:-Aktionen unterstützen Berechtigungen auf Ressourcenebene. Sie können einem Benutzer z. B. Berechtigungen zum Löschen einer bestimmten Domain erteilen, ohne ihn zum Löschen beliebiger Domains zu berechtigen. Andere Aktionen gelten nur für den Service selbst. es:ListDomainNames ist im Kontext einer einzelnen Domain ohne Bedeutung und benötigt folglich einen Platzhalter.

Eine Liste aller verfügbaren Aktionen und ob sie für die Domain-Subressourcen (test-domain/*), für die Domain-Konfiguration () oder nur für den Service (test-domain*) gelten, finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon OpenSearch Service in der Service Authorization Reference

Ressourcenbasierte Richtlinien unterscheiden sich von Berechtigungen auf Ressourcenebene. Bei ressourcenbasierten Richtlinien handelt es sich um vollständige JSON Richtlinien, die sich auf Domains beziehen. Mithilfe von Berechtigungen auf Ressourcenebene können Sie Aktionen auf bestimmte Domains oder Unterressourcen einschränken. In der Praxis können Sie sich Berechtigungen auf Ressourcenebene als optionaler Teil einer ressourcen- oder identitätsbasierten Richtlinien vorstellen.

Während Berechtigungen auf Ressourcenebene für es:CreateDomain nicht allzu sinnvoll erscheinen – denn warum sollte man einem Benutzer Berechtigungen zum Erstellen einer Domain gewähren, die bereits vorhanden ist? – können Sie mithilfe eines Platzhalters ein einfaches Benennungsschema für Ihre Domains (z. B. "Resource": "arn:aws:es:us-west-1:987654321098:domain/my-team-name-*") erzwingen.

Natürlich kann nichts Sie daran hindern, Aktionen zusammen mit weniger restriktiven Ressourcen einzuschließen, wie z. B. die folgenden Elemente:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpGet", "es:DescribeDomain" ], "Resource": "*" } ] }

Weitere Informationen zum Kombinieren von Aktionen mit Ressourcen finden Sie unter dem Element Resource in dieser Tabelle.

Condition

OpenSearch Der Service unterstützt die meisten Bedingungen, die im IAMBenutzerhandbuch in den Kontextschlüsseln für AWS globale Bedingungen beschrieben sind. Zu den nennenswerten Ausnahmen gehört der aws:PrincipalTag Schlüssel, den der OpenSearch Service nicht unterstützt.

Bei der Konfiguration einer IP-basierten Richtlinie geben Sie die IP-Adressen oder den CIDR Block als Bedingung an, z. B. im Folgenden:

"Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/32" ] } }

Wie unter erwähntIdentitätsbasierte Richtlinien, gelten die aws:ResourceTag aws:TagKeys Bedingungstastenaws:RequestTag, und für die Konfiguration API ebenso wie für die OpenSearch APIs.

Resource

OpenSearch Der Service verwendet Resource Elemente auf drei grundlegende Arten:

  • Verwenden Sie für Aktionen, die sich auf den OpenSearch Dienst selbst beziehenes:ListDomainNames, z. B. um vollen Zugriff zu gewähren, die folgende Syntax:

    "Resource": "*"
  • Für Aktionen, die mit der Konfiguration einer Domain zusammenhängen, wie es:DescribeDomain, können Sie die folgende Syntax verwenden:

    "Resource": "arn:aws:es:region:aws-account-id:domain/domain-name"
  • Für Aktionen, die für Unterressourcen einer Domain gelten, wie es:ESHttpGet, können Sie die folgende Syntax verwenden:

    "Resource": "arn:aws:es:region:aws-account-id:domain/domain-name/*"

    Sie müssen keinen Platzhalter verwenden. OpenSearch Mit dem Service können Sie für jeden OpenSearch Index oder API eine andere Zugriffsrichtlinie definieren. Unter Umständen möchten Sie die Berechtigungen eines Benutzers für den Index test-index einschränken:

    "Resource": "arn:aws:es:region:aws-account-id:domain/domain-name/test-index"

    Anstatt vollen Zugriff auf zu gewährentest-index, ziehen Sie es vielleicht vor, die Richtlinie nur auf die Suche zu beschränkenAPI:

    "Resource": "arn:aws:es:region:aws-account-id:domain/domain-name/test-index/_search"

    Sie können sogar den Zugriff auf einzelne Dokumente kontrollieren:

    "Resource": "arn:aws:es:region:aws-account-id:domain/domain-name/test-index/test-type/1"

    Wenn die Unterressource als eine OpenSearch ausgedrückt wirdURI, können Sie den Zugriff darauf im Wesentlichen mithilfe einer Zugriffsrichtlinie steuern. Weitere Informationen dazu, auf welche Ressourcen ein Benutzer zugreifen kann, finden Sie unter Feinkörnige Zugriffskontrolle in Amazon Service OpenSearch .

Weitere Informationen dazu, welche Aktionen Berechtigungen auf Ressourcenebene unterstützten, finden Sie unter dem Element Action in dieser Tabelle.

Erweiterte Optionen und Überlegungen API

OpenSearch Der Service bietet mehrere erweiterte Optionen, von denen eine Auswirkungen auf die Zugriffskontrolle hat:rest.action.multi.allow_explicit_index. Bei ihrer Standardeinstellung „true" können Benutzer Unterressourcen-Berechtigungen unter bestimmten Bedingungen umgehen.

Beachten Sie beispielsweise die folgende ressourcenbasierte Richtlinie:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/test-user" ] }, "Action": [ "es:ESHttp*" ], "Resource": [ "arn:aws:es:us-west-1:987654321098:domain/test-domain/test-index/*", "arn:aws:es:us-west-1:987654321098:domain/test-domain/_bulk" ] }, { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/test-user" ] }, "Action": [ "es:ESHttpGet" ], "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/restricted-index/*" } ] }

Diese Richtlinie gewährt test-user vollen Zugriff auf test-index und den OpenSearch GroßteilAPI. Außerdem ermöglicht sie GET-Anforderungen an restricted-index.

Wie zu erwarten, schlägt die folgende Indizierungsanforderung aufgrund eines Berechtigungsfehlers fehl:

PUT https://search-test-domain.us-west-1.es.amazonaws.com/restricted-index/movie/1 { "title": "Your Name", "director": "Makoto Shinkai", "year": "2016" }

Im Gegensatz zum Index API API können Sie mit dem Bulk-Modus viele Dokumente in einem einzigen Aufruf erstellen, aktualisieren und löschen. Sie geben diese Operationen jedoch häufig im Anforderungstext und nicht in der Anforderung anURL. Da OpenSearch Service URLs den Zugriff auf Domänen-Subressourcen steuert, test-user kann er tatsächlich die Menge verwenden, API um Änderungen daran vorzunehmen. restricted-index Auch wenn der Benutzer über keine POST-Berechtigungen für den Index verfügt, ist die folgende Anforderung erfolgreich:

POST https://search-test-domain.us-west-1.es.amazonaws.com/_bulk { "index" : { "_index": "restricted-index", "_type" : "movie", "_id" : "1" } } { "title": "Your Name", "director": "Makoto Shinkai", "year": "2016" }

In diesem Fall funktioniert die Zugriffsrichtlinie nicht wie beabsichtigt. Um Benutzer daran zu hindern, diese Arten von Einschränkungen zu umgehen, können Sie rest.action.multi.allow_explicit_index in „false" ändern. Wenn dieser Wert falsch ist, funktionieren alle Aufrufe von bulk, mget und msearch, die Indexnamen im Hauptteil der Anfrage angebenAPIs, nicht mehr. Mit anderen Worten: Aufrufe an _bulk funktionieren nicht mehr, aber Aufrufe an test-index/_bulk sind hiervon nicht betroffen. Da dieser zweite Endpunkt einen Indexnamen enthält, müssen Sie im Anforderungstext keinen angeben.

OpenSearch Dashboards sind stark von mget und msearch abhängig, weshalb es nach dieser Änderung unwahrscheinlich ist, dass es ordnungsgemäß funktioniert. Bei teilweiser Korrektur können Sie den Wert auf „true“ rest.action.multi.allow_explicit_index belassen und bestimmten Benutzern den Zugriff auf eine oder mehrere dieser Optionen verweigern. APIs

Weitere Informationen zum Ändern dieser Einstellung finden Sie unter Erweiterte Clustereinstellungen.

Dementsprechend enthalt die folgende ressourcenbasierte Richtlinie zwei geringfügige Probleme:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/test-user" }, "Action": "es:ESHttp*", "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*" }, { "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/test-user" }, "Action": "es:ESHttp*", "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/restricted-index/*" } ] }
  • Trotz der expliziten Verweigerung kann test-user weiterhin Aufrufe wie GET https://search-test-domain.us-west-1.es.amazonaws.com/_all/_search und GET https://search-test-domain.us-west-1.es.amazonaws.com/*/_search für den Zugriff auf die Dokumente in restricted-index ausführen.

  • Da das Resource-Element auf restricted-index/* verweist, ist test-user nicht zum direkten Zugriff auf die Dokumente des Index berechtigt. Der Benutzer verfügt jedoch über Berechtigungen zum Löschen des gesamten Index. Damit der Zugriff und das Löschen verhindert werden, muss die Richtlinie stattdessen restricted-index* angeben.

Anstatt großzügige Berechtigungen und gezielte Verweigerungen miteinander zu mischen, ist eine sicherere Strategie, der Regel der geringsten Rechte zu folgen und nur die Berechtigungen zu gewähren, die zum Ausführen einer Aufgabe erforderlich sind. Weitere Informationen zur Steuerung des Zugriffs auf einzelne Indizes oder OpenSearch Operationen finden Sie unter. Feinkörnige Zugriffskontrolle in Amazon Service OpenSearch

Wichtig

Die Angabe des Platzhalters* ermöglicht den anonymen Zugriff auf Ihre Domain. Es wird nicht empfohlen, den Platzhalter zu verwenden. Überprüfen Sie außerdem sorgfältig die folgenden Richtlinien, um sicherzustellen, dass sie keinen breiten Zugriff gewähren:

  • Identitätsbasierte Richtlinien, die mit zugehörigen AWS Prinzipalen verknüpft sind (z. B. Rollen) IAM

  • Ressourcenbasierte Richtlinien, die mit zugehörigen AWS Ressourcen verknüpft sind (z. B. Schlüssel) AWS Key Management Service KMS

Konfigurieren von Zugriffsrichtlinien

  • Anweisungen zum Erstellen oder Ändern von ressourcen- und IP-basierten Richtlinien in OpenSearch Service finden Sie unter. Konfigurieren von Zugriffsrichtlinien

  • Anweisungen zum Erstellen oder Ändern identitätsbasierter Richtlinien finden Sie unter IAMRichtlinien erstellen im IAM Benutzerhandbuch. IAM

Zusätzliche Beispielrichtlinien

Obwohl dieses Kapitel viele Beispielrichtlinien enthält, ist die AWS Zugriffskontrolle ein komplexes Thema, das sich am besten anhand von Beispielen verstehen lässt. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter Beispiele für IAM identitätsbasierte Richtlinien.