Wie behebe ich einen Hostheader, der im Amazon OpenSearch Service fehlt oder nicht gültig ist?
Ich erhalte die Fehlermeldung Nicht autorisiert, weil ein Host-Header in Amazon OpenSearch Service ungültig ist oder fehlt. Wie kann ich dies beheben?
Kurzbeschreibung
Die InvalidHostHeaderRequests-Metrik in Amazon CloudWatch wird aufgezeichnet, wenn sich der Hostheader-Wert einer Anforderung vom vollständig qualifizierten Domänennamen (FQDN) unterscheidet.
Unter den folgenden Bedingungen lehnt Amazon OpenSearch Service die Anfragen ab, bei denen gültige Header fehlen:
- Die angeforderte Domäne ist öffentlich zugänglich.
- Die angeforderte Domäne verwendet eine offene Zugriffsrichtlinie für AWS Identity and Access Management (IAM) und nicht eine ressourcenbasierte Richtlinie (z. B. eine IP-basierte Richtlinie).
Um zu verhindern, dass der Metrikzähler InvalidHostHeaderRequests ausgelöst wird, sollten Sie die folgenden Ansätze berücksichtigen:
- Verwenden Sie einen gültigen Hostheader (der Hostheader muss mit dem FQDN Ihrer OpenSearch-Service-Domäne übereinstimmen).
- Starten Sie Ihre OpenSearch-Service-Domäne mithilfe einer Virtual Private Cloud (VPC).
- Verwenden Sie eine ressourcenbasierte Richtlinie (die IP-Adressen einschränkt oder IAM-Rollen angibt).
- Aktivieren Sie eine differenzierte Zugriffskontrolle (FGAC).
Andernfalls wird die folgende Fehlermeldung angezeigt:
$ curl -H 'Host: domain.com' domain-endpoint-name User is not authorized to perform this action
Auflösung
Beispiel
Hier ist ein Beispiel für eine offene Zugriffsrichtlinie:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:*", "Resource": "arn:aws:es:Region:account-id:domain/os-domain-name/*" }] }
Der folgende Befehl verwendet domain.com als Hostheader-Wert, der kein gültiger Header für dieos-domain-name-Domäne ist. Wenn diese Anfrage an eine öffentlich zugängliche Domäne mit einer offenen Zugriffsrichtlinie gesendet wird, dann wird die Metrik InvalidHostHeaderRequests aufgezeichnet und die Anforderung wird abgelehnt.
$ curl -H 'Host: domain.com' os-domain-name User is not authorized to perform this action
Beachten Sie die folgenden Ansätze, um den Fehler „Benutzer ist nicht berechtigt, diese Aktion auszuführen“ zu beheben:
- Stellen Sie den entsprechenden Wert für den Hostheader ein.
- Starten Sie Ihre OpenSearch-Service-Domäne mithilfe einer VPC.
- Verwenden Sie eine IP-basierte Zugriffsrichtlinie anstelle einer offenen Zugriffsrichtlinie.
- Verwenden Sie Differenzierte Zugriffskontrolle (FGAC).
Tipp 1: Legen Sie den entsprechenden Wert für den Hostheader fest.
Der folgende Beispielbefehl gibt den Domänennamen als Hostheader-Wert an:
$ curl -H 'Host: os-endpoint' os-endpoint
Hier ist ein Beispiel, das eine AWS-Endpunkt-URL verwendet:
curl -H 'Host: xxxxxx..os.amazonaws.com' https://xxxxxx..os.amazonaws.com
Tipp 2: Starten Sie Ihre OpenSearch-Service-Domäne mithilfe einer VPC.
Die Verwendung einer VPC zum Starten Ihrer OpenSearch-Service-Domäne bietet eine zusätzliche Sicherheitsebene. Mit einer VPC können Sie auch den Zugriff auf die Domäne über Sicherheitsgruppen verwalten. Daher ist es eine bewährte Methode, die Verwendung eines öffentlichen Endpunkts zum Starten Ihrer Domäne zu vermeiden. Obwohl Ihre Anfrage die OpenSearch-Service-Domäne erreicht, erhalten Sie möglicherweise einen Nicht-autorisiert-Fehler, wenn Sie in einem Web-Browser auf den öffentlichen Endpunkt zugreifen. Weitere Informationen finden Sie unter Informationen zu Zugriffsrichtlinien für VPC-Domänen.
Wenn Sie eine Domäne mit VPC-Zugriff erstellen, sieht der Endpunkt so aus (ähnlich einem öffentlichen Endpunkt):
https://vpc-domain-name-identifier.region.os.amazonaws.com
Tipp 3: Verwenden Sie eine ressourcenbasierte Richtlinie
Verwenden Sie anstelle einer offenen Zugriffsrichtlinie eine ressourcenbasierte Zugriffsrichtlinie, die IAM-Rollen angibt oder Anfragen auf eine IP-Adresse oder einen CIDR-Bereich beschränkt.
Beispielsweise erlaubt die folgende IP-basierte Richtlinie Anforderungen im CIDR-Bereich 11.11.11.11/32. Anfragen an Domänen in diesem Bereich werden erlaubt, und die Metrik InvalidHostHeaderRequests wird unabhängig vom Hostheader-Wert nicht aufgezeichnet.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:*", "Resource": "arn:aws:es:region:account-id:domain/os-domain-name/*", "Condition": { "IpAddress": { "aws:SourceIp": [ "11.11.11.11/32" ] } } }] }
Tipp 4: Verwenden Sie eine differenzierte Zugriffskontrolle (FGAC)
Zusammen mit ressourcenbasierten Zugriffsrichtlinien können Sie FGAC verwenden, um den Datenzugriff auf Ihre OpenSearch-Service-Domäne zu verwalten. Differenzierte Zutrittskontrolle bietet folgende Vorteile:
- Rollenbasierte Zugriffskontrolle
- Sicherheit auf Index-, Dokument- und Feldebene
- OpenSearch-Dashboards-Multi-Tenancy
- HTTP-Basic-Authentifizierung für OpenSearch Service und OpenSearch Dashboards
Da FGAC auf Rollen basiert, werden Benutzer-Anmeldeinformationen bei der Authentifizierung einer Anforderung geprüft. Wenn eine differenzierte Zugriffskontrolle den Benutzer authentifiziert, wird die Metrik InvalidHostHeaderRequests nicht aufgezeichnet. Weitere Informationen zu FGAC finden Sie unter Das Gesamtbild: Differenzierte Zugriffskontrolle und OpenSearch-Service-Sicherheit.
Verwandte Informationen
Erstellen und Verwalten von Amazon-OpenSearch-Service-Domänen
Wie behebe ich Probleme bei der Amazon-Cognito-Authentifizierung mit OpenSearch Dashboards?

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren