Como solucionar problemas de autenticação do Amazon Cognito com o OpenSearch Dashboards?
Última atualização: 10/03/2022
Estou tentando acessar OpenSearch Dashboards usando a autenticação do Amazon Cognito no meu cluster do Amazon OpenSearch Service. No entanto, recebo um erro ou encontro um problema de login. Por que isso está acontecendo?
Resolução
Eu inseri o URL do OpenSearch Dashboards, mas não consigo ver a página de login
Observação: o OpenSearch Dashboards é o sucessor do Kibana.
Você poderá 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 de sua máquina local acesse o Dashboards. Adicione a função autenticada do Amazon Cognito na política de acesso ao domínio, ou sua política de acesso se comportará como uma política normal.
- As solicitações estão assinadas por um usuário ou uma função permitida 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. Portanto, certifique-se de adicionar a função autenticada do Amazon Cognito à sua política de acesso ao domínio.
Observação: a autenticação do Amazon Cognito não é necessá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 os seguintes métodos:
- Verifique se o provedor de identidade está configurado corretamente.
- Verifique se o status da sua conta está definido como “CONFIRMED” (CONFIRMADO). Você pode visualizar o status da sua conta na página Usuários e grupos do console do Amazon Cognito. Para obter mais informações, consulte Cadastro e confirmação de contas de usuários.
- Verifique se você está usando o nome de usuário e a senha corretos.
Erro “Missing Role” (Função ausente)
Se o Fine-Grained Access Control (FGAC – Controle de acesso refinado) estiver habilitado no OpenSearch Dashboards no domínio do OpenSearch Services, talvez você receba o seguinte erro:
"Missing Role
No roles available for this user, please contact your system administrator."
Esse erro ocorre quando o usuário primário ou principal do IAM não corresponde à função do Amazon Cognito que está sendo assumida. A função que está sendo assumida (do grupo de identidades do Amazon Cognito) deve corresponder à função do IAM especificada para o usuário primário ou principal.
Para fazer com que a função do IAM do usuário primário ou principal corresponda à função do Amazon Cognito que está sendo assumida, execute as seguintes etapas:
1. Navegue até o console do OpenSearch Services.
2. Escolha seu domínio do OpenSearch Services.
3. Selecione Actions (Ações).
4. Escolha Modify authentication (Modificar autenticação).
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 o seguinte 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)
Essa mensagem de erro ocorre quando o Amazon Cognito não tem as permissões adequadas para assumir uma função do IAM em nome do usuário autenticado. Modifique a relação de confiança para a função do IAM para incluir o seguinte:
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"
}
}
}]
}
6. Escolha Update Trust Policy (Atualizar política de confiança).
Para obter mais informações sobre como atualizar a política de função do IAM em que o FGAC está habilitado, consulte o Tutorial: IAM primary user and Amazon Cognito (Tutorial: usuário principal do IAM e o Amazon Cognito).
Erro de incompatibilidade de redirecionamento
Você pode receber o seguinte erro ao tentar acessar o OpenSearch Dashboards no OpenSearch Services usando um URL do Dashboards ou um URL de endpoint personalizado:
"An error was encountered with the requested page"
Esse erro ocorre quando você não tem a configuração de URL de retorno de chamada em App client settings (Configurações de cliente da aplicação) do Amazon Cognito.
Para verificar se as configurações do cliente da aplicação estão configuradas corretamente, realize as seguintes etapas:
1. Navegue até 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. No lado esquerdo do console, escolha App client settings (Configurações do cliente da 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 está habilitado, o URL de retorno de chamada e o URL de saída serão assim:
<domain-custom-endpoint>/_dashboards/app/home
Erro de função de autorização do grupo de identidades do Amazon Cognito
Se você conseguir fazer login, mas não conseguir ver o OpenSearch Dashboards, talvez receba o seguinte erro:
User: arn:aws:sts:: 123456789012:assumed-role/Cognito_identitypoolAuth_Role/CognitoIdentityCredentials is not authorized to perform: es:ESHttpGet
Por padrão, a função do IAM autenticada para grupos de identidades não inclui os privilégios necessários para acessar o Dashboards. Você pode encontrar o nome da função autenticada e adicioná-la à política de acesso do OpenSearch Services executando o seguinte:
1. Navegue até 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 sua função autenticada à política de acesso ao domínio do OpenSearch Services.
Observação: é uma prática recomendada usar uma política baseada em recursos para usuários autenticados. A função autenticada 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
Este artigo ajudou?
Precisa de ajuda com faturamento ou suporte técnico?