12.3 Protegendo dados no Elasticsearch

Os nós de cluster do Elasticsearch podem ser acessados por vários clientes, como os seguintes:

  • Sentinel: para buscar e apresentar dados de eventos no painel de controle Visualização de Eventos.

  • Tarefas do Spark em execução nos nós do NodeManager do YARN: para executar a indexação em massa dos eventos recebidos do Kafka. (para SSDM)

  • Gerenciador de Coletor: para realizar a indexação em massa de eventos no Sentinel com o armazenamento tradicional.

  • Outros clientes externos: para executar operações personalizadas, como análises personalizadas.

O Sentinel fornece um plug-in de segurança para o Elasticsearch denominado elasticsearch-security-plugin, que autentica e autoriza o acesso ao Elasticsearch.

O plug-in usa um token SAML ou uma lista de permissões para validação, dependendo de como os clientes se conectam:

  • Quando um cliente envia um token SAML junto com a solicitação, o plug-in autentica o token no servidor de autenticação do Sentinel. Após a autenticação bem-sucedida, o plug-in permite acesso apenas aos eventos filtrados para os quais o cliente está autorizado.

    Por exemplo, o painel de controle Visualização de Eventos (cliente) exibe apenas os eventos do Elasticsearch que uma função do usuário está autorizada a ver.

    Para obter informações sobre funções e permissões, consulte Criando uma função no Guia de Administração do Sentinel.

  • Quando um cliente não pode enviar um token SAML, o plug-in verifica sua lista de permissões de clientes legítimos. Após a validação bem sucedida, o plug-in permite o acesso a todos os eventos sem filtragem.

  • Quando um cliente não envia um token SAML válido ou não é permitido pela lista de permissões, o plug-in o considera um cliente ilegítimo e nega o acesso ao cliente.

Esta seção fornece informações sobre como instalar e configurar o plug-in de segurança do Elasticsearch:

12.3.1 Instalando o plug-in de segurança do Elasticsearch

Você deve instalar o plug-in de segurança do Elasticsearch em cada nó do cluster Elasticsearch e também no nó do Elasticsearch incluído no Sentinel.

Para instalar o elasticsearch-security-plug-in no nó do Elasticsearch incluído no Sentinel:

  1. Efetue login no servidor principal ou no servidor SSDM do Sentinel.

  2. Defina o caminho para a variável de ambiente JAVA_HOME da seguinte forma:

    export JAVA_HOME=/<Sentinel_installation_path>/opt/novell/sentinel/jdk/
  3. Instale o plug-in:

    Para Linux, efetue login como o usuário que o Elasticsearch está executando e execute o seguinte comando:

    <sentinel_installation_path>/opt/novell/sentinel/3rdparty/elasticsearch/bin/elasticsearch-plugin install file://localhost/<Sentinel_installation_path>/etc/opt/novell/sentinel/scalablestore/elasticsearch-security-plugin*.zip --verbose

    Quando solicitado a continuar com a instalação, digite y.

  4. (Condicional) Se o Elasticsearch não estiver escutando na porta HTTP padrão (9200), você deverá atualizar o número da porta do Elasticsearch em cada entrada do arquivo <caminho_de_instalação_do_Sentinel>/opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin/elasticsearch-ip-whitelist.txt.

    Para obter mais informações, consulte Fornecendo acesso aos clientes do Elasticsearch com a lista de permissões.

  5. Reinicie os serviços de indexação no Sentinel usando o comando:

    rcsentinel stopSIdb
    rcsentinel startSIdb

Para instalar o elasticsearch-security-plug-in em nós externos do Elasticsearch:

Execute as etapas a seguir em cada nó no cluster do Elasticsearch:

  1. Efetue login no servidor principal ou no servidor SSDM do Sentinel.

  2. Copie o arquivo <caminho_de_instalação_do_sentinel>/etc/opt/novell/sentinel/scalablestore/elasticsearch-security-plugin*.zip para um local temporário em cada nó no cluster do Elasticsearch.

  3. Instale o plug-in:

    Para Linux, efetue login como o usuário que o Elasticsearch está executando e execute o seguinte comando:

    <elasticsearch_install_directory>/bin/elasticsearch-plugin install file://localhost/<full path of elasticsearch-security-plugin*.zip file> --verbose

    Quando solicitado a continuar com a instalação, digite y.

  4. (Condicional) Se o Elasticsearch não estiver escutando na porta HTTP padrão (9200), você deverá atualizar o número da porta do Elasticsearch em cada entrada do arquivo <diretório_de_instalação_do_elasticsearch>/plugins/elasticsearch-security-plugin/elasticsearch-ip-whitelist.txt.

    Para obter mais informações, consulte Fornecendo acesso aos clientes do Elasticsearch com a lista de permissões.

  5. Reinicie o Elasticsearch.

12.3.2 Fornecendo acesso seguro a clientes adicionais do Elasticsearch

Por padrão, os clientes confiáveis, como o servidor SSDM (para o painel de controle Visualização de Eventos) e o YRN NodeManagers, o servidor do Sentinel (para o painel de controle Visualização de Eventos) e o RCM têm acesso ao Elasticsearch. Se você quiser usar clientes adicionais do Elasticsearch, deverá fornecer acesso seguro a esses clientes adicionais usando o token SAML ou a lista de permissões.

Fornecendo acesso aos clientes REST do Elasticsearch usando o token SAML

Se você estiver usando um cliente REST para acessar o Elasticsearch, será possível incluir um token SAML no cabeçalho da solicitação da seguinte maneira:

  1. Obtenha um token SAML no servidor de autenticação do Sentinel. Para obter mais informações, consulte a documentação da API REST disponível no Sentinel.

    Clique em Ajuda > APIs > Tutorial > Segurança de API > Obtendo um Token SAML (Logon).

  2. Use o token SAML nas solicitações REST subsequentes: inclua o token SAML no cabeçalho Autorização de cada solicitação feita pelo cliente REST. Especifique o nome do cabeçalho como Autorização e o valor do cabeçalho como o <token SAML> obtido na Etapa 1.

Fornecendo acesso aos clientes do Elasticsearch com a lista de permissões

Por padrão, o Sentinel preenche automaticamente uma lista de permissões com os endereços IP dos clientes confiáveis do Elasticsearch, como o servidor SSDM (para o painel de controle Visualização de Eventos) e o YRN NodeManagers, o servidor do Sentinel (para o painel de controle Visualização de Eventos) e o RCM. O plug-in de segurança do Elasticsearch concede acesso ao Elasticsearch para todos os clientes listados em sua lista de permissões.

Para fornecer acesso a clientes adicionais que não enviam um token do Sentinel válido, você deve adicionar o endereço IP do cliente e o número da porta HTTP do servidor Elasticsearch à lista de permissões no formato Endereço IP:porta. Você deve verificar se os clientes externos adicionados à lista de permissões são legítimos e confiáveis para impedir qualquer acesso não autorizado.

Para atualizar a lista de permissões:

  1. Efetue login no servidor do Sentinel ou no nó do Elasticsearch como o usuário no qual o Elasticsearch está sendo executado.

  2. Adicione a entrada <IP_do_Cliente_do_Elasticsearch>:<Porta_HTTP_do_Elasticsearch_de_Destino> ao arquivo:

    • <caminho_de_instalação_do_Sentinel>/opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin//elasticsearch-ip-whitelist.txt para o nó do Elasticsearch incluído no Sentinel.

    • <diretório_de_instalação_do_elasticsearch>/plugins/elasticsearch-security-plugin/elasticsearch-ip-whitelist.txt para nós do Elasticsearch externos.

    Se houver várias entradas, adicione cada entrada em uma nova linha e grave o arquivo.

  3. Repita as etapas acima em cada nó do cluster do Elasticsearch.

12.3.3 Atualizando a configuração do plug-in do Elasticsearch

Nos casos em que você modificar o endereço IP/nome do host e o número da porta dos componentes de armazenamento escaláveis ou a versão e o número da porta do Elasticsearch, você deverá atualizar os arquivos de configuração do plug-in do Elasticsearch adequadamente.

Execute as etapas a seguir em cada nó do cluster do Elasticsearch:

  1. Efetue login no nó do Elasticsearch como o usuário no qual o Elasticsearch está sendo executado.

  2. (Condicional) Se você modificou os endereços IP do NodeManager YARN, o endereço IP do servidor SSDM ou Sentinel, os endereços IP RCM ou o número da porta Elasticsearch, atualize a lista de permissões para verificar se o plug-in de segurança do Elasticsearch concede acesso aos clientes Elasticsearch.

    Se você estiver configurando o SSDM ou o Sentinel no modo HA, adicione entradas para o endereço IP físico de cada nó ativo e nó passivo do cluster de alta disponibilidade.

    Se você modificar o endereço IP físico de qualquer nó do cluster de alta disponibilidade ou adicionar um novo nó ao cluster de alta disponibilidade, atualize a lista de permissões com os endereços IP físicos dos nós modificados ou recém-adicionados.

    Para obter mais informações, consulte Fornecendo acesso aos clientes do Elasticsearch com a lista de permissões.

  3. (Condicional) Se você modificou o endereço IP do SSDM, o endereço IP do servidor do Sentinel ou o número da porta do servidor Web, atualize as propriedades authServer.host e authServer.port nos seguintes arquivos e reinicie o Elasticsearch:

    • <caminho_de_instalação_do_Sentinel>/opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin/plugin-configuration.properties para o nó do Elasticsearch incluído no Sentinel.

    • <diretório_de_instalação_do_elasticsearch>/plugins/elasticsearch-security-plugin/plugin-configuration.properties para nós externos do Elasticsearch.

    Se você estiver configurando o SSDM ou o Sentinel no modo HA, defina a propriedade authServer.host para o endereço IP virtual do cluster HA.

    Se você modificar o endereço IP virtual do cluster de HA, atualize a propriedade authServer.host para o endereço IP virtual modificado.

  4. (Condicional) Se você fez o upgrade do Elasticsearch para uma versão mais recente, atualize a propriedade elasticsearch.version nos seguintes arquivos e reinicie o Elasticsearch:

    • /opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin/plugin-descriptor.properties para o nó o Elasticsearch incluído no Sentinel.

    • <diretório_de_instalação_do_elasticsearch>/plugins/elasticsearch-security-plugin/plugin-descriptor.properties para nós externos do Elasticsearch.