Todos os produtos
Search
Central de documentação

Elasticsearch:Gerencie permissões de usuário com funções do X-Pack

Última atualização: Sep 14, 2026

O X-Pack do Elasticsearch oferece controle de acesso baseado em função (RBAC), que permite conceder privilégios específicos a funções e atribuí-las aos usuários. O Alibaba Cloud Elasticsearch inclui várias funções integradas, e você pode criar funções personalizadas para obter um controle mais granular sobre clusters, índices e campos.

Contexto

Procedimento

Nota

Estas instruções aplicam-se ao Elasticsearch V6.7 e V7.x. As etapas para outras versões podem ser diferentes. Consulte o console para obter as etapas mais precisas.

  1. Crie uma função.

    1. Faça logon no console do Kibana.

      Para obter mais informações, consulte Log on to the Kibana console.

    2. Acesse a página de gerenciamento.

      • V6.7: No painel de navegação à esquerda, clique em Management.

      • V7.x: No canto superior esquerdo da página, clique no ícone 展开图标 e selecione Management > Stack Management.

    3. Na seção Security, clique em Roles.

    4. Clique em Create role e configure os parâmetros.

      Parâmetro

      Descrição

      Role Name

      Nome da função.

      Cluster privileges

      Define privilégios para operações de cluster, como visualizar integridade e configurações do cluster ou criar um snapshot. Para obter mais informações, consulte Cluster privileges.

      Run As privileges

      Opcional. Usuário que assume esta função. Se não especificado aqui, atribua a função ao criar o usuário. Para obter mais informações, consulte Create a user.

      Index privileges

      Define privilégios para operações de índice, como conceder acesso de read a todos os campos de todos os índices definindo o nome do índice como . Os nomes de índices aceitam caracteres curinga () e expressões regulares. Para obter mais informações, consulte Indices privileges. Configure os seguintes parâmetros:

      • Indices: Ao criar uma função, a lista suspensa exibe apenas padrões de índice existentes e não carrega automaticamente todos os índices físicos do cluster. Para conceder permissões em um índice não exibido, insira manualmente o nome específico do índice ou um nome de índice contendo um caractere curinga () no campo de entrada e pressione Enter para adicioná-lo. Exemplo: heartbeat-.

        Nota

        Se você não tiver um padrão de índice, acesse a página Management, clique em Index Pattern em Kibana e siga as instruções na tela para criar um.

      • Privileges: Privilégios a serem atribuídos à função.

      • Granted fields (optional): Campos nos quais os privilégios serão concedidos.

      Kibana privileges

      Define privilégios para operações do Kibana.

      Importante

      Versões do Kibana anteriores à 7.0 suportam apenas Base privileges, que concedem acesso a todos os espaços por padrão. O Kibana 7.0 e versões posteriores suportam Feature privileges além dos Base privileges. Os Feature privileges concedem acesso a recursos específicos do Kibana e exigem a especificação de um espaço do Kibana.

      Ao criar uma função, é necessário atribuir privilégios. Os exemplos a seguir mostram configurações comuns de funções:

      • Conceda a um usuário padrão privilégios somente leitura em um índice específico. Esse usuário poderá acessar apenas o índice especificado.

        Para obter mais informações, consulte Configure read-only index privileges.

      • Conceda a um usuário padrão privilégios para visualizar todos ou alguns painéis.

        Para obter mais informações, consulte Configure dashboard privileges.

      • Conceda a um usuário padrão privilégios de leitura e gravação em alguns índices e privilégios somente leitura em todos os clusters. Por exemplo, o usuário pode visualizar a integridade, snapshots e configurações do cluster, além de gravar dados e atualizar mapeamentos de um índice.

        Para obter mais informações, consulte Configure index read/write and cluster read-only privileges.

      • Conceda a um usuário padrão privilégios somente leitura para o Kibana Discover e um índice. Esse usuário pode acessar a página Discover no console do Kibana para visualizar os dados desse índice.

        Para obter mais informações, consulte Configure Discover read-only privileges for index data.

      • Conceda a um usuário padrão privilégios para criar, ler, atualizar e excluir documentos, criar e excluir índices e modificar configurações de índice, sem conceder acesso ao console do Kibana.

        Para obter mais informações, consulte Configure permissions to manage indexes and documents without Kibana access.

    5. Clique em Create role.

  2. Crie um usuário e atribua funções para conceder permissões.

    1. Acesse a página de gerenciamento.

      • V6.7: No painel de navegação à esquerda, clique em Management.

      • V7.x: No canto superior esquerdo da página, clique no ícone 展开图标 e selecione Management > Stack Management.

    2. Na seção Security, clique em Users.

    3. Clique em Create new user e configure os parâmetros.

      Parâmetro

      Descrição

      Username

      Nome de usuário para fazer logon no console do Kibana.

      Password

      Senha para o usuário fazer logon no console do Kibana.

      Confirm Password

      Deve corresponder à Password.

      Full name

      Nome completo do usuário.

      Email address

      Endereço de e-mail do usuário.

      Roles

      Atribua funções ao usuário. Selecione uma ou mais funções personalizadas ou integradas.

      Importante

      Mesmo que você tenha especificado um usuário na seção Run As privileges ao create the role, ainda será necessário atribuir essa função ao usuário aqui. Caso contrário, o usuário não conseguirá fazer logon.

    4. Clique em Create user.

  3. Faça logon no console do Kibana como o novo usuário e execute uma operação para verificar as permissões.

Configure privilégios de índice somente leitura

Caso de uso

Conceda a um usuário padrão privilégios somente leitura para um índice específico. O usuário pode consultar dados do índice no console do Kibana, mas não pode acessar APIs de nível de cluster.

Configuração da função

Tabela 1. Descrição do privilégio

Tipo de privilégio

Chave do privilégio

Valor do privilégio

Descrição

Index privileges

indices

kibana_sample_data_logs

Nome do índice. Especifique o nome completo, um alias, um caractere curinga ou uma expressão regular. Para obter mais informações, consulte Indices Privileges.

privileges

read

Concede privilégios somente leitura no índice. Esses privilégios incluem get, mget, search e count. Para obter mais informações, consulte privileges-list-indices.

Granted fields (optional)

*

Campos do índice. * indica todos os campos.

Kibana privileges

privileges

read

Concede acesso somente leitura do Kibana a todos os espaços. O padrão é none, que nega acesso a todos os espaços do Kibana.

Importante

Versões do Kibana anteriores à 7.0 suportam apenas Base privileges, que concedem acesso a todos os espaços por padrão. O Kibana 7.0 e versões posteriores suportam Feature privileges além dos Base privileges. Os Feature privileges concedem acesso a recursos específicos do Kibana e exigem a especificação de um espaço do Kibana.

Verificação

  • Faça logon no console do Kibana como o novo usuário e execute um comando de leitura. O comando deve retornar um resultado normal.

    GET /kibana_sample_data_logs/_search
  • Execute um comando de gravação. Você receberá um erro de autorização.

    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
    }

Configure privilégios de painel

Caso de uso

Conceda a um usuário padrão privilégios somente leitura para um índice específico e permita que o usuário visualize os dados do painel desse índice.

Configuração da função

Ao create a user, atribua as funções read-index e kibana_dashboard_only_user ao usuário.

  • read-index: Exemplo de função personalizada que você deve criar. Essa função tem privilégios somente leitura para um índice especificado.

  • kibana_dashboard_only_user: Função integrada do Kibana que possui o privilégio de visualizar dados de painel para índices especificados.

    Nota
    • No Kibana 7.0 e versões posteriores, a função kibana_dashboard_only_user foi descontinuada. Para visualizar o painel de um índice específico, basta configurar privilégios somente leitura para esse índice. Para obter mais informações, consulte Configuring read-only privileges for an index.

    • A função kibana_dashboard_only_user pode ser usada com funções personalizadas em muitos cenários. Se você precisar atribuir apenas o recurso Dashboards only roles a uma função personalizada, na área Kibana da página Management, localize a seção Dashboard e vincule uma função personalizada (o padrão é a função kibana_dashboard_only_user).

Verificação

Faça logon no console do Kibana como o novo usuário. Você poderá visualizar o painel do índice correspondente.

O painel chamado heartbeat-dashboard contém um gráfico de linhas heartbeat-visu, com Count no eixo Y e @timestamp per 30 seconds no eixo X, mostrando a tendência de contagem de heartbeat ao longo do tempo.

Configure leitura/gravação de índice e cluster somente leitura

Caso de uso

Conceda a um usuário privilégios de leitura, gravação e exclusão para índices específicos, e privilégios somente leitura para o cluster e o Kibana.

Configuração da função

Tabela 2. Descrição do privilégio

Tipo de privilégio

Chave do privilégio

Valor do privilégio

Descrição

Cluster privileges

Cluster

monitor

Concede privilégios somente leitura no cluster, como visualizar integridade, status, hot threads, informações de nó e tarefas bloqueadas.

Index privileges

indices

heartbeat-,library

Nome do índice. Especifique o nome completo, um alias, um caractere curinga ou uma expressão regular. Para obter mais informações, consulte roles-indices-priv.

privileges

read

Concede privilégios somente leitura no índice. Esses privilégios incluem get, mget, search e count. Para obter mais informações, consulte privileges-list-indices.

create_index

Privilégio para criar um índice. Se você definir um alias de índice ao criar um índice, também será necessário conceder o privilégio manage.

Importante

O alias do índice também deve satisfazer as regras de correspondência definidas em indices.

view_index_metadata

Concede acesso somente leitura aos metadados do índice, como mapeamentos e configurações.

write

Privilégio para executar todas as operações de gravação em documentos, incluindo index, update, delete, bulk e atualização de mapeamentos. Este privilégio abrange uma gama maior de operações do que create e index.

monitor

Privilégio para monitorar todas as operações, incluindo index recovery, segments info, index stats e status.

delete

Privilégio para excluir documentos do índice.

delete_index

Privilégio para excluir um índice.

granted fields

*

Campos do índice a autorizar. * representa todos os campos do índice.

Kibana privileges

privileges

read

Concede acesso somente leitura do Kibana a todos os espaços. O padrão é none, que nega acesso a todos os espaços do Kibana.

Importante

Versões do Kibana anteriores à 7.0 suportam apenas Base privileges, que concedem acesso a todos os espaços por padrão. O Kibana 7.0 e versões posteriores suportam Feature privileges além dos Base privileges. Os Feature privileges concedem acesso a recursos específicos do Kibana e exigem a especificação de um espaço do Kibana.

Verificação

Faça logon no console do Kibana como o usuário padrão. Os comandos a seguir devem ser executados com êxito.

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
  • Visualize informações detalhadas sobre os índices no cluster.

    GET /_cat/indices?v
  • Visualize o status do cluster.

    GET /_cluster/stats
  • Consulte dados no índice library_v1.

    GET /library_v1/_search
  • Consulte dados no índice library_v2.

    GET /library_v2/_search
  • Grave dados no índice heartbeat-2023.01.01 usando o método POST.

    POST /heartbeat-2023.01.01/_doc/2
    {
        "productName": "testpro",
        "annual_rate": "3.22%",
        "describe": "testpro"
    }
  • Grave dados no índice library_v3 usando o método PUT.

    PUT /library_v3/_doc/1
    {
        "productName": "testpro",
        "annual_rate": "3.22%",
        "describe": "testpro"
    }
  • Exclua o índice library_v1.

    DELETE library_v1

Configure privilégios somente leitura do Discover

Caso de uso

Conceda a um usuário padrão privilégios somente leitura para o Kibana Discover e um índice. Esse usuário pode acessar a página Discover no console do Kibana para visualizar os dados desse índice.

Configuração da função

Tabela 3. Descrição do privilégio

Tipo de privilégio

Chave do privilégio

Valor do privilégio

Descrição

Cluster privileges

Privileges

monitor

Concede privilégios somente leitura em todos os clusters, como visualizar integridade e status do cluster, hot threads, informações de nó, estatísticas de nó e cluster e tarefas pendentes do cluster.

Index privileges

Indices

kibana_sample_data_ecommerce

Nome do índice. Especifique o nome completo, um alias, um caractere curinga ou uma expressão regular. Para obter mais informações, consulte Indices Privileges.

Privileges

read

Concede privilégios somente leitura no índice. Esses privilégios incluem get, mget, search e count. Para obter mais informações, consulte privileges-list-indices.

Granted fields (optional)

*

Campo do índice. O * representa todos os campos.

Kibana privileges

Privileges

read

Concede privilégios somente leitura para todos os espaços do Kibana. O valor padrão é none, que nega acesso a todos os espaços do Kibana.

Importante

Versões do Kibana anteriores à 7.0 suportam apenas Base privileges, que concedem acesso a todos os espaços por padrão. O Kibana 7.0 e versões posteriores suportam Feature privileges além dos Base privileges. Os Feature privileges concedem acesso a recursos específicos do Kibana, como a página Discover, e exigem a especificação de um espaço do Kibana.

Verificação

Faça logon no console do Kibana como o novo usuário. Você poderá visualizar os dados do índice especificado na página Discover.

O índice atualmente visualizado é kibana_sample_data_ecommerce, e a página exibe com êxito os detalhes do documento de pedido de e-commerce nesse índice.

Gerencie índices e documentos sem acesso ao Kibana

Caso de uso

Conceda a um usuário privilégios para gerenciar índices e documentos via API, sem acesso ao console do Kibana.

Configuração da função

Tabela 4. Descrição do privilégio

Tipo de privilégio

Chave do privilégio

Valor do privilégio

Descrição

Index privileges

Indices

test*

Nome do índice. Especifique o nome completo, um alias, um caractere curinga ou uma expressão regular. Para obter mais informações, consulte Indices Privileges.

Privileges

create_index

Privilégio para criar um índice. Se a solicitação para criar um índice contiver um alias a ser adicionado ao índice, também será necessário conceder o privilégio manage.

delete_index

Privilégio para excluir um índice.

index

Privilégio para indexar e atualizar documentos, e para atualizar mapeamentos de índice.

delete

Privilégio para excluir documentos.

read

Concede privilégios somente leitura no índice. Esses privilégios incluem get, mget, search e count. Para obter mais informações, consulte privileges-list-indices.

manage

Concede privilégios para operações de gerenciamento de índice, como gerenciar aliases, configurações, mapeamentos e modelos.

Granted fields (optional)

*

Campos do índice. * representa todos os campos.

Kibana privileges

Privileges

none

Defina como none (padrão), que nega acesso a todos os espaços do Kibana.

Importante

Versões do Kibana anteriores à 7.0 suportam apenas Base privileges, que concedem acesso a todos os espaços por padrão. O Kibana 7.0 e versões posteriores suportam Feature privileges além dos Base privileges. Os Feature privileges concedem acesso a recursos específicos do Kibana e exigem a especificação de um espaço do Kibana.

Verificação

  • Use cURL para criar e, em seguida, excluir um índice.

    [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 ~]#
  • Modifique a configuração do índice. Este exemplo define os dados do índice como dados frios.

    [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  ~]#
  • Execute operações CRUD em documentos.

    [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 ~]#
  • Faça logon no console do Kibana como o usuário.

    Uma mensagem será exibida indicando que o usuário não possui os privilégios necessários.

Perguntas frequentes

Posso usar o AccessKey ID e o AccessKey secret de um usuário do Resource Access Management (RAM) para acessar diretamente dados em um cluster do Elasticsearch?

Não. O AccessKey ID e o AccessKey secret de um usuário do Resource Access Management (RAM) servem apenas para chamar APIs de gerenciamento do Alibaba Cloud, como APIs para criar ou reiniciar instâncias e modificar configurações. Eles não permitem acessar ou manipular diretamente dados em um cluster do Elasticsearch. Para ler ou gravar dados do cluster ou executar operações de índice, use o nome de usuário e a senha criados no sistema de autenticação de segurança do X-Pack do Elasticsearch.

Por que o superusuário elastic recebe um erro 403 de privilégios insuficientes ao excluir o índice .kibana_security_session_1?

O índice .kibana_security_session_1 é um índice de sistema protegido que o Kibana usa para armazenar informações de sessão do usuário. Mesmo o usuário elastic com a função superuser não pode excluir diretamente este índice usando uma API. Trata-se de uma restrição de segurança do Elasticsearch e do Kibana, não de um erro de configuração de permissão. Se um problema com este índice causar falhas de login ou sessão, limpe o cache do navegador e faça logon novamente no console do Kibana.