Configuração de Autenticação e Controle de Acesso no Elastic Stack 8.3.2

Ajustes de Segurança no Elasticsearch

Para habilitar o controle de acesso na versão 8.3.2 do Elastic Stack, o primeiro passo consiste em modificar o arquivo de configuração elasticsearch.yml. É fundamental ativar os recursos de segurança do X-Pack e configurar o SSL para o transporte entre nós do cluster.

# Ativação das funcionalidades de segurança
xpack.security.enabled: true
xpack.security.enrollment.enabled: false

# Configuração de criptografia para comunicação HTTP (Kibana, Logstash, etc)
xpack.security.http.ssl:
  enabled: false
  keystore.path: certs/http.p12

# Configuração de criptografia e autenticação mútua entre nós
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12

Gerenciamento da Conta Administrativa

Após as alterações de configuração, é necessário definir uma senha para o usuário padrão elastic. Utilize o utilitário de linha de comando para gerar uma nova credencial:

sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

O sistema retornará uma senha gerada automaticamente, por exemplo: ABC123xyz_SecretPass.

Restrição do Usuário Elastic no Kibana

Ao tentar utilizar o usuário elastic diretamente no arquivo kibana.yml para a conexão interna entre os serviços, a versão 8.3.2 apresenta um erro de validação:

FATAL Error: [config validation of [elasticsearch].username]: value of "elastic" is forbidden.

Este comportamento ocorre porque o elastic é uma conta de superusuário e o Kibana exige uma conta de serviço ou um usuário com permissões específicas para gerenciar seus índices internos.

Criação e Atribuição de Perfis para Novos Usuários

Para contornar a restrição acima e garantir uma operação segura, deve-se criar um usuário dedicado via terminal:

# Criando o usuário 'admin_servico'
sudo /usr/share/elasticsearch/bin/elasticsearch-users useradd admin_servico -p SenhaSegura@123

Após a criação, é necessário atribuir os papéis (roles) adequados para que o usuário possa monitorar o cluster e gerenciar as funções do Kibana. Os comandos abaixo gerenciam essas permissões:

# Adicionando permissões de superuser e kibana_system
sudo /usr/share/elasticsearch/bin/elasticsearch-users roles -a superuser admin_servico
sudo /usr/share/elasticsearch/bin/elasticsearch-users roles -a kibana_system admin_servico

# Para verificar as atribuições atuais do usuário:
sudo /usr/share/elasticsearch/bin/elasticsearch-users roles -v admin_servico

Com essas permissões, o usuário admin_servico poderá ser configurado no kibana.yml sem gerar erros de validação.

Integração com Logstash

A configuração do pipeline do Logstash também deve ser atualizada para incluir as novas credenciais de autenticação no bloco de saída (output) para o Elasticsearch:

output {
  elasticsearch {
    hosts => ["http://172.31.0.135:9200"]
    index => "app-logs-%{+YYYY.MM.dd}"
    user => "admin_servico"
    password => "SenhaSegura@123"
  }
}

Tags: elasticsearch Kibana Logstash X-Pack Security

Publicado em 6-17 04:50