Tous les produits
Search
Centre de documentation

Elasticsearch:Gérer les autorisations des utilisateurs avec les rôles X-Pack

Dernière mise à jour :Sep 14, 2026

Elasticsearch X-Pack propose un contrôle d'accès basé sur les rôles (RBAC) qui vous permet d'attribuer des privilèges spécifiques à des rôles, puis d'assigner ces rôles aux utilisateurs. Alibaba Cloud Elasticsearch inclut plusieurs rôles intégrés, mais vous pouvez également créer des rôles personnalisés pour un contrôle plus granulaire sur les clusters, les index et les champs.

Contexte

Procédure

Remarque

Ces instructions s'appliquent aux versions Elasticsearch 6.7 et 7.x. Les étapes peuvent varier selon les autres versions. Consultez la console pour obtenir la procédure la plus précise.

  1. Créez un rôle.

    1. Connectez-vous à la console Kibana.

      Pour plus d'informations, consultez la rubrique Connexion à la console Kibana.

    2. Accédez à la page de gestion.

      • V6.7 : Dans le volet de navigation de gauche, cliquez sur ManagementManagement.

      • V7.x : Dans le coin supérieur gauche de la page, cliquez sur l'icône 展开图标展开图标 , puis sélectionnez ManagementManagement > Stack Management.

    3. Dans la section SecuritySecurity, cliquez sur RolesRoles.

    4. Cliquez sur Create role et configurez les paramètres.

      Paramètre

      Description

      Role Name

      Nom du rôle.

      Privilèges de cluster

      Définit les privilèges pour les opérations de cluster, telles que l'affichage de l'état et des paramètres du cluster, ou la création d'un snapshot. Pour plus d'informations, consultez Privilèges de cluster.

      Privilèges Run As

      Facultatif. Utilisateur qui assume ce rôle. Si cette information n'est pas spécifiée ici, vous pourrez assigner le rôle lors de la création de l'utilisateur. Pour plus de détails, voir Créer un utilisateur.

      Privilèges d'index

      Définit les privilèges pour les opérations d'index, par exemple l'octroi d'un accès read à tous les champs de tous les index en définissant le nom de l'index sur . Les noms d'index acceptent les caractères génériques () et les expressions régulières. Pour en savoir plus, consultez Privilèges d'index. Configurez les paramètres suivants :

      • Indices : Lors de la création d'un rôle, la liste déroulante affiche uniquement les modèles d'index existants et ne charge pas automatiquement tous les index physiques du cluster. Pour accorder des autorisations sur un index non affiché, saisissez manuellement le nom spécifique de l'index ou un nom contenant un caractère générique () dans le champ de saisie, puis appuyez sur Enter pour l'ajouter. Exemple : heartbeat-.

        Remarque

        Si vous ne disposez d'aucun modèle d'index, accédez à la page Management, cliquez sur Index Pattern sous Kibana, et suivez les instructions à l'écran pour en créer un.

      • Privileges : Privilèges à attribuer au rôle.

      • Granted fields (optional) : Champs sur lesquels octroyer des privilèges.

      Privilèges Kibana

      Définit les privilèges pour les opérations Kibana.

      Important

      Les versions de Kibana antérieures à 7,0 prennent uniquement en charge les privilèges de base, qui accordent par défaut l'accès à tous les espaces. À partir de Kibana 7.0, les privilèges de fonctionnalité sont également pris en charge en plus des privilèges de base. Ces derniers permettent d'accéder à des fonctionnalités Kibana spécifiques et nécessitent la spécification d'un espace Kibana.

      Lors de la création d'un rôle, vous devez lui attribuer des privilèges. Les exemples suivants illustrent des configurations de rôles courantes :

    5. Cliquez sur Create role.

  2. Créez un utilisateur et assignez-lui des rôles pour lui octroyer des autorisations.

    1. Accédez à la page de gestion.

      • V6.7 : Dans le volet de navigation de gauche, cliquez sur ManagementManagement.

      • V7.x : Dans le coin supérieur gauche de la page, cliquez sur l'icône 展开图标展开图标 , puis sélectionnez ManagementManagement > Stack Management.

    2. Dans la section SecuritySecurity, cliquez sur Users.

    3. Cliquez sur Create new user et configurez les paramètres.

      Paramètre

      Description

      Username

      Nom d'utilisateur pour la connexion à la console Kibana.

      Password

      Mot de passe permettant à l'utilisateur de se connecter à la console Kibana.

      Confirm Password

      Doit correspondre au champ Password.

      Nom complet

      Nom complet de l'utilisateur.

      Adresse e-mail

      Adresse e-mail de l'utilisateur.

      Roles

      Rôles à attribuer à l'utilisateur. Vous pouvez sélectionner un ou plusieurs rôles personnalisés ou intégrés.

      Important

      Même si vous avez spécifié un utilisateur dans la section Run As privileges lors de la création du rôle, vous devez toujours lui assigner ce rôle ici. Sans cela, l'utilisateur ne pourra pas se connecter.

    4. Cliquez sur Create user.

  3. Connectez-vous à la console Kibana avec le nouvel utilisateur et effectuez une opération pour vérifier les autorisations.

Configurer des privilèges d'index en lecture seule

Cas d'utilisation

Accordez à un utilisateur standard des privilèges de lecture seule pour un index spécifique. L'utilisateur pourra interroger les données de l'index dans la console Kibana, mais n'aura pas accès aux API au niveau du cluster.

Configuration du rôle

Tableau 1. Description des privilèges

Type de privilège

Clé de privilège

Valeur de privilège

Description

Privilèges d'index

indices

kibana_sample_data_logs

Nom de l'index. Vous pouvez spécifier le nom complet, un alias, un caractère générique ou une expression régulière. Pour plus d'informations, consultez Privilèges d'index.

privileges

read

Accorde des privilèges de lecture seule sur l'index. Ces privilèges incluent get, mget, search et count. Pour en savoir plus, voir privileges-list-indices.

Champs accordés (facultatif)

*

Champs de l'index. * indique tous les champs.

Privilèges Kibana

privileges

read

Accorde à Kibana un accès en lecture seule à tous les espaces. La valeur par défaut est none, ce qui refuse l'accès à tous les espaces Kibana.

Important

Les versions de Kibana antérieures à 7,0 prennent uniquement en charge les privilèges de base, qui accordent par défaut l'accès à tous les espaces. À partir de Kibana 7.0, les privilèges de fonctionnalité sont également pris en charge en plus des privilèges de base. Ces derniers permettent d'accéder à des fonctionnalités Kibana spécifiques et nécessitent la spécification d'un espace Kibana.

Vérification

  • Connectez-vous à la console Kibana avec le nouvel utilisateur et exécutez une commande de lecture. La commande doit renvoyer un résultat normal.

    GET /kibana_sample_data_logs/_search
  • Exécutez une commande d'écriture. Vous recevrez une erreur d'autorisation.

    POST /kibana_sample_data_logs/_doc/1
    {
        "productName": "testpro",
        "annual_rate": "3.22%",
        "describe": "testpro"
    }
    {
      "error": {
        "root_cause": [
          {
            "type": "security_exception",
            "reason": "action [indices:data/write/index] is unauthorized for user [user-test]"
          }
        ],
        "type": "security_exception",
        "reason": "action [indices:data/write/index] is unauthorized for user [user-test]"
      },
      "status": 403
    }

Configurer les privilèges de tableau de bord

Cas d'utilisation

Accordez à un utilisateur standard des privilèges de lecture seule pour un index spécifique et autorisez-le à consulter les données du tableau de bord associées à cet index.

Configuration du rôle

Lorsque vous créez un utilisateur, assignez les rôles read-index et kibana_dashboard_only_user à l'utilisateur.

  • read-index : Exemple de rôle personnalisé que vous devez créer. Ce rôle dispose de privilèges de lecture seule pour un index spécifié.

  • kibana_dashboard_only_user : Rôle Kibana intégré disposant du privilège de consultation des données de tableau de bord pour des index spécifiés.

    Remarque
    • À partir de Kibana 7.0, le rôle kibana_dashboard_only_user est obsolète. Pour consulter le tableau de bord d'un index spécifique, il suffit de configurer des privilèges de lecture seule pour cet index. Pour plus de détails, voir Configuration des privilèges de lecture seule pour un index.

    • Le rôle kibana_dashboard_only_user peut être utilisé conjointement avec des rôles personnalisés dans de nombreux scénarios. Si vous souhaitez attribuer uniquement la fonctionnalité Dashboards only roles à un rôle personnalisé, dans la zone KibanaKibana de la page ManagementManagement, localisez la section DashboardDashboard et associez-y un rôle personnalisé (par défaut, le rôle kibana_dashboard_only_user ).

Vérification

Connectez-vous à la console Kibana avec le nouvel utilisateur. Vous pouvez consulter le tableau de bord correspondant à l'index.

Le tableau de bord nommé heartbeat-dashboard contient un graphique linéaire heartbeat-visu, avec Count sur l'axe Y et @timestamp per 30 seconds sur l'axe X, illustrant la tendance du nombre de battements de cœur au fil du temps.

Configurer la lecture/écriture d'index et l'accès en lecture seule au cluster

Cas d'utilisation

Accordez à un utilisateur les privilèges de lecture, d'écriture et de suppression pour des index spécifiques, ainsi que des privilèges en lecture seule pour le cluster et Kibana.

Configuration du rôle

Tableau 2. Description des privilèges

Type de privilège

Clé de privilège

Valeur de privilège

Description

Privilèges de cluster

Cluster

monitor

Accorde des privilèges en lecture seule sur le cluster, tels que la consultation de l'état de santé du cluster, du statut, des threads actifs, des informations sur les nœuds et des tâches bloquées.

Privilèges d'index

indices

heartbeat-,library

Nom de l'index. Vous pouvez spécifier le nom complet, un alias, un caractère générique ou une expression régulière. Pour plus d'informations, consultez roles-indices-priv.

privileges

read

Accorde des privilèges en lecture seule sur l'index. Ces privilèges incluent get, mget, search et count. Pour plus d'informations, consultez privileges-list-indices.

create_index

Privilège permettant de créer un index. Si vous définissez un alias d'index lors de la création d'un index, vous devez également accorder le privilège manage.

Important

L'alias d'index doit également satisfaire aux règles de correspondance définies sous indices.

view_index_metadata

Accorde un accès en lecture seule aux métadonnées de l'index, telles que les mappings et les paramètres.

write

Privilège permettant d'effectuer toutes les opérations d'écriture sur les documents, y compris index, update, delete, bulk et la mise à jour des mappings. Ce privilège couvre un éventail d'opérations plus large que create et index.

monitor

Privilège permettant de surveiller toutes les opérations, y compris index recovery, segments info, index stats et status.

delete

Privilège permettant de supprimer des documents d'index.

delete_index

Privilège permettant de supprimer un index.

granted fields

*

Champs d'index à autoriser. * représente tous les champs de l'index.

Privilèges Kibana

privileges

read

Accorde à Kibana un accès en lecture seule à tous les espaces. La valeur par défaut est none, ce qui refuse l'accès à tous les espaces Kibana.

Important

Les versions de Kibana antérieures à 7,0 prennent uniquement en charge les Base privileges, qui accordent par défaut l'accès à tous les espaces. Kibana 7.0 et les versions ultérieures prennent en charge les Feature privileges en plus des Base privileges. Les Feature privileges accordent l'accès à des fonctionnalités Kibana spécifiques et nécessitent que vous spécifiiez un espace Kibana.

Vérification

Connectez-vous à la console Kibana en tant qu'utilisateur standard. Toutes les commandes suivantes aboutissent.

GET _cat/indices?v
GET _cluster/stats

GET /product_info/_search
GET /product_info1/_search

POST /kibana_sample_data_logs/_doc/2
{
"productName":"testpro",
"annual_rate":"3.22%",
"describe":"testpro"
}
PUT /product_info2/_doc/1
{
"productName":"testpro",
"annual_rate":"3.22%",
"describe":"testpro"
}

DELETE product_info

--- Output ---
health status index                           uuid  pri rep docs.count docs.deleted store.size pri.store.size
green  open   .monitoring-es-6-2020.12.14     xxx   1   1
green  open   .kibana_1                       xxx   1   1
green  open   kibana_sample_data_logs         xxx   5   1   2          0            18.1kb     9kb
green  open   .monitoring-kibana-6-2020.12.12 xxx   1   1
green  open   .monitoring-es-6-2020.12.11     xxx   1   1
green  open   .monitoring-es-6-2020.12.10     xxx   1   1
green  open   .monitoring-kibana-6-2020.12.14 xxx   1   1
green  open   .monitoring-es-6-2020.12.09     xxx   1   1
green  open   .kibana_task_manager            xxx   1   1
green  open   .monitoring-kibana-6-2020.12.13 xxx   1   1
green  open   .monitoring-kibana-6-2020.12.09 xxx   1   1
green  open   product_info1                   xxx   5   1   0          0            2.5kb      1.2kb
green  open   .monitoring-kibana-6-2020.12.11 xxx   1   1
green  open   .monitoring-es-6-2020.12.12     xxx   1   1
green  open   product_info2                   xxx   5   1   1          0            9.3kb      4.6kb
green  open   .monitoring-kibana-6-2020.12.10 xxx   1   1
green  open   .monitoring-es-6-2020.12.13     xxx   1   1
green  open   .security-6                     xxx   1   1
  • Consultez les informations détaillées sur les index du cluster.

    GET /_cat/indices?v
  • Consultez l'état du cluster.

    GET /_cluster/stats
  • Interrogez les données dans l'index library_v1.

    GET /library_v1/_search
  • Interrogez les données dans l'index library_v2.

    GET /library_v2/_search
  • Écrivez des données dans l'index heartbeat-2023.01.01 à l'aide de la méthode POST.

    POST /heartbeat-2023.01.01/_doc/2
    {
        "productName": "testpro",
        "annual_rate": "3.22%",
        "describe": "testpro"
    }
  • Écrivez des données dans l'index library_v3 à l'aide de la méthode PUT.

    PUT /library_v3/_doc/1
    {
        "productName": "testpro",
        "annual_rate": "3.22%",
        "describe": "testpro"
    }
  • Supprimez l'index library_v1.

    DELETE library_v1

Configurer les privilèges en lecture seule pour Discover

Cas d'utilisation

Accordez à un utilisateur standard des privilèges en lecture seule pour Kibana Discover et un index. Cet utilisateur peut accéder à la page Discover dans la console Kibana pour afficher les données de cet index.

Configuration du rôle

Tableau 3. Description des privilèges

Type de privilège

Clé de privilège

Valeur de privilège

Description

Privilèges de cluster

Privileges

monitor

Accorde des privilèges en lecture seule sur tous les clusters, tels que la consultation de l'état de santé et du statut du cluster, des threads actifs, des informations sur les nœuds, des statistiques sur les nœuds et le cluster, ainsi que des tâches de cluster en attente.

Privilèges d'index

Indices

kibana_sample_data_ecommerce

Nom de l'index. Vous pouvez spécifier le nom complet, un alias, un caractère générique ou une expression régulière. Pour plus d'informations, consultez Indices Privileges.

Privileges

read

Accorde des privilèges en lecture seule sur l'index. Ces privilèges incluent get, mget, search et count. Pour plus d'informations, consultez privileges-list-indices.

Granted fields (optional)

*

Champ d'index. Le * représente tous les champs.

Privilèges Kibana

Privileges

read

Accorde des privilèges en lecture seule pour tous les espaces Kibana. La valeur par défaut est none, ce qui refuse l'accès à tous les espaces Kibana.

Important

Les versions de Kibana antérieures à 7,0 prennent uniquement en charge les Base privileges, qui accordent par défaut l'accès à tous les espaces. Kibana 7.0 et les versions ultérieures prennent en charge les Feature privileges en plus des Base privileges. Les Feature privileges accordent l'accès à des fonctionnalités Kibana spécifiques, telles que la page Discover, et nécessitent que vous spécifiiez un espace Kibana.

Vérification

Connectez-vous à la console Kibana en tant que nouvel utilisateur. Vous pouvez afficher les données de l'index spécifié sur la page Discover.

L'index actuellement consulté est kibana_sample_data_ecommerce et la page affiche correctement les détails des documents de commande e-commerce contenus dans cet index.

Gérer les index et les documents sans accès à Kibana

Cas d'utilisation

Accordez à un utilisateur les privilèges nécessaires pour gérer les index et les documents via l'API, sans accès à la console Kibana.

Configuration du rôle

Tableau 4. Description des privilèges

Type de privilège

Clé de privilège

Valeur de privilège

Description

Privilèges d'index

Indices

test*

Nom de l'index. Vous pouvez spécifier le nom complet, un alias, un caractère générique ou une expression régulière. Pour plus d'informations, consultez Indices Privileges.

Privileges

create_index

Privilège permettant de créer un index. Si la demande de création d'index contient un alias à ajouter à l'index, vous devez également accorder le privilège manage.

delete_index

Privilège permettant de supprimer un index.

index

Privilège permettant d'indexer et de mettre à jour des documents, ainsi que de mettre à jour les mappings d'index.

delete

Privilège permettant de supprimer des documents.

read

Accorde des privilèges en lecture seule sur l'index. Ces privilèges incluent get, mget, search et count. Pour plus d'informations, consultez privileges-list-indices.

manage

Accorde des privilèges pour les opérations de gestion d'index, telles que la gestion des alias, des paramètres, des mappings et des modèles.

Granted fields (optional)

*

Champs d'index. * représente tous les champs.

Privilèges Kibana

Privileges

none

Définissez la valeur sur none (par défaut), ce qui refuse l'accès à tous les espaces Kibana.

Important

Les versions de Kibana antérieures à 7,0 prennent uniquement en charge les Base privileges, qui accordent par défaut l'accès à tous les espaces. Kibana 7.0 et les versions ultérieures prennent en charge les Feature privileges en plus des Base privileges. Les Feature privileges accordent l'accès à des fonctionnalités Kibana spécifiques et nécessitent que vous spécifiiez un espace Kibana.

Vérification

  • Utilisez cURL pour créer puis supprimer un index.

    [root@iZbp17az4re1xxx ~]#
    [root@iZbp17az4re1xxx ~]# curl -u 'test:xxx' -XPUT "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role"
    {"acknowledged":true,"shards_acknowledged":true,"index":"test_role"}[root@iZbp17az4re1kuerxxx ~]#
    [root@iZbp17az4re1xxx ~]#
    [root@iZbp17az4re1xxx ~]# curl -u 'test:xxx' -XDELETE "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role"
    {"acknowledged":true} root@iZbp17az4re1kuerxxx ~]#
  • Modifiez la configuration de l'index. Cet exemple définit les données de l'index comme des données froides.

    [root@iZbp17az4re1kuere  ~]#
    [root@iZbp17az4re1kuere  ~]# curl -u 'test:xxx'  -XPUT "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_settings" -H 'content-Type:application/json' -d '{"index":{"routing":{"allocation":{"require.box_type": "warm"}}}}'
    {"acknowledged":true}[root@iZbp17az4re1kuere-xxx  ~]#
  • Effectuez des opérations CRUD sur les documents.

    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]# curl -u 'test_xxx' -XPOST "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_doc/1" -H 'content-Type:application/json' -d '{"test":"you know, for search"}'
    {"_index":"test_role","_type":"_doc","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":2,"failed":0},"_seq_no":0,"_primary_term":1}
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]# curl -u 'test_xxx' -XPOST "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_doc/2" -H 'content-Type:application/json' -d '{"test":"you know, for search"}'
    {"_index":"test_role","_type":"_doc","_id":"2","_version":1,"result":"created","_shards":{"total":2,"successful":2,"failed":0},"_seq_no":1,"_primary_term":1}
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]# curl -u 'test_xxx' -XPOST "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_doc/2" -H 'content-Type:application/json' -d '{"test":"you know, for search, 2.0"}'
    {"_index":"test_role","_type":"_doc","_id":"2","_version":2,"result":"updated","_shards":{"total":2,"successful":2,"failed":0},"_seq_no":2,"_primary_term":1}
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]# curl -u 'test_xxx' -XGET "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_search?q=test:'search'"
    {"took":64,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":2,"max_score":0.19100356,"hits":[{"_index":"test_role","_type":"_doc","_id":"1","_score":0.19100356,"_source":{"test":"you know,for search"}},{"_index":"test_role","_type":"_doc","_id":"2","_score":0.17439455,"_source":{"test":"you know,for search, 2.0"}}]}}
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]# curl -u 'test_xxx' -XDELETE "http://es-cn-co92y5p2b000xxx.elasticsearch.aliyuncs.com:9200/test_role/_doc/2"
    {"_index":"test_role","_type":"_doc","_id":"2","_version":3,"result":"deleted","_shards":{"total":2,"successful":2,"failed":0},"_seq_no":3,"_primary_term":1}
    [root@iZbp17az4re1kueren xxx ~]#
    [root@iZbp17az4re1kueren xxx ~]#
  • Connectez-vous à la console Kibana en tant qu'utilisateur.

    Un message s'affiche indiquant que l'utilisateur ne dispose pas des privilèges requis.

FAQ

Puis-je utiliser l'AccessKey ID et l'AccessKey secret d'un utilisateur Resource Access Management (RAM) pour accéder directement aux données d'un cluster Elasticsearch ?

Non. L'AccessKey ID et l'AccessKey secret d'un utilisateur Resource Access Management (RAM) peuvent uniquement être utilisés pour appeler les API de gestion Alibaba Cloud, telles que les API de création ou de redémarrage d'instances et de modification des configurations. Ils ne permettent pas d'accéder directement aux données d'un cluster Elasticsearch ni de les manipuler. Pour lire ou écrire des données de cluster ou effectuer des opérations sur les index, utilisez le nom d'utilisateur et le mot de passe créés dans le système d'authentification de sécurité Elasticsearch X-Pack.

Pourquoi l'utilisateur superutilisateur elastic reçoit-il une erreur 403 « insufficient privileges » lors de la suppression de l'index .kibana_security_session_1 ?

L'index .kibana_security_session_1 est un index système protégé qu'utilise Kibana pour stocker les informations de session utilisateur. Même l'utilisateur elastic doté du rôle superuser ne peut pas supprimer directement cet index via une API. Il s'agit d'une restriction de sécurité d'Elasticsearch et de Kibana, et non d'une erreur de configuration des autorisations. Si un problème lié à cet index entraîne des difficultés de connexion ou de session, effacez le cache du navigateur et reconnectez-vous à la console Kibana.