Datenzugriffskontrolle für Amazon OpenSearch Serverless - 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.

Datenzugriffskontrolle für Amazon OpenSearch Serverless

Mit der Datenzugriffskontrolle in Amazon OpenSearch Serverless können Sie Benutzern den Zugriff auf Sammlungen und Indizes ermöglichen, unabhängig von ihrem Zugriffsmechanismus oder ihrer Netzwerkquelle. Sie können IAM-Rollen und SAML-Identitäten Zugriff gewähren.

Sie verwalten Zugriffsberechtigungen über Datenzugriffsrichtlinien, die für Sammlungen und Indexressourcen gelten. Datenzugriffsrichtlinien unterstützen Sie bei der Verwaltung von Sammlungen in großem Umfang, indem sie automatisch Zugriffsberechtigungen für Sammlungen und Indizes zuweisen, die einem bestimmten Muster übereinstimmen. Für eine einzelne Ressource können mehrere Datenzugriffsrichtlinien gelten. Beachten Sie, dass Sie über eine Datenzugriffsrichtlinie für Ihre Sammlung verfügen müssen, um auf Ihre OpenSearch Dashboard-URL zugreifen zu können.

Datenzugriffsrichtlinien im Vergleich zu IAM-Richtlinien

Datenzugriffsrichtlinien sind logisch von AWS Identity and Access Management (IAM-) Richtlinien getrennt. IAM-Berechtigungen steuern den Zugriff auf die Serverless API-Operationen wie z. B. CreateCollection und ListAccessPolicies. Datenzugriffsrichtlinien steuern den Zugriff auf die von OpenSearch Serverless unterstützten OpenSearch Operationen wie oder. PUT <index> GET _cat/indices

Die IAM-Berechtigungen, die den Zugriff auf API-Operationen der Datenzugriffsrichtlinie steuern, wie z. B. aoss:CreateAccessPolicy and aoss:GetAccessPolicy (im nächsten Abschnitt beschrieben), wirken sich nicht auf die in einer Datenzugriffsrichtlinie angegebene Berechtigung aus.

Angenommen, eine IAM-Richtlinie verweigert einem Benutzer beispielsweise das Erstellen von Datenzugriffsrichtlinien für collection-a, erlaubt ihm jedoch, Datenzugriffsrichtlinien für alle Sammlungen (*) zu erstellen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "aoss:CreateAccessPolicy" ], "Resource": "*", "Condition": { "StringLike": { "aoss:collection": "collection-a" } } }, { "Effect": "Allow", "Action": [ "aoss:CreateAccessPolicy" ], "Resource": "*" } ] }

Wenn der Benutzer eine Datenzugriffsrichtlinie erstellt, die bestimmte Berechtigungen für alle Sammlungen (collection/* oder index/*/*) gewährt, gilt die Richtlinie für alle Sammlungen, einschließlich Sammlung A.

Wichtig

Die Erteilung von Berechtigungen im Rahmen einer Datenzugriffsrichtlinie reicht nicht aus, um auf Daten in Ihrer OpenSearch serverlosen Sammlung zuzugreifen. Einem zugehörigen Principal muss außerdem Zugriff auf die IAM-Berechtigungen aoss:APIAccessAll und gewährt werden. aoss:DashboardsAccessAll Beide Berechtigungen gewähren vollen Zugriff auf Sammlungsressourcen, während die Dashboard-Berechtigung auch Zugriff OpenSearch auf Dashboards gewährt. Wenn ein Principal nicht über diese beiden IAM-Berechtigungen verfügt, erhält er 403-Fehler, wenn er versucht, Anfragen an die Sammlung zu senden. Weitere Informationen finden Sie unter Operationen verwenden OpenSearch API.

Für die Konfiguration von Datenzugriffsrichtlinien sind IAM-Berechtigungen erforderlich

Die Datenzugriffskontrolle für OpenSearch Serverless verwendet die folgenden IAM-Berechtigungen. Sie können IAM-Bedingungen festlegen, um Benutzer auf bestimmte Zugriffsrichtliniennamen zu beschränken.

  • aoss:CreateAccessPolicy – Erstellt eine Zugriffsrichtlinie.

  • aoss:ListAccessPolicies – Listet alle Zugriffsrichtlinien auf.

  • aoss:GetAccessPolicy – Zeigt Details zu einer bestimmten Zugriffsrichtlinie an.

  • aoss:UpdateAccessPolicy – Ändert eine Zugriffsrichtlinie.

  • aoss:DeleteAccessPolicy – Löscht eine Zugriffsrichtlinie.

Die folgende identitätsbasierte Zugriffsrichtlinie ermöglicht es einem Benutzer, alle Zugriffsrichtlinien anzuzeigen und Richtlinien zu aktualisieren, die das Ressourcenmuster collection/logs enthalten.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "aoss:ListAccessPolicies", "aoss:GetAccessPolicy" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "aoss:UpdateAccessPolicy" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aoss:collection": [ "logs" ] } } } ] }
Anmerkung

Darüber hinaus benötigt OpenSearch Serverless die aoss:DashboardsAccessAll Berechtigungen aoss:APIAccessAll und für die Erfassung von Ressourcen. Weitere Informationen finden Sie unter Operationen verwenden OpenSearch API.

Richtliniensyntax

Eine Datenzugriffsrichtlinie enthält eine Reihe von Regeln, die jeweils die folgenden Elemente enthalten:

Element Beschreibung
ResourceType Der Ressourcentyp (Sammlung oder Index), für den die Berechtigungen gelten. Alias- und Vorlagenberechtigungen befinden sich auf Sammlungsebene, während Berechtigungen zum Erstellen, Ändern und Suchen von Daten auf Indexebene liegen. Weitere Informationen finden Sie unter Unterstützte Richtlinienberechtigungen.
Resource Eine Liste von Ressourcennamen und/oder Mustern. Muster sind Präfixe gefolgt von einem Platzhalter (*), wodurch die zugehörigen Berechtigungen auf mehrere Ressourcen angewendet werden können.
  • Sammlungen haben das Format collection/<name|pattern>.

  • Indizes haben das Format index/<collection-name|pattern>/<index-name|pattern/>.

Permission Eine Liste der Berechtigungen, die für die angegebenen Ressourcen gewährt werden sollen. Eine vollständige Liste der Berechtigungen und der zulässigen API-Operationen finden Sie unter Unterstützte Operationen OpenSearch API und Berechtigungen.
Principal Eine Liste mit einem oder mehreren Prinzipalen, denen Zugriff gewährt werden soll. Prinzipale können IAM-Rollen-ARNs oder SAML-Identitäten sein. Diese Prinzipien müssen dem aktuellen AWS-Konto entsprechen. Datenzugriffsrichtlinien unterstützen den kontoübergreifenden Zugriff nicht direkt, Sie können jedoch eine Rolle in Ihre Richtlinie aufnehmen, die ein Benutzer aus einem anderen Land in dem Konto, dem die Sammlung gehört, übernehmen AWS-Konto kann. Weitere Informationen finden Sie unter Kontoübergreifender Datenzugriff.

Die folgende Beispielrichtlinie gewährt Alias- und Vorlagenberechtigungen für die Sammlung mit dem Namen autopartsinventory sowie alle Sammlungen, die mit dem Präfix sales* beginnen. Es gewährt auch Lese- und Schreibberechtigungen für alle Indizes innerhalb der autopartsinventory-Sammlung und alle Indizes in der salesorders-Sammlung, die mit dem Präfix orders* beginnen.

[ { "Description": "Rule 1", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ], "Permission":[ "aoss:CreateCollectionItems", "aoss:UpdateCollectionItems", "aoss:DescribeCollectionItems" ] }, { "ResourceType":"index", "Resource":[ "index/autopartsinventory/*", "index/salesorders/orders*" ], "Permission":[ "aoss:*" ] } ], "Principal":[ "arn:aws:iam::123456789012:user/Dale", "arn:aws:iam::123456789012:role/RegulatoryCompliance", "saml/123456789012/myprovider/user/Annie", "saml/123456789012/anotherprovider/group/Accounting" ] } ]

Sie können den Zugriff innerhalb einer Richtlinie nicht explizit verweigern. Daher sind alle Richtlinienberechtigungen additiv. Wenn beispielsweise eine Richtlinie einem Benutzer aoss:ReadDocument und eine andere Richtlinie aoss:WriteDocument gewährt, verfügt der Benutzer über beide Berechtigungen. Wenn eine dritte Richtlinie denselben Benutzer aoss:* gewährt, kann der Benutzer alle Aktionen für den zugeordneten Index ausführen. Restriktivere Berechtigungen überschreiben weniger restriktive nicht.

Unterstützte Richtlinienberechtigungen

Die folgenden Berechtigungen werden in Datenzugriffsrichtlinien unterstützt. Informationen zu den OpenSearch API-Vorgängen, die einzelnen Berechtigungen zulassen, finden Sie unterUnterstützte Operationen OpenSearch API und Berechtigungen.

Sammlungssberechtigungen

  • aoss:CreateCollectionItems

  • aoss:DeleteCollectionItems

  • aoss:UpdateCollectionItems

  • aoss:DescribeCollectionItems

  • aoss:*

Indexberechtigungen

  • aoss:ReadDocument

  • aoss:WriteDocument

  • aoss:CreateIndex

  • aoss:DeleteIndex

  • aoss:UpdateIndex

  • aoss:DescribeIndex

  • aoss:*

Beispieldatensätze auf Dashboards OpenSearch

OpenSearch Dashboards bietet Beispieldatensätze mit Visualisierungen, Dashboards und anderen Tools, die Ihnen helfen, Dashboards zu erkunden, bevor Sie Ihre eigenen Daten hinzufügen. Um Indizes aus diesen Beispieldaten zu erstellen, benötigen Sie eine Datenzugriffsrichtlinie, die Berechtigungen für den Datensatz bereitstellt, mit dem Sie arbeiten möchten. Die folgende Richtlinie verwendet einen Platzhalter (*), um Berechtigungen für alle drei Beispieldatensätze zu gewähren.

[ { "Rules": [ { "Resource": [ "index/<collection-name>/opensearch_dashboards_sample_data_*" ], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:ReadDocument" ], "ResourceType": "index" } ], "Principal": [ "arn:aws:iam::<account-id>:user/<user>" ] } ]

Erstellen von Datenzugriffsrichtlinien (Konsole)

Sie können eine Datenzugriffsrichtlinie mit dem visuellen Editor oder im JSON-Format erstellen. Allen neuen Sammlungen, die mit einem der in der Richtlinie definierten Muster übereinstimmen, werden beim Erstellen der Sammlung die entsprechenden Berechtigungen zugewiesen.

Um eine Richtlinie für den OpenSearch serverlosen Datenzugriff zu erstellen
  1. Öffnen Sie die Amazon OpenSearch Service-Konsole unter https://console.aws.amazon.com/aos/home.

  2. Erweitern Sie im linken Navigationsbereich Serverless und wählen Sie Data access control (Datenzugriffssteuerung) aus.

  3. Wählen Sie Create access policy (Zugriffsrichtlinie erstellen) aus.

  4. Geben Sie einen Namen und eine Beschreibung für die Richtlinie an.

  5. Geben Sie einen Namen für die erste Regel in Ihrer Richtlinie an. Beispiel: „Zugriff auf die Protokollsammlung“.

  6. Wählen Sie Add principals (Prinzipale hinzufügen) und wählen Sie eine oder mehrere IAM-Rollen oder SAML users and groups (SAML-Benutzer und -Gruppen) aus, denen Sie Datenzugriff gewähren möchten.

    Anmerkung

    Um Prinzipale aus den Dropdown-Menüs auswählen zu können, müssen Sie über die iam:ListUsers- und iam:ListRoles-Berechtigungen (für IAM-Prinzipale) und die aoss:ListSecurityConfigs-Berechtigung (für SAML-Identitäten) verfügen.

  7. Wählen Sie Grant (Gewähren) und wählen Sie die Alias-, Vorlagen- und Indexberechtigungen aus, um die zugehörigen Prinzipale zu erteilen. Eine vollständige Liste der Berechtigungen und des von ihnen gewährten Zugriffs finden Sie unter Unterstützte Operationen OpenSearch API und Berechtigungen.

  8. (Optional) Konfigurieren Sie zusätzliche Regeln für die Richtlinie.

  9. Wählen Sie Erstellen. Zwischen der Erstellung der Richtlinie und dem Erzwingen von Berechtigungen kann eine Verzögerung von etwa einer Minute liegen. Wenn es länger als 5 Minuten dauert, wenden Sie sich an AWS Support.

Wichtig

Wenn Ihre Richtlinie nur Indexberechtigungen (und keine Sammlungsberechtigungen) umfasst, wird Ihnen möglicherweise trotzdem eine Meldung mit dem Hinweis Collection cannot be accessed yet. Configure data access policies so that users can access the data within this collection für passende Sammlungen angezeigt. Sie können diese Warnung ignorieren. Zulässige Prinzipale können weiterhin ihre zugewiesenen indexbezogenen Operationen für die Sammlung ausführen.

Erstellen von Datenzugriffsrichtlinien (AWS CLI)

Verwenden Sie den CreateAccessPolicy Befehl, um eine Datenzugriffsrichtlinie mithilfe der OpenSearch Serverless API zu erstellen. Der Befehl akzeptiert sowohl Inline-Richtlinien als auch .json-Dateien. Inline-Richtlinien müssen als JSON-Zeichenfolge mit Escape-Zeichen codiert werden.

Die folgende Anfrage erstellt eine Datenzugriffsrichtlinie:

aws opensearchserverless create-access-policy \ --name marketing \ --type data \ --policy "[{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"],\"Permission\":[\"aoss:UpdateCollectionItems\"]},{\"ResourceType\":\"index\",\"Resource\":[\"index/autopartsinventory/*\",\"index/salesorders/orders*\"],\"Permission\":[\"aoss:ReadDocument\",\"aoss:DescribeIndex\"]}],\"Principal\":[\"arn:aws:iam::123456789012:user/Shaheen\"]}]"

Verwenden Sie das Format --policy file://my-policy.json, um die Richtlinie in einer .json-Datei bereitzustellen.

Die in der Richtlinie enthaltenen Prinzipale können jetzt die OpenSearch Operationen verwenden, für die ihnen Zugriff gewährt wurde.

Ansicht von Datenzugriffsrichtlinien

Bevor Sie eine Sammlung erstellen, möchten Sie möglicherweise eine Vorschau der vorhandenen Datenzugriffsrichtlinien in Ihrem Konto anzeigen, um zu sehen, welche ein Ressourcenmuster hat, das mit dem Namen Ihrer Sammlung übereinstimmt. In der folgenden ListAccessPoliciesAnfrage werden alle Datenzugriffsrichtlinien in Ihrem Konto aufgeführt:

aws opensearchserverless list-access-policies --type data

Die Anfrage gibt Informationen über alle konfigurierten Datenzugriffsrichtlinien zurück. Die Musterregeln, die in einer bestimmten Richtlinie definiert sind, finden Sie im Inhalt des accessPolicySummaries Elements in der Antwort. Notieren Sie sich das name Ende type dieser Richtlinie und verwenden Sie diese Eigenschaften in einer GetAccessPolicyAnfrage, um eine Antwort mit den folgenden Richtliniendetails zu erhalten:

{ "accessPolicyDetails": [ { "type": "data", "name": "my-policy", "policyVersion": "MTY2NDA1NDE4MDg1OF8x", "description": "My policy", "policy": "[{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"],\"Permission\":[\"aoss:UpdateCollectionItems\"]},{\"ResourceType\":\"index\",\"Resource\":[\"index/autopartsinventory/*\",\"index/salesorders/orders*\"],\"Permission\":[\"aoss:ReadDocument\",\"aoss:DescribeIndex\"]}],\"Principal\":[\"arn:aws:iam::123456789012:user/Shaheen\"]}]", "createdDate": 1664054180858, "lastModifiedDate": 1664054180858 } ] }

Sie können Ressourcenfilter einbeziehen, um die Ergebnisse auf Richtlinien zu beschränken, die bestimmte Sammlungen oder Indizes enthalten:

aws opensearchserverless list-access-policies --type data --resource "index/autopartsinventory/*"

Verwenden Sie den GetAccessPolicyBefehl, um Details zu einer bestimmten Richtlinie anzuzeigen.

Aktualisieren von Datenzugriffsrichtlinien

Wenn Sie eine Datenzugriffsrichtlinie aktualisieren, wirkt sich dies auf alle zugehörigen Sammlungen aus. Um eine Datenzugriffsrichtlinie in der OpenSearch Serverless-Konsole zu aktualisieren, wählen Sie Datenzugriffskontrolle, wählen Sie die zu ändernde Richtlinie aus und klicken Sie auf Bearbeiten. Nehmen Sie Ihre Änderungen vor und wählen Sie Save (Speichern).

Um eine Datenzugriffsrichtlinie mithilfe der OpenSearch Serverless API zu aktualisieren, senden Sie eine UpdateAccessPolicy Anfrage. Sie müssen eine Richtlinienversion einbeziehen, die Sie mit den ListAccessPolicies- oder GetAccessPolicy-Befehlen abrufen können. Durch die Angabe der neuesten Richtlinienversion wird sichergestellt, dass Sie nicht versehentlich eine von einem anderen Benutzer vorgenommene Änderung überschreiben.

Die folgende UpdateAccessPolicyAnfrage aktualisiert eine Datenzugriffsrichtlinie mit einem neuen JSON-Richtliniendokument:

aws opensearchserverless update-access-policy \ --name sales-inventory \ --type data \ --policy-version MTY2NDA1NDE4MDg1OF8x \ --policy file://my-new-policy.json

Zwischen dem Aktualisieren der Richtlinie und dem Erzwingen der neuen Berechtigungen kann es einige Minuten Verzögerung geben.

Löschen von Datenzugriffsrichtlinien

Wenn Sie eine Datenzugriffsrichtlinie löschen, verlieren alle zugehörigen Sammlungen den in der Richtlinie definierten Zugriff. Stellen Sie sicher, dass Ihre IAM- und SAML-Benutzer über den entsprechenden Zugriff auf die Sammlung verfügen, bevor Sie eine Richtlinie löschen. Um eine Richtlinie in der OpenSearch Serverless-Konsole zu löschen, wählen Sie die Richtlinie aus und klicken Sie auf Löschen.

Sie können auch den DeleteAccessPolicyfolgenden Befehl verwenden:

aws opensearchserverless delete-access-policy --name my-policy --type data

Kontoübergreifender Datenzugriff

Sie können zwar keine Datenzugriffsrichtlinie mit kontoübergreifender Identität oder kontoübergreifender Erfassung erstellen, aber Sie können mit der Option „Rolle übernehmen“ dennoch einen kontoübergreifenden Zugriff einrichten. Wenn Sie beispielsweise account-a Eigentümer einer Sammlung sind, für die Zugriff account-b erforderlich ist, account-b kann der Benutzer von aus eine Rolle darin übernehmen. account-a Die Rolle muss über die IAM-Berechtigungen verfügen aoss:APIAccessAll und aoss:DashboardsAccessAll in der Datenzugriffsrichtlinie enthalten sein. account-a