Como resolvo o cabeçalho de host que está ausente ou não é válido no Amazon OpenSearch Service?

5 minuto de leitura
0

Estou recebendo um erro não autorizado devido a um cabeçalho de host inválido ou ausente no Amazon OpenSearch Service.

Breve descrição

A métrica InvalidHostHeaderRequests no Amazon CloudWatch é registrada quando o valor do cabeçalho do host de uma solicitação é diferente do nome de domínio totalmente qualificado (FQDN).

Para as seguintes condições, o Amazon OpenSearch Service rejeita as solicitações sem cabeçalhos válidos:

  • O domínio solicitado está acessível ao público.
  • O domínio solicitado usa uma política de acesso aberta ao AWS Identity and Access Management (IAM), em vez de uma política baseada em recurso (como uma política baseada em IP).

Para evitar que o contador da métrica InvalidHostHeaderRequests seja acionado, considere as seguintes abordagens:

Caso contrário, você recebe o seguinte erro:

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

Resolução

Exemplo

Aqui está um exemplo de uma política de acesso aberto:

{
	"Version": "2012-10-17",
	"Statement": [{
		"Effect": "Allow",
		"Principal": {
			"AWS": "*"
		},
		"Action": "es:*",
		"Resource": "arn:aws:es:Region:account-id:domain/os-domain-name/*"
	}]
}

O comando a seguir usa domain.com como valor do cabeçalho de host, que não é um cabeçalho válido para o domínio os-domain-name. Quando essa solicitação é enviada para um domínio acessível ao público com uma política de acesso aberto, a métrica InvalidHostHeaderRequests é registrada e a solicitação é rejeitada.

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

Para resolver o erro “O usuário não está autorizado a realizar esta ação”, considere as seguintes abordagens:

  • Defina o valor apropriado para o cabeçalho de host.
  • Inicie o domínio do OpenSearch Service usando uma VPC.
  • Use uma política de acesso baseada em IP em vez de uma política de acesso aberto.
  • Use controle de acesso refinado (FGAC).

Dica 1: Defina o valor apropriado para o cabeçalho de host

O exemplo de comando a seguir especifica o nome do domínio como o valor do cabeçalho de host:

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

Aqui está um exemplo que usa uma URL de endpoint da AWS:

curl -H 'Host: xxxxxx..os.amazonaws.com' https://xxxxxx..os.amazonaws.com

Dica 2: Inicie o domínio do OpenSearch Service usando uma VPC

Usar uma VPC para iniciar seu domínio do OpenSearch Service fornece uma camada adicional de segurança. Uma VPC também permite que gerenciar o acesso ao domínio por meio de grupos de segurança. Portanto, evite o uso de um endpoint público para iniciar o domínio. Embora a solicitação chegue ao domínio do OpenSearch Service, você pode receber um erro de Não autorizado ao acessar o endpoint público em um navegador da web. Para mais informações, consulte Sobre políticas de acesso em domínios VPC.

Ao criar um domínio com acesso VPC, o endpoint fica assim (semelhante a um endpoint público):

`https://vpc-domain-name-identifier.region.os.amazonaws.com`

Dica 3: Use uma política baseada em recursos

Em vez de uma política de acesso aberto, use uma política de acesso baseada em recursos que especifique os perfis do IAM ou restrinja as solicitações a um endereço IP ou intervalo CIDR.

Por exemplo, a política baseada em IP a seguir permite solicitações no intervalo CIDR 11.11.11.11/32. Solicitações para domínios nesse intervalo são permitidas, e a métrica InvalidHostHeaderRequests não é registrada, independentemente do valor do cabeçalho de host.

{
	"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"
				]
			}
		}
	}]
}

Dica 4: Use controle de acesso refinado (FGAC)

Junto com as políticas de acesso baseadas em recursos, você pode usar o FGAC para gerenciar o acesso de dados ao seu domínio do OpenSearch Service. O controle de acesso refinado oferece os seguintes benefícios:

  • Controle de acesso baseado em perfis
  • Segurança no nível do índice, do documento e do campo
  • OpenSearch Dashboards multilocação
  • Autenticação básica HTTP para OpenSearch Service e OpenSearch Dashboards

Como o FGAC é baseado em perfis, as credenciais de usuário são avaliadas ao autenticar uma solicitação. Se o controle de acesso refinado autenticar o usuário, a métrica InvalidHostHeaderRequests não será registrada. Para mais informações sobre o FGAC, consulte O panorama: controle de acesso refinado e segurança do OpenSearch Service.

Informações relacionadas

Criação e gerenciamento de domínios do Amazon OpenSearch Service

Como soluciono problemas de autenticação do Amazon Cognito com OpenSearch Dashboards?

Gerenciamento de identidade e acesso no Amazon OpenSearch Service

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos