Como resolvo o cabeçalho de host que está ausente ou não é válido no Amazon OpenSearch Service?
Estou recebendo um erro “Not authorized” (Não autorizado) devido a um cabeçalho de host inválido ou ausente no Amazon OpenSearch Service. Como resolver isso?
Breve descrição
A métrica InvalidHostHeaderRequests no Amazon CloudWatch é registrada quando o valor do cabeçalho de host de uma solicitação é diferente do Fully Qualified Domain Name (FQDN – Nome de domínio totalmente qualificado).
Para as seguintes condições, o Amazon OpenSearch Service rejeita as solicitações que não têm cabeçalhos válidos:
- O domínio solicitado está acessível ao público.
- O domínio solicitado utiliza uma política de acesso aberta do AWS Identity and Access Management (IAM) em vez de uma política baseada em recursos (como uma política baseada em IP).
Para evitar que o contador de métricas InvalidHostHeaderRequests seja acionado, considere as seguintes abordagens:
- Use um cabeçalho de host válido (o cabeçalho de host deve corresponder ao FQDN do seu domínio do OpenSearch Service).
- Inicie seu domínio do OpenSearch Service usando uma nuvem privada virtual (VPC).
- Use uma política baseada em recursos (que restrinja endereços IP ou especifique funções do IAM).
- Ative o Fine-Grained Access Control (FGAC – Controle de acesso refinado).
Caso contrário, você receberá 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 aberta de acesso:
{ "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 o 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 a 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 “User is not authorized to perform this action” (O usuário não está autorizado a executar esta ação), considere as seguintes abordagens:
- Defina o valor apropriado para o cabeçalho de host.
- Inicie seu domínio do OpenSearch Service usando uma VPC.
- Use uma política de acesso baseada em IP em vez de uma política aberta de acesso.
- Use o FGAC.
Dica 1: defina o valor apropriado para o cabeçalho de host
O comando de exemplo a seguir especifica o nome de domínio como o valor do cabeçalho de host:
$ curl -H 'Host: os-endpoint' os-endpoint
Aqui está um exemplo que usa um URL de endpoint da AWS:
curl -H 'Host: xxxxxx..os.amazonaws.com' https://xxxxxx..os.amazonaws.com
Dica 2: inicie seu domínio do OpenSearch Service usando uma VPC
Usar uma VPC para iniciar o domínio do OpenSearch Service fornece uma camada adicional de segurança. Uma VPC também permite que você gerencie o acesso ao domínio por meio de grupos de segurança. Portanto, é uma prática recomendada evitar o uso de um endpoint público para iniciar seu domínio. Embora sua solicitação chegue ao domínio do OpenSearch Service, você pode receber um erro Não autorizado ao acessar o endpoint público em um navegador da Web. Para obter mais informações, consulte Sobre políticas de acesso em domínios da VPC.
Quando você cria 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 aberta, use uma política de acesso baseada em recursos que especifique perfis do IAM ou restrinja solicitações a um endereço IP ou intervalo CIDR.
Por exemplo, a seguinte política baseada em IP 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: se o Fine-Grained Access Control (FGAC – Controle de acesso refinado).
Junto com as políticas de acesso baseadas em recursos, você pode usar o FGAC para gerenciar o acesso aos dados do seu domínio do OpenSearch Service. O controle de acesso refinado oferece os seguintes benefícios:
- Controle de acesso baseado em função
- Segurança no nível de índice, documento e campo
- Multilocação do OpenSearch Dashboards
- Autenticação básica HTTP para OpenSearch Service e OpenSearch Dashboards
Como o FGAC é baseado em funções, as credenciais do 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 obter 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 solucionar problemas de autenticação do Amazon Cognito com o OpenSearch Dashboards?
Gerenciamento de identidade e acesso no Amazon OpenSearch Service

Conteúdo relevante
- AWS OFICIALAtualizada há 6 meses
- AWS OFICIALAtualizada há 3 meses
- AWS OFICIALAtualizada há 2 anos