“Elasticsearch é um mecanismo de pesquisa e análise incrivelmente versátil e poderoso. Pode ingerir, organizar, classificar, agregar e gerenciar rapidamente grandes quantidades de dados de texto.
Apesar de tudo isso, um dos recursos mais destacados do Elasticsearch e todo o seu ecossistema são os recursos de segurança do IronClad. Elasticsearch inclui recursos como a assinatura de solicitações HTTP e permite que apenas usuários autenticados executem operações no cluster.
Outro recurso de segurança no Elasticsearch é o uso de usuários e funções. Elasticsearch permite que você atribua funções específicas aos usuários no cluster. Eles são então usados para determinar quais ações o nome de usuário pode executar no cluster.
Elasticsearch atribuirá uma função padrão a todos os usuários criados no cluster. A função padrão permite que os usuários acessem o endpoint de autenticação, responsável pela alteração de senhas, recuperação de informações do usuário, etc.”
Nota: A função padrão também é atribuída a usuários anônimos.
O núcleo deste tutorial é dar a você os fundamentos das funções de pesquisa de elasticidade. Usando este tutorial, você descobrirá como buscar os papéis no reino nativo do Elasticsearch e ver os papéis atribuídos a um nome de usuário específico.
Vamos mergulhar.
Elasticsearch Get Papéis API
Usamos a API GET PROUNS para recuperar informações sobre funções no cluster Elasticsearch. A sintaxe da solicitação é como mostrado:
Get /_security /função
A consulta acima deve retornar todos os papéis no sistema.
Para recuperar informações sobre uma função específica, você pode usar a sintaxe como mostrado:
Get/_security/função/
Nota: Esta API exige que o usuário tenha um privilégio de gerenciamento_security no cluster.
Se a solicitação for bem -sucedida, a consulta deve retornar uma variedade de papéis.
Exemplo 1 - Recupere todas as funções no cluster
A solicitação de exemplo abaixo recuperará todas as funções no cluster Elasticsearch:
Curl -xget "http: // localhost: 9200/_security/função?Pretty = True "-h" KBN -XSRF: Relatórios "
Um exemplo de saída é mostrado abaixo:
"APM_USER":
"conjunto": [],
"índices": [
"Nomes": [
"APM-*"
],
"Privilégios": [
"ler",
"View_index_metadata"
],
"allow_restritist_indices": false
,
"Nomes": [
"Logs-APM.*"
],
"Privilégios": [
"ler",
"View_index_metadata"
],
"allow_restritist_indices": false
,
"Nomes": [
"Logs-apm-*"
],
"Privilégios": [
"ler",
"View_index_metadata"
],
"allow_restritist_indices": false
,
"Nomes": [
"Métricas-APM.*"
],
"Privilégios": [
"ler",
"View_index_metadata"
],
"allow_restritist_indices": false
,
"Nomes": [
"Métricas-apm-*"
],
"Privilégios": [
"ler",
"View_index_metadata"
],
"allow_restritist_indices": false
,
"Nomes": [
"Traces-APM.*"
],
"Privilégios": [
"ler",
"View_index_metadata"
],
"allow_restritist_indices": false
,
Nota: A saída acima foi truncada para o escopo deste tutorial.
Exemplo 2 - Obtenha informações sobre uma função específica
O exemplo abaixo retorna informações sobre o papel Kibana_admin.
Curl -xget "http: // localhost: 9200/_security/role/kibana_admin" -h "kbn -xsrf: relatórios"
As informações de função resultantes são mostradas:
"Kibana_admin":
"conjunto": [],
"Índices": [],
"formulários": [
"Aplicativo": "Kibana-.kibana ",
"Privilégios": [
"todos"
],
"recursos": [
"*"
]
],
"correr como": [],
"Metadata":
"_Reserved": verdadeiro
,
"transient_metadata":
"Enabled": verdadeiro
Recuperar informações de função no YAML
Por padrão, a API Get Papnces retornará o resultado no formato JSON. No entanto, você pode escolher um formato diferente usando o parâmetro de formato.
A sintaxe é como mostrado:
Get /_security /função?formato = json/yaml
Por exemplo, para recuperar as informações sobre o papel Kibana_admin no formato YAML, podemos executar:
Curl -xget "http: // localhost: 9200/_security/role/kibana_admin?formato = yaml "-h" kbn -xsrf: relatórios "
Saída resultante:
---
kibana_admin:
conjunto: []
índices: []
formulários:
- Aplicação: "Kibana-.kibana "
privilégios:
- "todos"
recursos:
- "*"
correr como: []
Metadados:
_Reserved: true
transient_metadata:
ativado: true
Veja as funções para um usuário específico
Se você deseja visualizar informações sobre um nome de usuário específico (incluindo suas funções), pode usar a solicitação como mostrado:
Get /_Security /Usuário
Por exemplo, suponha que tenhamos um nome de usuário "Linuxhint", podemos recuperar as informações do usuário como mostrado:
Curl -xget "http: // lochost: 9200/_security/user/linuxhint?formato = yaml "-h" kbn -xsrf: relatórios "
A solicitação acima deve retornar informações sobre o usuário no formato YAML, como mostrado:
---
Linuxhint:
Nome de usuário: "Linuxhint"
papéis:
- "Visualizador"
- "Watcher_user"
Full_name: "Linuxhint.com "
E -mail: "[email protected] "
Metadados:
ativado: true
Podemos ver que o usuário tem o visualizador e os papéis do Watcher_User_User.
Ver papéis em Kibana
Se você não deseja usar a API de funções de gatos, pode ver as funções de pesquisa de elasticidade em Kibana navegando para a gerência -> Gerenciamento de pilha.
Em seguida, navegue para a segurança -> papéis
Você pode ver e gerenciar os papéis.
Conclusão
Neste artigo, você aprendeu a usar a API do Elasticsearch Papuls para visualizar informações sobre funções específicas no cluster. Você também descobriu como ver os papéis de um determinado nome de usuário usando a API do usuário.
Obrigado pela leitura!