Tous les produits
Search
Centre de documentation

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

Dernière mise à jour :Aug 21, 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. Vous pouvez également créer des rôles personnalisés pour un contrôle plus granulaire des clusters, des index et des champs.

Contexte

Procédure

Remarque

Ces instructions s'appliquent aux versions Elasticsearch 6.7 et 7.x. Les étapes peuvent différer pour les autres versions. Reportez-vous à 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 Se connecter à la console Kibana.

    2. Accédez à la page de gestion.

      • V6.7 : dans le volet de navigation de gauche, cliquez sur Management.

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

    3. Dans la section Security, cliquez sur Roles.

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

      Paramètre

      Description

      Role Name

      Nom du rôle.

      Cluster privileges

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

      Run As privileges

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

      Index privileges

      Définit les privilèges pour les opérations sur les index. Par exemple, vous pouvez accorder un accès en 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 plus d'informations, consultez la documentation Indices privileges. Configurez les paramètres suivants :

      • Indices : sélectionnez un modèle d'index, par 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 auxquels accorder des privilèges.

      Kibana privileges

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

      Important

      Les versions de Kibana antérieures à la 7,0 prennent uniquement en charge les Base privileges, qui accordent par défaut l'accès à tous les espaces. À partir de Kibana 7.0, les Feature privileges sont également pris en charge, en plus des privilèges de base. Les privilèges de fonctionnalité accordent l'accès à 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 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 Management.

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

    2. Dans la section Security, 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.

      Full name

      Nom complet de l'utilisateur.

      Email address

      Adresse e-mail de l'utilisateur.

      Roles

      Attribuez des rôles à 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 attribuer ce rôle à l'utilisateur à cette étape. Sinon, l'utilisateur ne pourra pas se connecter.

    4. Cliquez sur Create user.

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

Configurer les privilèges d'index en lecture seule

Cas d'utilisation

Accordez à un utilisateur standard des privilèges en lecture seule pour un index spécifique. L'utilisateur peut interroger les données de l'index dans la console Kibana, mais n'a 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 la documentation 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 de détails, consultez la documentation 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 à la 7,0 prennent uniquement en charge les Base privileges, qui accordent par défaut l'accès à tous les espaces. À partir de Kibana 7.0, les Feature privileges sont également pris en charge, en plus des privilèges de base. Les privilèges de fonctionnalité accordent l'accès à des fonctionnalités Kibana spécifiques et nécessitent la spécification d'un espace Kibana.

Vérification

  • Connectez-vous à la console Kibana en tant que 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 en lecture seule pour un index spécifique et autorisez-le à afficher les données du tableau de bord associées à cet index.

Configuration du rôle

Lorsque vous créez un utilisateur, attribuez-lui les rôles read-index et kibana_dashboard_only_user.

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

  • kibana_dashboard_only_user : rôle Kibana intégré disposant du privilège d'affichage 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 afficher le tableau de bord d'un index spécifique, il suffit de configurer des privilèges en lecture seule pour cet index. Pour plus d'informations, consultez la section Configuration des privilèges en 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é Kibana à un rôle personnalisé, accédez à la zone Management de la page Dashboard, repérez la section Dashboard et associez-y un rôle personnalisé (le rôle par défaut est kibana_dashboard_only_user).

Vérification

Connectez-vous à la console Kibana en tant que nouvel utilisateur. Vous pouvez afficher 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, affichant la tendance du nombre de battements au fil du temps.

Configurer les privilèges de lecture/écriture sur les index et de lecture seule sur le cluster

Cas d'utilisation

Accordez à un utilisateur des 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 l'affichage de l'état de santé, 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 la documentation 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 de détails, consultez la documentation privileges-list-indices.

create_index

Privilège de création d'index. Si vous définissez un alias d'index lors de la création, 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 d'exécution de 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 de surveillance de toutes les opérations, y compris index recovery, segments info, index stats et status.

delete

Privilège de suppression des documents d'index.

delete_index

Privilège de suppression d'un index.

champs accordés

*

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 à la 7,0 prennent uniquement en charge les Base privileges, qui accordent par défaut l'accès à tous les espaces. À partir de Kibana 7.0, les Feature privileges sont également pris en charge, en plus des privilèges de base. Les privilèges de fonctionnalité accordent l'accès à des fonctionnalités Kibana spécifiques et nécessitent la spécification d'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
  • Affichez 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 de l'index library_v1.

    GET /library_v1/_search
  • Interrogez les données de 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 pour un index. L'utilisateur pourra accéder à la page Discover de la console Kibana afin de visualiser 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

Privilèges

monitor

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

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 la documentation Indices Privileges.

Privilèges

read

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

Champs accordés (facultatif)

*

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

Privilèges Kibana

Privilèges

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 à la 7,0 prennent uniquement en charge les Base privileges, qui accordent par défaut l'accès à tous les espaces. À partir de Kibana 7.0, les Feature privileges sont également pris en charge, en plus des privilèges de base. Les privilèges de fonctionnalité accordent l'accès à des fonctionnalités Kibana spécifiques, telles que la page Discover, et nécessitent la spécification d'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 lui donner 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 la documentation Indices Privileges.

Privilèges

create_index

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

delete_index

Privilège de suppression d'un index.

index

Privilège d'indexation et de mise à jour des documents, ainsi que de mise à jour des mappings d'index.

delete

Privilège de suppression de documents.

read

Accorde des privilèges en lecture seule sur l'index. Ces privilèges incluent get, mget, search et count. Pour plus de détails, consultez la documentation 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.

Champs accordés (facultatif)

*

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

Privilèges Kibana

Privilèges

none

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

Important

Les versions de Kibana antérieures à la 7,0 prennent uniquement en charge les Base privileges, qui accordent par défaut l'accès à tous les espaces. À partir de Kibana 7.0, les Feature privileges sont également pris en charge, en plus des privilèges de base. Les privilèges de fonctionnalité accordent l'accès à des fonctionnalités Kibana spécifiques et nécessitent la spécification d'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.