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 :
- Vous utilisez une stratégie d'accès au domaine basée sur l'adresse IP qui autorise l'adresse IP publique de votre machine à accéder à Kibana. Assurez-vous d'ajouter le rôle authentifié Amazon Cognito dans la stratégie d'accès au domaine. Sinon, votre stratégie d'accès se comportera comme une stratégie normale.
- Les demandes sont signées par un utilisateur ou un rôle AWS Identity Access Management (IAM) autorisé. Lorsque vous accédez à l'URL de Kibana, évitez d'utiliser des méthodes de proxy Kibana pour signer vos demandes.
- Votre domaine Amazon ES se trouve dans un Virtual Private Cloud (VPC) et votre domaine est soumis à une stratégie d'accès ouverte. Dans ce scénario, tous les utilisateurs VPC peuvent accéder à Kibana et au domaine sans authentification Amazon Cognito. Par conséquent, assurez-vous d'ajouter le rôle authentifié Amazon Cognito dans votre stratégie d'accès au domaine.
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 :
- Vérifiez que le fournisseur d'identité est correctement configuré.
- Vérifiez que votre compte a le statut « CONFIRMED » (CONFIRMÉ). Vous pouvez voir le statut de votre compte sur la page Utilisateurs et groupes de la console Amazon Cognito. Pour en savoir plus, consultez la section Inscription et confirmation des comptes d'utilisateur.
- Vérifiez que vous utilisez le nom d'utilisateur et le mot de passe corrects.
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.
Informations connexes
Cet article vous a-t-il été utile ?
Besoin d'aide pour une question technique ou de facturation ?