Wie löse ich einen Host-Header auf, der in Amazon OpenSearch Service fehlt oder nicht gültig ist?

Lesedauer: 4 Minute
0

Ich erhalte die Fehlermeldung Nicht autorisiert, weil ein Host-Header in Amazon OpenSearch Service ungültig ist oder fehlt.

Kurzbeschreibung

Die Metrik InvalidHostHeaderRequests in Amazon CloudWatch wird aufgezeichnet, wenn sich der Host-Header-Wert einer Anfrage vom vollständig qualifizierten Domainnamen (FQDN) unterscheidet.

Unter den folgenden Bedingungen lehnt Amazon OpenSearch Service Anfragen ab, denen gültige Header fehlen:

  • Die angeforderte Domain ist öffentlich zugänglich.
  • Die angeforderte Domain verwendet eine offene AWS Identity and Access Management (IAM)-Zugriffsrichtlinie und keine 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:

Wenn Sie die folgende Fehlermeldung erhalten:

$ curl -H 'Host: domain.com' domain-endpoint-name
User is not authorized to perform this action

Behebung

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 Host-Header-Wert, der kein gültiger Header für die Domain os-domain-name ist. Wenn diese Anfrage an eine öffentlich zugängliche Domain mit einer offenen Zugriffsrichtlinie gesendet wird, wird die Metrik InvalidHostHeaderRequests aufgezeichnet und die Anfrage 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 Host-Header ein.
  • Starten Sie Ihre OpenSearch-Service-Domain mithilfe einer VPC.
  • Verwenden Sie eine IP-basierte Zugriffsrichtlinie anstelle einer offenen Zugriffsrichtlinie.
  • Verwenden Sie eine differenzierte Zugriffskontrolle (FGAC).

Tipp 1: Stellen Sie den entsprechenden Wert für den Hostheader ein

Der folgende Beispielbefehl gibt den Domainnamen als Host-Header-Wert an:

$ curl -H 'Host: os-endpoint' os-endpoint

Hier finden Sie 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-Domain bietet eine zusätzliche Sicherheitsebene. Eine VPC ermöglicht es Ihnen zudem, den Zugriff auf die Domain über Sicherheitsgruppen zu verwalten. Daher ist es eine bewährte Methode, die Verwendung eines öffentlichen Endpunkts für den Start Ihrer Domain zu vermeiden. Ihre Anfrage erreicht zwar die OpenSearch-Service-Domain, Sie erhalten jedoch möglicherweise die Fehlermeldung Nicht autorisiert, wenn Sie in einem Webbrowser auf den öffentlichen Endpunkt zugreifen. Weitere Informationen finden Sie unter Informationen zu Zugriffsrichtlinien für VPC-Domains.

Wenn Sie eine Domain mit VPC-Zugriff erstellen, sieht der Endpunkt wie folgt 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 öffentlichen Zugriffsrichtlinie eine ressourcenbasierte Zugriffsrichtlinie, die IAM-Rollen spezifiziert oder Anfragen auf eine IP-Adresse oder einen CIDR-Bereich beschränkt.

Die folgende IP-basierte Richtlinie erlaubt beispielsweise Anfragen im CIDR-Bereich 11.11.11.11/32. Anfragen an Domains in diesem Bereich sind zulässig und die Metrik InvalidHostHeaderRequests wird unabhängig vom Host-Header-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)

Neben ressourcenbasierten Zugriffsrichtlinien können Sie eine FGAC verwenden, um den Datenzugriff auf Ihre OpenSearch-Service-Domain zu verwalten. Eine differenzierte Zugriffskontrolle bietet die folgenden Vorteile:

  • Rollenbasierte Zugriffskontrolle
  • Sicherheit auf Index-, Dokument- und Feldebene
  • OpenSearch Dashboards-Mehrmandantenfähigkeit
  • HTTP-Basisauthentifizierung für OpenSearch Service und OpenSearch Dashboards

Da die FGAC auf Rollen basiert, werden die Anmeldeinformationen der Benutzer bei der Authentifizierung einer Anfrage ausgewertet. Wenn eine differenzierte Zugriffskontrolle den Benutzer authentifiziert, wird die Metrik InvalidHostHeaderRequests nicht aufgezeichnet. Weitere Informationen zur FGAC finden Sie unter Das Gesamtbild: Differenzierte Zugriffskontrolle und OpenSearch-Service-Sicherheit.

Zugehörige Informationen

Erstellen und Verwalten von Amazon-OpenSearch-Service-Domains

Wie behebe ich Probleme bei der Amazon-Cognito-Authentifizierung mit OpenSearch Dashboards?

Identity and Access Management in Amazon OpenSearch Service

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren