Comment résoudre les erreurs de contrôle d'accès affiné dans mon cluster Amazon Elasticsearch ?

Date de la dernière mise à jour : 05/03/2021

Je rencontre des erreurs de contrôle d'accès affiné dans mon cluster Amazon Elasticsearch (Amazon ES). Comment puis-je dépanner et résoudre les erreurs de contrôle d'accès ?

Brève description

Vous pouvez rencontrer l'une des erreurs suivantes de contrôle d'accès affiné dans votre cluster Amazon ES :

  • Erreurs 403 "security_exception","reason":"no permissions"
  • "User: anonymous is not authorized to perform: iam:PassRole" (« Utilisateur : anonyme n'est pas autorisé à exécuter : iam:PassRole »)
  • "Couldn’t find any Elasticsearch data" (« Données Elasticsearch introuvables »)
  • Erreurs 401 : non autorisé

Outre la résolution de ces erreurs, cet article vous explique comment effectuer les tâches suivantes à l'aide d'Amazon ES :

  • Intégrer d'autres services AWS à Amazon ES lorsque le contrôle d'accès affiné au niveau du champ est activé
  • Autoriser les accès anonymes à l'aide du contrôle d'accès affiné
  • Permettre un accès affiné à des index, tableaux de bord et visualisations spécifiques en fonction de la location de l'utilisateur
  • Utiliser un contrôle d'accès affiné au niveau du champ

Solution

Erreurs 403 "security_exception","reason":"no permissions"

Pour résoudre cette erreur, vérifiez d'abord si l'utilisateur ou le rôle backend de votre cluster Amazon ES dispose des autorisations requises. Ensuite, mappez l'utilisateur ou le rôle backend à un rôle.

"User: anonymous is not authorized to perform: iam:PassRole" (« Utilisateur : anonyme n'est pas autorisé à exécuter : iam:PassRole »)

Cette erreur peut s'afficher lorsque vous essayez d'enregistrer un instantané manuel. Outre les autorisations normales requises pour le rôle Amazon Identity and Access Management (IAM) que vous avez utilisé pour enregistrer l'instantané manuel, vous devez mapper le rôle manage_snapshots au rôle IAM. Ensuite, utilisez ce rôle IAM pour envoyer une requête signée au domaine.

"Couldn’t find any Elasticsearch data" (« Données Elasticsearch introuvables »)

Cette erreur peut s'afficher lorsque vous essayez de créer des modèles d'index après la mise à niveau vers Amazon ES 7.9. Dans Amazon ES 7.9, vous devez utiliser l'API /_resolve pour ajouter « indices:admin/resolve/index » à tous les indices et alias lorsque vous créez un modèle d'index dans le cluster de contrôle d'accès affiné. Cette autorisation étant manquante, Amazon ES envoie un code d'état d'erreur 403. Celui-ci est à son tour mappé à un code d'état d'erreur 500 de Kibana. De ce fait, les index ne sont pas répertoriés.

Erreurs 401 : non autorisé

Une erreur 401 peut s'afficher : non autorisé lorsque vous utilisez les caractères « $ » ou « ! » dans les informations d'identification principales avec curl -u “user:password” <ES-ENDPOINT>. Veillez à mettre vos informations d'identification entre guillemets simples, comme dans l'exemple suivant :

curl -u 'user:password' <ES-ENDPOINT>

Intégrer d'autres services AWS à Amazon ES lorsque le contrôle d'accès affiné au niveau du champ est activé

Pour intégrer un autre service AWS avec Amazon ES lorsque le contrôle d'accès affiné par champ est activé, vous devez accorder les autorisations appropriées aux rôles IAM pour ces services. Pour plus d'informations, consultez la documentation suivante sur l'utilisation des Intégrations avec contrôle d'accès affiné.

Autoriser les accès anonymes à l'aide du contrôle d'accès affiné

En raison de la nature gérée d'Amazon ES, l'accès anonyme n'est actuellement pas pris en charge.

Fournir un accès affiné à des index, tableaux de bord et visualisations spécifiques en fonction de la location de l'utilisateur

Pour fournir un accès affiné à des index, tableaux de bord ou visualisations spécifiques, vous devez mapper l'utilisateur à un rôle disposant d'autorisations sur l'index Kibana du locataire :

.kibana_<hash>_<tenant_name>

Pour plus d'informations, consultez Gestion des index Kibana.

Utiliser un contrôle d'accès affiné au niveau du champ

Pour utiliser un contrôle d'accès affiné au niveau du champ, configurez un rôle avec la sécurité requise au niveau du champ. Mappez ensuite l'utilisateur au rôle que vous avez créé.


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


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