Wie behebe ich Probleme mit der differenzierten Zugriffskontrolle in meinem OpenSearch Service-Cluster?
In meinem Amazon OpenSearch Service-Cluster treten Zugriffskontrollfehler oder Probleme bei der differenzierten Zugriffskontrolle auf.
Lösung
Voraussetzungen:
- Um andere AWS-Services mit OpenSearch Service zu nutzen, stelle sicher, dass du den AWS Identity and Access Management (IAM)-Rollen des Services die erforderlichen Berechtigungen erteilst.
- Um eine differenzierte Zugriffskontrolle für bestimmte Indizes oder Dashboards bereitzustellen, ordne den Benutzer einer Rolle mit den folgenden Berechtigungen für den Kibana-Index des Mandanten zu:
Hinweis: Ersetze tenant\ _name durch den Namen deines Mandanten. OpenSearch generiert automatisch einen Wert für hash..kibana_hash_tenant_name - Um die differenzierte Zugriffskontrolle auf Feldebene zu nutzen, richte eine OpenSearch-Sicherheitsrolle mit der erforderlichen Sicherheit auf Feldebene ein. Anweisungen hierzu findest du unter Definieren von Rollen auf der OpenSearch-Website. Um den Benutzer anschließend der Rolle zuzuordnen, lies den Abschnitt Benutzer Rollen zuordnen auf der OpenSearch-Website. Weitere Informationen findest du unter Sicherheit auf Feldebene auf der OpenSearch-Website.
- Um die differenzierte Zugriffskontrolle auf Dokumentenebene zu nutzen, erstelle eine OpenSearch-Sicherheitsrolle mit der erforderlichen Sicherheit auf Dokumentenebene. Um den Benutzer anschließend der Rolle zuzuordnen, lies den Abschnitt Benutzer Rollen zuordnen auf der OpenSearch-Website. Weitere Informationen findest du unter Sicherheit auf Dokumentebene auf der OpenSearch-Website.
Wenn du die differenzierte Zugriffskontrolle verwendest und Fehlermeldungen erhältst, führe basierend auf dem erhaltenen Fehler die folgenden Maßnahmen zur Fehlerbehebung durch.
**Hinweis:**In OpenSearch Service kannst du den anonymen Zugriff nicht verwenden.
Fehler 403 „security_exception","reason":"no permissions for [action]“
Um diesen Fehler zu beheben, stelle sicher, dass die Benutzer- oder Backend-Rolle in Ihrem OpenSearch Service-Cluster über die erforderlichen Berechtigungen verfügt. Informationen zu den erforderlichen Berechtigungen findest du unter Berechtigungen auf der OpenSearch-Website. Stelle anschließend sicher, dass du den Benutzer oder die Backend-Rolle einer OpenSearch-Sicherheitsrolle zugeordnet hast. Anweisungen hierzu findest du unter Benutzer Rollen zuordnen auf der OpenSearch-Website.
Fehler „security_exception","reason":"no permissions for []“
Systemindizes musst du von Wiederherstellungsanforderungen ausschließen. Tust du dies nicht, kann dieser Fehler beim Wiederherstellen eines Snapshots auftreten, selbst wenn du über die erforderlichen Berechtigungen verfügst.
Um dieses Problem zu lösen, führe den folgenden Befehl aus, um Systemindizes von der Wiederherstellungsanforderung auszuschließen:
curl -XPOST 'domain-endpoint/_snapshot/snapshot-repository/snapshot-name/_restore' \ -d '{"indices": "-.kibana*,-.opendistro*"}' \ -H 'Content-Type: application/json'
**Hinweis:**Ersetze domain-endpoint durch deinen Domain-Endpunkt, snapshot-repository durch dein Snapshot-Repository und snapshot-name durch deinen Snapshot-Namen.
Fehler „Fehlende Rolle“
Um sich bei OpenSearch Dashboards anzumelden, musst du den Benutzer oder die Backend-Rolle mindestens einer OpenSearch-Sicherheitsrolle zuordnen. Wenn du dies nicht tust, erhältst du möglicherweise die folgende Fehlermeldung, wenn du dich bei OpenSearch Dashboards anmeldest:
„Missing role. No roles available for this user, please contact your system administrator.“
Um dieses Problem zu lösen, lies den Abschnitt Benutzer Rollen zuordnen auf der OpenSearch-Website.
Fehler „User: anonymous is not authorized to perform: iam:PassRole“
Du musst die Rolle manage\ _snapshots der IAM-Rolle zuordnen, mit der du den manuellen Snapshot registriert hast. Tust du Sie dies nicht, erhältst du möglicherweise diesen Fehler, wenn du ein manuelles Snapshot-Repository registrierst.
Gehe wie folgt vor, um dieses Problem zu beheben:
- Melde dich als administrativer Benutzer bei Ihrem OpenSearch-Dashboard an.
- Wähle m Navigationsbereich Sicherheit aus.
- Wähle Rollen aus.
- Wähle manage\ _snapshots aus.
- Wählen Zugeordnete Benutzer und anschließend Zuordnung verwalten aus.
- Gib für Backend-Rollen den Amazon-Ressourcennamen (ARN) der IAM-Rolle ein.
- Drücke die Eingabetaste.
- Wähle Zuordnen aus.
Fehler „User: anonymous is not authorized to perform: es:ESHttp HTTP_Method“
Der Anforderer muss die Anforderungen der Domainzugriffsrichtlinie einhalten. Wenn du dies nicht tust, erhältst du die Fehlermeldung „not authorized to perform“.
Um diesen Fehler zu beheben, aktualisiere die Domainzugriffsrichtlinie, sodass die Art der von dir gesendeten Anfrage zulässig ist. Um unsignierte Anfragen zuzulassen, setze Prinzipal auf ** "AWS": "*"**.
Führe anschließend die folgenden Maßnahmen basierend auf den Anforderungen deiner Richtlinie durch.
Die Richtlinie beinhaltet einen IAM-Prinzipal
Enthält die Domainzugriffsrichtlinie einen IAM-Prinzipal, muss der IAM-Prinzipal die Anfrage mit AWS Signature Version 4 signieren. In diesem Szenario lehnt OpenSearch Service unsignierte Anfragen ab, z. B. grundlegende Autorisierungen oder anonymen Zugriff.
Der folgende Beispielbefehl zeigt eine Anforderung, die die IAM-Rolle signiert:
curl -X GET "opensearch_endpoint" \ --user "AWS_ACCESS_KEY_ID":"AWS_SECRET_ACCESS_KEY" \ -H "x-amz-security-token: AWS_SESSION_TOKEN" \ --aws-sigv4 "aws:amz:region:es"
Hinweis: Ersetze opensearch_endpoint durch deinen Endpunkt, AWS_ACCESS_KEY_ID durch deinen Zugriffsschlüssel, AWS_SECRET_ACCESS_KEY durch deinen geheimen Zugriffsschlüssel, AWS_SESSION_TOKEN durch dein Sitzungstoken und region durch deine AWS-Region. Für Anfragen von einem IAM-Benutzer entferne \ -H „x-amz-security-token: AWS_SESSION_TOKEN" \.
Die Richtlinie erlaubt nur Anfragen von bestimmten IP-Adressen
Enthält die Richtlinie IP-Adressbedingungen und verwendet einen "Principal": { "AWS": "*" }, kannst du unsignierte Anfragen verwenden, um auf OpenSearch Service zuzugreifen. Die Anfrage muss jedoch von einer erlaubten IP-Adresse kommen.
**Hinweis:**Enthält die Richtlinie einen IAM-Principal und lässt nur eine bestimmte IP-Adresse zu, muss der IAM-Prinzipal die Anfrage signieren. Außerdem muss die Anfrage von einer erlaubten IP-Adresse kommen.
Die Richtlinie blockiert bestimmte HTTP-Aktionen
Vergewissere dich, dass die Domainzugriffsrichtlinie die von dir angeforderte HTTP-Methode zulässt. Sendest du beispielsweise eine POST-Anfrage, achte darauf, dass die Aktion es:ESHttpPost in die Richtlinie aufgenommen wird.
Fehler „Couldn't find any Elasticsearch data“
Dieser Fehler wird möglicherweise angezeigt, wenn du Indexmuster in einem Cluster mit differenzierter Zugriffskontrolle erstellst, nachdem du ein Upgrade auf die OpenSearch Service-Version 7.9 durchgeführt hast. Stelle sicher, dass die dem Benutzer zugewiesene Rolle über die Berechtigung indices:admin/resolve/index für die entsprechenden Indizes und Aliase verfügt. Weitere Informationen findest du unter Resolve Index API auf der OpenSearch-Website.
Fehler „401 unauthorized“
Um auf einen Cluster mit feingranularer Zugriffskontrolle zuzugreifen, musst du das Flag -u zur Authentifizierung verwenden. Beispielsweise schlägt der folgende Befehl mit dem Fehler „401 unauthorized“ fehl:
curl Domain_Endpoint
Um auf deinen Cluster zuzugreifen, führe den folgenden Befehl aus und verwende das Flag -u, um deinen Benutzernamen und dein Passwort anzugeben:
curl -u 'username:password' Domain_Endpoint
**Hinweis:**Ersetze den Benutzernamen durch deinen Benutzernamen, das Passwort durch dein Passwort und Domain_Endpoint durch deinen Domain-Endpunkt.
Du musst gültige Zeichen verwenden, wenn du Curl-Befehle ausführst. Wenn du die Zeichen $ oder ! in den primären Anmeldeinformationen mit dem Flag -u in curl-Befehlen verwendest, erhältst möglicherweise „401 Unauthorized“-Fehlermeldungen. Stelle außerdem sicher, dass du deine Anmeldeinformationen in einfache Anführungszeichen setzst.
Beispielbefehl:
curl -u 'username' Domain_Endpoint
**Hinweis:**Ersetze username durch deinen Benutzernamen und Domain_Endpoint durch deinen Domain-Endpunkt.
Fehler „Authentication finally failed“
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Du musst eine Anfrage senden, die dem Benutzertyp deiner Domain entspricht. Wenn du eine einfache Authentifizierungsanfrage (Benutzername/Passwort) sendest, aber den Hauptbenutzertyp der Domain als IAM-Prinzipal konfiguriert hast, erhältst du diesen Fehler. Bei einem Master-Benutzer muss dein Client eine mit AWS Signature Version 4 signierte Anfrage an die Domain senden.
Um die HTTP-Basisauthentifizierung zu verwenden, führe den folgenden update-domain-config-AWS-CLI-Befehl aus, um den Master-Benutzertyp in eine interne Benutzerdatenbank zu ändern:
aws opensearch update-domain-config --domain-name domain-name --advanced-security-options InternalUserDatabaseEnabled=true
Hinweis: Ersetze domain-name durch deinen Domainnamen.
Weitere Informationen
Indexverwaltung auf der OpenSearch-Website
- Themen
- Analytics
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor 10 Monaten