Comment résoudre les problèmes d'authentification Amazon Cognito avec Kibana ?

Dernière mise à jour : 27/01/2021

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

Résolution

J'ai saisi l'URL de Kibana, mais la page de connexion ne s'affiche pas.

Si vous avez saisi l'URL de Kibana et que vous êtes redirigé vers le tableau de bord Kibana, cela peut être dû à l'une des raisons suivantes :

Remarque : l'authentification Amazon Cognito n'est pas obligatoire. Si vous souhaitez que l'authentification Amazon Cognito soit obligatoire, modifiez votre stratégie d'accès au domaine. Pour en savoir plus, consultez la section Configuration des stratégies d'accès.

Je suis redirigé vers la page de connexion de Kibana, mais je ne peux pas me connecter.

Si vous êtes redirigé vers la page de connexion de Kibana et que vous ne parvenez pas à vous connecter, cela signifie qu'Amazon Cognito n'est pas configuré correctement. Pour résoudre ce problème, envisagez les approches suivantes :

Erreur « Missing Role » (Rôle manquant)

Si vous avez activé le contrôle précis des accès (FGAC) sur Kibana dans votre domaine Amazon ES, vous pouvez recevoir l'erreur suivante :

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

Cette erreur se produit lorsqu'il existe une incohérence entre votre utilisateur principal ou lead IAM 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 Amazon ES.

2.    Sélectionnez votre domaine Amazon ES.

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 lead (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 précis des accès (FGAC) activé, consultez le didacticiel : utilisateur principal IAM et Amazon Cognito.

Erreur d'incohérence de redirection

L'erreur suivante peut s'afficher lorsque vous essayez d'accéder à Kibana sur Amazon ES à l'aide d'une URL de Kibana ou d'une URL de point de terminaison personnalisée :

"An error was encountered with the requested page"

Cette erreur se produit lorsque vous n'avez pas la configuration d'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 :

<Kibana endpoint>/app/kibana

Pour un domaine Amazon ES où un point de terminaison personnalisé est activé, votre URL de rappel et votre URL de déconnexion ressembleront à ce qui suit :

<Kibana custom endpoint URL>/app/kibana, <Kibana endpoint>/app/kibana

Erreur de rôle d'autorisation de groupe d'identités Amazon Cognito

Si vous parvenez à vous connecter mais que vous ne voyez pas Kibana, l'erreur suivante 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é pour les groupes d'identités n'inclut pas les privilèges requis pour accéder à Kibana. Vous pouvez rechercher le nom du rôle authentifié et l'ajouter à la stratégie d'accès Amazon ES en procédant comme suit :

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é à la stratégie d'accès au domaine Amazon ES.

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 Kibana. 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 ?