12.3 Protección de datos en Elasticsearch

Diversos clientes pueden acceder a los nodos del clúster de Elasticsearch como, por ejemplo, los siguientes:

  • Sentinel: para obtener y presentar datos de eventos en la consola Visualización de eventos.

  • Tareas de Spark que se ejecutan en los nodos de YARN NodeManager: para realizar una indexación masiva de los eventos recibidos desde Kafka (para SSDM).

  • Collector Manager: para realizar una indexación masiva de eventos en Sentinel con almacenamiento tradicional.

  • Otros clientes externos: para realizar operaciones personalizadas como, por ejemplo, análisis personalizados.

Sentinel proporciona un módulo auxiliar (plug-in) de seguridad para Elasticsearch denominado elasticsearch-security-plugin que lleva a cabo la autenticación y la autorización de acceso a Elasticsearch.

El módulo auxiliar (plug-in) utiliza un testigo SAML o una lista blanca para la validación en función del modo en que se conecten los clientes:

  • Cuando un cliente envía un testigo SAML junto con la petición, el módulo auxiliar (plug-in) lo autentica en el servidor de autenticación de Sentinel. Tras una autenticación correcta, el módulo auxiliar (plug-in) permite el acceso solo a los eventos filtrados para los que el cliente tiene autorización.

    Por ejemplo, la consola (cliente) Visualización de eventos muestra solo aquellos eventos de Elasticsearch que puede ver la función de un usuario.

    Para obtener información sobre las funciones y los permisos, consulte Creating a Role (Creación de una función) en la Sentinel Administration Guide (Guía de administración de Sentinel).

  • Si un cliente no puede enviar un testigo SAML, el complemento comprueba su lista blanca de clientes legítimos. Tras una validación correcta, el módulo auxiliar (plug-in) permite acceder a todos los eventos sin filtrar.

  • Cuando un cliente no envía un testigo SAML válido o no tiene permiso según la lista blanca, el módulo auxiliar (plug-in) lo considera como un cliente ilegítimo y deniega el acceso al cliente.

Esta sección proporciona información sobre cómo instalar y configurar el módulo auxiliar (plug-in) de seguridad de Elasticsearch:

12.3.1 Instalación del módulo auxiliar (plug-in) de Elasticsearch

Debe instalar el módulo auxiliar (plug-in) de seguridad de Elasticsearch en cada nodo del clúster de Elasticsearch y también en el nodo de Elasticsearch incluido en Sentinel.

Para instalar el módulo auxiliar (plug-in) de Elasticsearch (elasticsearch-security-plug-in) en el nodo de Elasticsearch incluido en Sentinel:

  1. Entre en el servidor SSDM o Sentinel Main

  2. Defina la vía de la variable de entorno JAVA_HOME, como se indica a continuación:

    export JAVA_HOME=/<Sentinel_installation_path>/opt/novell/sentinel/jdk/
  3. Instale el módulo auxiliar (plug-in):

    En Linux, entre como el usuario con el que se está ejecutando Elasticsearch y ejecute el siguiente 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

    Cuando se le solicite para continuar con la instalación, introduzca y.

  4. (Condicional) Si Elasticsearch no está escuchando en el puerto HTTP por defecto (9200), debe actualizar el número de puerto de Elasticsearch en cada entrada del archivo <vía_instalación_sentinel>/opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin/elasticsearch-ip-whitelist.txt.

    Para obtener más información, consulte Proporcionar acceso a los clientes de Elasticsearch mediante la lista blanca.

  5. Reinicie los servicios de indexación de Sentinel mediante el comando:

    rcsentinel stopSIdb
    rcsentinel startSIdb

Para instalar el módulo auxiliar (plug-in) de Elasticsearch (elasticsearch-security-plug-in) en nodos de Elasticsearch externos:

Realice los pasos siguientes en cada nodo del clúster de Elasticsearch:

  1. Entre en el servidor SSDM o Sentinel Main

  2. Copie el archivo <vía_instalación_sentinel>/etc/opt/novell/sentinel/scalablestore/elasticsearch-security-plugin*.zip en una ubicación temporal de cada nodo del clúster de Elasticsearch.

  3. Instale el módulo auxiliar (plug-in):

    En Linux, entre como el usuario con el que se está ejecutando Elasticsearch y ejecute el siguiente comando:

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

    Cuando se le solicite para continuar con la instalación, introduzca y.

  4. (Condicional) Si Elasticsearch no está escuchando en el puerto HTTP por defecto (9200), debe actualizar el número de puerto de Elasticsearch en cada entrada del archivo <directorio_instalación_elasticsearch>/plugins/elasticsearch-security-plugin/elasticsearch-ip-whitelist.txt.

    Para obtener más información, consulte Proporcionar acceso a los clientes de Elasticsearch mediante la lista blanca.

  5. Reinicie Elasticsearch.

12.3.2 Proporcionar acceso seguro a los clientes de Elasticsearch adicionales

Por defecto, los clientes de confianza, como el servidor SSDM (para la consola Visualización de eventos) y YARN NodeManagers, el servidor de Sentinel (para la consola Visualización de eventos) y RCM, tienen acceso a Elasticsearch. Si desea utilizar clientes de Elasticsearch adicionales, debe proporcionar acceso seguro a esos clientes adicionales ya sea mediante el testigo SAML o la lista blanca.

Proporcionar acceso a los clientes REST de Elasticsearch mediante el uso del testigo SAML

Si utiliza un cliente REST para tener acceso a Elasticsearch, puede incluir un testigo SAML en el encabezado de la petición, como se indica a continuación:

  1. Obtenga un testigo SAML desde el servidor de autenticación de Sentinel. Para obtener más información, consulte la documentación de la API REST disponible en Sentinel.

    Haga clic en Ayuda > APIs > Tutorial > API Security > Obtaining a SAML Token (Logon).

  2. Utilice el testigo SAML en las siguientes peticiones REST: incluya el testigo SAML en el encabezado de autorización de cada petición realizada por el cliente REST. Especifique el nombre del encabezado como Authorization y el valor del encabezado como el <testigo SAML> obtenido en el paso 1.

Proporcionar acceso a los clientes de Elasticsearch mediante la lista blanca

Sentinel rellena automáticamente por defecto una lista blanca con las direcciones IP de los clientes de Elasticsearch de confianza, como el servidor SSDM (para la consola Visualización de eventos) y YARN NodeManagers, el servidor Sentinel (para el consola Visualización de eventos) y RCM. El módulo auxiliar (plug-in) de seguridad de Elasticsearch concede acceso a Elasticsearch a todos los clientes que aparecen en su lista blanca.

Para proporcionar acceso a clientes adicionales que no envían un testigo de Sentinel válido, debe añadir la dirección IP del cliente y el número de puerto HTTP del servidor de Elasticsearch a la lista blanca con el formato dirección IP:puerto. Debe asegurarse de que los clientes externos que añada a la lista blanca sean legítimos y de confianza para evitar el acceso no autorizado.

Para actualizar la lista blanca:

  1. Entre en el servidor de Sentinel o el nodo de Elasticsearch como el usuario con el que se está ejecutando Elasticsearch.

  2. Añada la entrada <IP_cliente_Elasticsearch>:<Puerto_HTTP_destino_Elasticsearch> en el archivo:

    • <vía_instalación_sentinel>/opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin//elasticsearch-ip-whitelist.txt para el nodo de Elasticsearch incluido en Sentinel.

    • <directorio_instalación_elasticsearch>/plugins/elasticsearch-security-plugin/elasticsearch-ip-whitelist.txt para los nodos de Elasticsearch externos.

    Si hay varias entradas, añada cada una de ellas en una línea nueva y guarde el archivo.

  3. Repita los pasos indicados anteriormente en cada nodo del clúster de Elasticsearch.

12.3.3 Actualización de la configuración del módulo auxiliar (plug-in) de Elasticsearch

En los casos en que modifique la dirección IP/nombre de host y el número de puerto de los componentes de almacenamiento ampliables o la versión de Elasticsearch y el número de puerto, debe actualizar los archivos de configuración del módulo auxiliar (plug-in) de Elasticsearch como corresponda.

Realice los pasos siguientes en cada nodo del clúster de Elasticsearch:

  1. Entre en el nodo de Elasticsearch como el usuario con el que se está ejecutando Elasticsearch.

  2. (Condicional) Si ha modificado las direcciones IP de YARN NodeManager, la dirección IP del servidor SSDM o de Sentinel, las direcciones IP de RCM o el número de puerto de Elasticsearch, actualice la lista blanca para garantizar que el módulo auxiliar (plug-in) de seguridad de Elasticsearch acceda a los clientes de Elasticsearch.

    Si configura SSDM o Sentinel en modo de alta disponibilidad, añada entradas para la dirección IP física de cada nodo activo y pasivo del clúster de alta disponibilidad.

    Si modifica la dirección IP física de cualquier nodo del clúster de alta disponibilidad o añade un nuevo nodo al clúster de alta disponibilidad, actualice la lista blanca con las direcciones IP físicas de los nodos modificados o recién añadidos.

    Para obtener más información, consulte Proporcionar acceso a los clientes de Elasticsearch mediante la lista blanca.

  3. (Condicional) Si ha modificado la dirección IP de SSDM o el servidor de Sentinel, o el número de puerto del servidor Web, actualice las propiedades authServer.host y authServer.port en los siguientes archivos y reinicie Elasticsearch:

    • <vía_instalación_sentinel>/opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin/plugin-configuration.properties para el nodo de Elasticsearch incluido en Sentinel.

    • <directorio_instalación_elasticsearch>/plugins/elasticsearch-security-plugin/plugin-configuration.properties para los nodos de Elasticsearch externos.

    Si configura SSDM o Sentinel en modo de alta disponibilidad, defina la propiedad authServer.host en la dirección IP virtual del clúster de alta disponibilidad.

    Si modifica la dirección IP virtual del clúster de alta disponibilidad, actualice la propiedad authServer.host a la dirección IP virtual modificada.

  4. (Condicional) Si ha actualizado Elasticsearch a una versión más reciente, actualice la propiedad elasticsearch.version en los siguientes archivos y reinicie Elasticsearch:

    • /opt/novell/sentinel/3rdparty/elasticsearch/plugins/elasticsearch-security-plugin/plugin-descriptor.properties para el nodo de Elasticsearch incluido en Sentinel.

    • <directorio_instalación_elasticsearch>/plugins/elasticsearch-security-plugin/plugin-descriptor.properties para los nodos de Elasticsearch externos.