Comment puis-je résoudre les problèmes d'authentification d'Amazon Cognito avec les tableaux de bord OpenSearch ?

Date de la dernière mise à jour : 20/10/2021

J'essaie d'accéder aux tableaux de bord OpenSearch à l'aide de l'authentification Amazon Cognito sur mon cluster Amazon OpenSearch Service (successeur d'Amazon Elasticsearch Service). Cependant, je reçois une erreur ou rencontre un problème de connexion. Pourquoi ?

Résolution

J'ai saisi l'URL des tableaux de bord OpenSearch, mais ne vois pas la page de connexion.

Remarque : les tableaux de bord OpenSearch succèdent à Kibana.

Vous pouvez être redirigé depuis l'URL du tableau de bord OpenSearch vers le tableau de bord Dashboards pour plusieurs raisons :

Remarque : l'authentification Amazon Cognito n'est pas obligatoire. Pour exiger l'authentification Amazon Cognito, modifiez votre stratégie d’accès au domaine. Pour en savoir plus, veuillez consulter la rubrique Configuration des stratégies d'accès.

Je suis redirigé vers la page de connexion des tableaux de bord OpenSearchs, mais n'arrive pas à me connecter

Si vous êtes redirigé vers la page de connexion des tableaux de bord OpenSearch mais que vous ne parvenez pas à vous connecter, cela signifie qu'Amazon Cognito n'est pas correctement configuré. Les démarches suivantes vous permettent de résoudre ce problème :

Erreur « Rôle manquant »

Si le contrôle d'accès sélectif (FGAC) est activé sur OpenSearch Dashboards dans votre domaine OpenSearch Services, vous pouvez recevoir le message d'erreur suivant :

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

Ce message s'affiche lorsqu'il existe une incohérence entre votre utilisateur IAM primaire ou principal et le rôle Amazon Cognito assumé. Le rôle qui est assumé (à partir de votre groupe d'identités Amazon Cognito) doit correspondre au rôle IAM que vous avez spécifié pour l'utilisateur principal ou lead.

Pour que le rôle IAM de l'utilisateur principal ou lead corresponde au rôle Amazon Cognito assumé, effectuez les opérations suivantes :

1.    Accédez à la console OpenSearch Services.

2.    Choisissez votre domaine OpenSearch Services.

3.    Sélectionnez Actions.

4.    Sélectionnez Modify authentication (Modifier l'authentification).

5.    Sous Fine-grained access control (Contrôle précis des accès), sélectionnez Set IAM role (Définir le rôle IAM) en tant qu'utilisateur principal ou lead. Assurez-vous de spécifier l'ARN du rôle d'authentification Amazon Cognito.

6.    (Facultatif) Si vous avez oublié l'ARN de l'utilisateur principal ou primaire (ou d'autres informations de configuration du rôle), modifiez l'utilisateur principal ou lead. Lorsque vous reconfigurez votre utilisateur principal ou lead, vous pouvez spécifier un nouvel ARN IAM.

7.    Sélectionnez Submit (Soumettre).

Erreur d'invalidité de la configuration du groupe d'identités

Une fois votre connexion authentifiée avec succès à l'aide d'Amazon Cognito, vous pouvez encore recevoir l'erreur suivante :

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)

Ce message d'erreur apparaît lorsqu'Amazon Cognito ne dispose pas des autorisations nécessaires pour assumer un rôle IAM au nom de l'utilisateur authentifié. Modifiez la relation d'approbation pour le rôle IAM afin d'inclure les éléments suivants :

1.    Ouvrez la console Amazon IAM.

2.    Sélectionnez Rôles.

3.    Sélectionnez votre rôle IAM.

4.    Choisissez l’onglet Trust relationships (Relations d'approbation).

5.    Sélectionnez Edit trust relationship (Modifier la relation d'approbation). Assurez-vous que votre groupe d'identités Amazon Cognito peut assumer le rôle IAM.

Par exemple :

{
  "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.    Sélectionnez Update Trust Policy (Mettre à jour la stratégie de confiance).

Pour en savoir plus sur la mise à jour de la stratégie de rôle IAM avec un contrôle détaillé des accès (FGAC) activé, consultez le didacticiel : utilisateur principal IAM et Amazon Cognito.

Erreur d'incohérence de redirection

Le message d'erreur suivant peut s'afficher lorsque vous tentez d'accéder aux tableaux de bord OpenSearch sur OpenSearch Services à l'aide d'une URL de Dashboards ou d'une URL de point de terminaison personnalisée :

"An error was encountered with the requested page"

Ce message s'affiche lorsque vous n'avez pas configuré l'URL de rappel dans les paramètres du client d'application d'Amazon Cognito.

Pour vérifier que vos paramètres du client d'application sont correctement configurés, effectuez les étapes suivantes :

1.    Accédez à la console Amazon Cognito.

2.    Sélectionnez Manage User Pools (Gérer les groupes d'utilisateurs).

3.    Sélectionnez le groupe d'utilisateurs que vous souhaitez modifier.

4.    Sur le côté gauche de la console, sélectionnez App client settings (Paramètres du client d'application).

5.    Vérifiez que la ou les URL de rappel et la ou les URL de déconnexion sont correctement configurées. Par exemple :

<dashboards-endpoint>/_dashboards/app/home

Pour un domaine où un point de terminaison personnalisé est activé, votre URL de rappel et votre URL de déconnexion se présenteront comme suit :

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

Rôle d'autorisation de groupe d'identités Amazon Cognito erroné

Si vous parvenez à vous connecter mais qu'OpenSearch Dashboards ne s'affiche pas, le message d'erreur suivant peut s'afficher :

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

Par défaut, le rôle IAM authentifié des groupes d'identités n'inclut pas les privilèges requis pour accéder à Dashboards. Vous pouvez trouver le nom du rôle authentifié et l'ajouter à la stratégie d'accès OpenSearch Services en effectuant les opérations suivantes :

1.    Accédez à la console Amazon Cognito.

2.    Sélectionnez Manage Identity Pools (Gérer les groupes d'identités).

3.    Dans le coin supérieur droit de la console, Sélectionnez Edit identity pool (Modifier le groupe d'identités).

4.    Ajoutez votre rôle authentifié à votre stratégie d'accès au domaine OpenSearch Services.

Remarque : une bonne pratique consiste à utiliser une stratégie basée sur les ressources pour les utilisateurs authentifiés. Le rôle authentifié contrôle spécifiquement l'authentification Amazon Cognito pour Dashboards. Par conséquent, ne supprimez pas d'autres ressources de la stratégie d'accès au domaine.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?