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.
Themen
- Datenzugriffsrichtlinien im Vergleich zu IAM-Richtlinien
- Für die Konfiguration von Datenzugriffsrichtlinien sind IAM-Berechtigungen erforderlich
- Richtliniensyntax
- Unterstützte Richtlinienberechtigungen
- Beispieldatensätze auf Dashboards OpenSearch
- Erstellen von Datenzugriffsrichtlinien (Konsole)
- Erstellen von Datenzugriffsrichtlinien (AWS CLI)
- Ansicht von Datenzugriffsrichtlinien
- Aktualisieren von Datenzugriffsrichtlinien
- Löschen von Datenzugriffsrichtlinien
- Kontoübergreifender Datenzugriff
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.
|
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*
), 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
-
Öffnen Sie die Amazon OpenSearch Service-Konsole unter https://console.aws.amazon.com/aos/home
. -
Erweitern Sie im linken Navigationsbereich Serverless und wählen Sie Data access control (Datenzugriffssteuerung) aus.
-
Wählen Sie Create access policy (Zugriffsrichtlinie erstellen) aus.
-
Geben Sie einen Namen und eine Beschreibung für die Richtlinie an.
-
Geben Sie einen Namen für die erste Regel in Ihrer Richtlinie an. Beispiel: „Zugriff auf die Protokollsammlung“.
-
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
- undiam:ListRoles
-Berechtigungen (für IAM-Prinzipale) und dieaoss:ListSecurityConfigs
-Berechtigung (für SAML-Identitäten) verfügen. -
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.
-
(Optional) Konfigurieren Sie zusätzliche Regeln für die Richtlinie.
-
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
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://
, um die Richtlinie in einer .json-Datei bereitzustellen.my-policy
.json
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
Eigentümer einer Sammlung sind, für die Zugriff account-a
erforderlich ist, account-b
kann der Benutzer von aus eine Rolle darin übernehmen. account-b
Die Rolle muss über die IAM-Berechtigungen verfügen account-a
aoss:APIAccessAll
und aoss:DashboardsAccessAll
in der Datenzugriffsrichtlinie enthalten sein. account-a