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

6 minuto de leitura
0

Estou tentando acessar o OpenSearch Dashboards usando a autenticação do Amazon Cognito no cluster do Amazon OpenSearch Service. Mas recebo um erro ou encontro um problema de login.

Resolução

A página de login não aparece quando você insere o URL do OpenSearch Dasboards

Você pode ser redirecionado do URL do OpenSearch Dashboards para o painel do Dashboards por vários motivos:

  • Você usou uma política de acesso ao domínio baseada em IP que permite que o endereço IP público da máquina local acesse o Dashboards. Certifique-se de adicionar o perfil autenticado do Amazon Cognito à política de acesso ao domínio. Se você não adicionar o perfil autenticado, a política de acesso se comportará como uma política normal.
  • As solicitações são assinadas por um usuário ou um perfil permitido do AWS Identity Access Management (IAM). Ao acessar o URL do Dashboards, evite usar qualquer método de proxy do Dashboards para assinar suas solicitações.
  • Seu domínio do OpenSearch Service está em uma Virtual Private Cloud (VPC), e seu domínio contém uma política de acesso aberta. Nesse cenário, todos os usuários da VPC podem acessar o Dashboards e o domínio sem a autenticação do Amazon Cognito.

Observação: a autenticação do Amazon Cognito não é obrigatória. Para que a autenticação do Amazon Cognito seja necessária, altere a política de acesso ao domínio. Para obter mais informações, consulte Configurar políticas de acesso.

Se você é redirecionado para a página de login do OpenSearch Dashboards, mas não consegue fazer login, o Amazon Cognito está configurado incorretamente. Para resolver esse problema, considere estas abordagens:

Erro “Missing Role” (Perfil ausente)

Se o controle granular de acesso (FGAC) estiver ativado no OpenSearch Dashboards no domínio do OpenSearch Service, você poderá receber este erro:

"Missing Role
No roles available for this user, please contact your system administrator."

O erro anterior ocorre quando o usuário primário ou principal do IAM não corresponde ao perfil assumido do Amazon Cognito. O perfil que é assumido do grupo de identidades do Amazon Cognito deve corresponder ao perfil do IAM que você especificou para o usuário primário ou principal.

Para fazer com que o perfil do IAM do usuário primário ou principal corresponda ao perfil assumido do Amazon Cognito, realize as seguintes etapas:

  1. Abra o console do OpenSearch Service.

  2. No painel de navegação, em Managed clusters (Clusters gerenciados), escolha Domains (Domínios).

  3. Selecione Actions (Ações).

  4. Escolha Editar configuração de segurança.

  5. Em Fine-grained access control (Controle de acesso refinado), escolha Set IAM role (Definir função do IAM) como usuário primário ou principal. Certifique-se de especificar o ARN da função de autenticação do Amazon Cognito.

  6. (Opcional) Se você esqueceu o ARN do usuário primário ou principal (ou outros detalhes de configuração da função), modifique o usuário primário ou principal. Ao reconfigurar o usuário primário ou principal, você pode especificar um novo ARN do IAM.

  7. Escolha Submit (Enviar).

Erro de configuração inválida de grupo de identidades

Depois de autenticar com êxito seu login usando o Amazon Cognito, você ainda poderá receber este erro:

com.amazonaws.services.cognitoidentity.model.InvalidIdentityPoolConfigurationException:
Invalid identity pool configuration. Check assigned IAM roles for this pool.
(Service: AmazonCognitoIdentity; Status Code: 400; Error Code:
InvalidIdentityPoolConfigurationException; Request ID:
xxxxx-xxxx-xxxx-xxxx-xxxxx)

A mensagem de erro anterior ocorre quando o Amazon Cognito não tem as permissões adequadas para assumir um perfil do IAM em nome do usuário autenticado. Modifique a relação de confiança para o perfil do IAM:

  1. Abra o console do Amazon IAM.

  2. Escolha Roles (Funções).

  3. Selecione sua função do IAM.

  4. Escolha a guia Trust relationships (Relacionamentos de confiança).

  5. Escolha Edit trust relationship (Editar relacionamento de confiança). Certifique-se de que o grupo de identidades do Amazon Cognito possa assumir a função do IAM.

Por exemplo:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "cognito-identity.amazonaws.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "cognito-identity.amazonaws.com:aud": "identity-pool-id"
       },
       "ForAnyValue:StringLike": {
         "cognito-identity.amazonaws.com:amr": "authenticated"
       }
      }
    }
  ]
}
  1. Escolha Update Trust Policy (Atualizar política de confiança).

Para obter mais informações sobre como atualizar a política de perfil do IAM em que o controle granular de acesso (FGAC) está ativado, consulte o Tutorial: configurar um domínio com um usuário principal do IAM e a autenticação do Amazon Cognito.

Erro de discrepância de redirecionamento

Você pode receber o seguinte erro ao tentar acessar o OpenSearch Dashboards no OpenSearch Service usando um URL do Dashboards ou um URL de endpoint personalizado:

"An error was encountered with the requested page"

O erro anterior ocorre quando você não tem a configuração de URL de retorno de chamada nas configurações de cliente de aplicação do Amazon Cognito.

Para verificar se as configurações de cliente de aplicação estão definidas corretamente, realize estas etapas:

  1. Abra o console do Amazon Cognito.

  2. Escolha Manage User Pools (Gerenciar grupos de usuários).

  3. Selecione o grupo de usuários que você deseja editar.

  4. Do lado esquerdo do console, em App integration (Integração de aplicação), escolha o cliente de aplicação do OpenSearch em App client (Cliente de aplicação).

  5. Verifique se os URLs de retorno de chamada e os URLs de saída estão configurados corretamente. Por exemplo:

<dashboards-endpoint>/_dashboards/app/home

Para um domínio em que um endpoint personalizado esteja ativado, o URL de retorno de chamada e o URL de saída serão semelhantes a este:

<domain-custom-endpoint>/_dashboards/app/home

Erro de perfil de autorização do grupo de identidades do Amazon Cognito

Se você não conseguir fazer login, mas conseguir ver o OpenSearch Dashboards, poderá receber este erro:

User: arn:aws:sts:: 123456789012:assumed-role/Cognito_identitypoolAuth_Role/CognitoIdentityCredentials is not authorized to perform: es:ESHttpGet

Por padrão, o perfil do IAM autenticado para grupos de identidades não inclui os privilégios necessários para acessar o Dashboards. Realize as etapas a seguir para encontrar o nome do perfil autenticado e adicioná-lo à política de acesso do OpenSearch Service:

  1. Abra o console do Amazon Cognito.

  2. Escolha Manage Identity Pools (Gerenciar grupos de identidades).

  3. No canto superior direito do console, escolha Edit identity pool (Editar grupo de identidades).

  4. Adicione seu perfil autenticado à política de acesso ao domínio do OpenSearch Service.

Observação: é uma prática recomendada usar uma política baseada em recurso para usuários autenticados. O perfil autenticado controla especificamente a autenticação do Amazon Cognito para o Dashboards. Portanto, não remova outros recursos da política de acesso ao domínio.


Informações relacionadas

Problemas de configuração comuns

AWS OFICIAL
AWS OFICIALAtualizada há um ano