Loading

Vulnerabilidad Log4j2 de Apache (Log4shell) - Pasos de mitigación de Tableau Server

Fecha de publicación: Dec 9, 2022
Descripción
Vulnerabilidades recientemente reveladas permiten la ejecución de código de forma remota en productos que utilizan la biblioteca Log4j de Apache

Cause

Vulnerabilidades de seguridad CVE-2021-44228 y CVE-2021-45046 en la biblioteca Log4j 2 de Apache.
Solución

Opción 1: Actualizar Tableau

 

Si es un cliente con mantenimiento activo y no actualizó desde una versión afectada (cualquier versión de producto anterior al 15 de diciembre de 2021), o bien actualizó a la versión de dicha fecha, actualice a una de las versiones más recientes.

NOTA IMPORTANTE: Después de actualizar a las versiones del producto del 19 de diciembre de 2021 o posteriores, es posible que haya casos donde los archivos heredados de procesos configurados anteriormente estén presentes en el sistema de archivos. Por ejemplo, después de realizar cambios de topología para cambiar recuentos de procesos o trasladar procesos a otro nodo de Tableau Server. Es seguro eliminar versiones de log4j-core-2.15 o anteriores. Nunca se accede a estos archivos como parte del funcionamiento de Tableau Server y pueden eliminarse con seguridad si se desea. De manera alternativa, al volver a implementar los servicios se limpiarán también los directorios y se implementarán los archivos actualizados (consulte la Guía de la Ayuda en línea de configuración de nodos).
 
Las versiones del producto Tableau del 15 de diciembre de 2021 actualizaron los archivos de Log4j2 a la versión 2.15. Es posible que aún resten componentes de diagnosis o auxiliares. Hemos mitigado estos componentes restantes con cambios de configuración que desactivan la función de consulta JNDI vulnerable.
La versión del producto Tableau del 19 de diciembre de 2021 integró la versión 2.16 de Log4j, que desactiva la consulta JNDI de forma predeterminada. Esta acción soluciona tanto CVE-2021-44228 como CVE-2021-45046.
  • Tableau Server 2021.4.2+, 2021.3.6+, 2021.2.7+, 2021.1.10+, 2020.4.13+
Actualizando las versiones del producto desde el 19 de diciembre de 2021 estará solucionando los problemas de seguridad identificados en estos momentos en CVE-2021-44228 y CVE-2021-45046

 

Opción 2: Ejecutar los pasos de mitigación detallados en la Opción 2 si:

Actualizó a la versión del producto del 15 de diciembre de 2021 y no puede actualizar a una más reciente (por estar fuera de mantenimiento, fuera del plazo de actualización de una empresa, etc.).
Tiene una versión afectada (cualquier versión de producto publicada antes del 15 de diciembre de 2021) y no puede actualizar a una más reciente.

NOTA:
  • Estos pasos no están destinados a ejecutarse en versiones del producto del 19 de diciembre de 2021, que actualizaron log4j a la versión 2.16.
  • Estos pasos de mitigación son para las versiones v2020.1 - v2021.4 de Tableau Server anteriores a las versiones del producto del 19 de diciembre de 2021 y posteriores.

Estas instrucciones eliminan jndilookup.class de almacenes vulnerables. Existen dos componentes que no funcionan con la retirada de esa función y sustituimos esos almacenes de componentes específicos por la versión 2.16. Se requiere Python para ejecutar la secuencia de comandos. La secuencia garantiza que encontremos todas las instancias del archivo JndiLookup.class incluso dentro de bibliotecas java anidadas. 

Tableau Server

NOTA:
  • Planifique al menos una hora de no disponibilidad, ya que tenemos que explorar todos los archivos comprimidos java para garantizar un remedio efectivo. No altere los pasos intentando modificar manualmente archivos log4j. Aunque estos pasos se han probado en todas las versiones principales admitidas, así como en las versiones 2020.1-2020.3, Tableau sugiere realizar una instantánea de su servidor y realizar una copia de seguridad antes de iniciar cualquier modificación manual.
  • Si actualizó a las versiones del producto del 19 de diciembre de 2021 o posteriores, no es necesario que realice acciones, ya que desactivamos la consulta JNDI para estas versiones.

Tableau Server para Windows

Para ver mejor los pasos que se muestran en el siguiente vídeo, amplíe la sección. Nota: El video no tiene sonido.

Paso 1: Realice lo siguiente en cada nodo


1. Descargue e instale Python 3.10: https://www.python.org/downloads/.

2. Bajo “Download the latest version for Windows” (Descargar la versión más reciente para Windows), seleccione “Download Python 3.10.1”.
 
Vínculo directo: Descargar el instalador para Windows (64 bits) https://www.python.org/ftp/python/3.10.1/python-3.10.1-amd64.exe

3. Vaya a la ubicación donde realizó la descarga. como, por ej., C:\users\<nombre de usuario>\Downloads.

4. Haga clic con el botón derecho en Python-3.10.1-amd64 y seleccione “Ejecutar como administrador”.

5. Cuando se inicie el programa de instalación, seleccione “Add Python 3.10 to path” (Agregar Python 3.10 a ruta).

6. Seleccione “Instalar ahora” o “Personalizar la instalación” para configurar una ruta alternativa si fuese necesaria.

Si ve el error “La directiva del sistema prohíbe esta instalación”, vuelva a ejecutar desde las descargas haciendo clic con el botón derecho y seleccionando “Ejecutar como administrador”.

7. Al final de la instalación, seleccione “Disable path length limit” (Desactivar límite de longitud de ruta).

8. Descargue la secuencia de comandos Python requerida y los almacenes Log4j de la versión 2.16 para Windows en el archivo remove_jndi.zip adjunto a este artículo, que contiene:

  • log4j-api-2.16.0.jar
  • log4j-core-2.16.0.jar
  • log4j-slf4j-impl-2.16.0.jar
  • remove_jndilookup_win.py
8a. Abra un nuevo símbolo del sistema administrativo para garantizar que Python esté en la ruta.

8b. Cree el directorio c:\remove_jdni introduciendo el siguiente comando:
 
mkdir c:\remove_jndi
 
8c. Traslade los cuatro archivos anteriores a este directorio. Nota: Este directorio C:\remove_jndi se tomará como referencia como la ubicación de estos archivos en las instrucciones que aparecen a continuación.
 
Si este es el primer nodo en el que está ejecutando estas instrucciones, detenga Tableau Server.
 
tsm stop
 

Paso 2: Detener los servicios administrativos 

1. Después de que Tableau Server se haya detenido, detenga los servicios administrativos en cada nodo ejecutando stop-administative-services.cmd desde el directorio \packages\scripts.<versión>. De forma predeterminada, es:
 
Ruta de ejemplo “C:\Program Files\Tableau\Tableau Server\packages\scripts.<versión>”

2. Cambie de directorio al directorio scripts<versión> dentro de la carpeta de los paquetes dentro de su instalación:
 
El comando que aparece a continuación utiliza una variable de entorno para resolver a la ruta específica de cualquier versión.

cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\scripts.%TABLEAU_SERVER_DATA_DIR_VERSION%"

3. Ejecute la secuencia de comandos para detener los servicios administrativos:
 
a. stop-administrative-services.cmd

b. Ejecute la secuencia de comandos remove_jndilookup para eliminar las clases jndilookup de la ubicación de Tableau Server en la que realizó la instalación:
 
python.exe c:\remove_jndi\remove_jndilookup_win.py "C:\Program Files\Tableau\Tableau Server"

No agregue una “\” al final de la ruta o aparecerá un error.

Al final de cada ejecución de remove_jndilookup_win.py, verá registros con los archivos de los que se eliminó JndiLookup.class. Ejemplo:

“Findings:

Detected org/apache/logging/log4j/core/lookup/JndiLookup.class in C:\Program Files\Tableau\Tableau Server\<ruta al archivo>”

c. Si se instaló en la ubicación predeterminada, tendrá que ejecutar una segunda vez:
 
python.exe c:\remove_jndi\remove_jndilookup_win.py "c:\ProgramData\Tableau\Tableau Server"
 
No agregue una “\” al final de la ruta o aparecerá un error.


Para las versiones 2020.1 a la 2020.3 y las versiones de mantenimiento de diciembre con fecha de 15 de diciembre de 2021 (2021.4.1, 2021.3.5, 2021.2.6, 2021.1.9, 2020.4.12) salte al Paso 4, Iniciar los servicios administrativos
 

Paso 3: Para las versiones 2020.4 y más recientes, con excepción de las versiones de mantenimiento de diciembre, copie los archivos Log4j 2.16 en los directorios elasticsearch y solr una vez ejecutada la secuencia de comandos Python (dos veces si se instaló en la ubicación predeterminada).


1. Encuentre su directorio de búsqueda elastic dentro de su instalación
 
a. Ejemplo: C:\Program Files\Tableau\Tableau Server\packages\elasticsearch.20213.21.0917.1006

b. cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\lib"

2. Mientras se encuentra dentro del directorio elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\lib, copie log4j-core-2.16.0.jar y log4j-api.2.16.0.jar al directorio actual
 
NOTA: Las instrucciones que aparecen a continuación utilizan un punto que significa “directorio actual”.

a. copy c:\remove_jndi\log4j-core-2.16.0.jar .

b. copy c:\remove_jndi\log4j-api-2.16.0.jar .

3. Mientras se encuentra dentro del directorio elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\lib, elimine las versiones antiguas
 
a. del log4j-api-2.11.1.jar

b. del log4j-core-2.11.1.jar

4. Luego cambie al directorio plugins\search-guard7 bajo “C:\Program Files\Tableau\Tableau Server\packages\elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%”
cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\plugins\search-guard-7"
 
5. Elimine el almacén antiguo:
 
del log4j-slf4j-impl-2.11.1.jar

6. Copie el nuevo almacén con el nombre del almacén antiguo:
 
copy c:\remove_jndi\log4j-slf4j-impl-2.16.0.jar log4j-slf4j-impl-2.11.1.jar
 
7. Cambie de directorio a la carpeta packages\solr7.%TABLEAU_SERVER_DATA_DIR_VERSION%\server\lib\ext

cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\solr7.%TABLEAU_SERVER_DATA_DIR_VERSION%\server\lib\ext"
 
8. Copie los tres almacenes de la versión 2.16.0 al directorio de trabajo actual (representado por un punto):

copy c:\remove_jndi\log4j*.jar .
 
9. Hay un archivo de almacén adicional para eliminar en el directorio elasticserver; en una instalación predeterminada, la ruta al almacén está bajo ProgramData. Cambie de directorio a: “C:\ProgramData\Tableau\Tableau Server\data\tabsvc\services\elasticserver_0.%TABLEAU_SERVER_DATA_DIR_VERSION%\plugins\search-guard-7”
 
 
cd "%TABLEAU_SERVER_DATA_DIR%\data\tabsvc\services\elasticserver_0.%TABLEAU_SERVER_DATA_DIR_VERSION%\plugins\search-guard-7"
 
 
10. Elimine log4j-slf4j-impl-2.11.1.jar
 
del log4j-slf4j-impl-2.11.1.jar

Paso recomendado: Verifique que no queden archivos JndiLookup.class restantes anteriores a la versión 2.16 en su producto.

1. Ejecute remove_jndilookup con el indicador “--dryrun” para indicar a la secuencia de comandos que explore los directorios, pero no realice acciones sobre los archivos:

python.exe c:\remove_jndi\remove_jndilookup_win.py --dryrun "C:\Program Files\Tableau\Tableau Server" > verification.txt

python.exe c:\remove_jndi\remove_jndilookup_win.py --dryrun "c:\ProgramData\Tableau\Tableau Server" >> verification.txt


2. Si la sección "Findings:" del resultado de la ejecución sin acciones en el archivo verification.txt no contiene entradas, esto significa que no encontró más almacenes que contuvieran JndiLookup.class.


Paso 4: Iniciar servicios administrativos; aplique un cambio de configuración para garantizar que nuestros cambios se propagan y luego inicie el servidor.

 
1. En cada nodo, inicie los servicios administrativos TSM:
 
a. cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\scripts.%TABLEAU_SERVER_DATA_DIR_VERSION%"
 
b. start-administrative-services.cmd
 
NOTA: Una vez que cada nodo de Tableau Server haya iniciado los servicios administrativos, es necesario realizar un cambio de configuración para regenerar los archivos war:

2. Volviendo al nodo inicial, identifique el valor actual para gateway.timeout:
 
tsm configuration get -k gateway.timeout
 
3. Aumente el valor de gateway.timeout en 1:
 
tsm configuration set -k gateway.timeout -v <valor actual +1, por ejemplo 7201 si se establece con el valor predeterminado>

4. Aplique los cambios pendientes:
 
tsm pending-changes apply

5. Inicie Tableau Server
 
tsm start
 
Ahora los archivos JdniLookup.class deberían estar eliminados de todos los archivos .jar y .war en Tableau Server.

Tableau Server para Linux

NO EJECUTE LOS PASOS QUE APARECEN A CONTINUACIÓN COMO root. Utilice sudo en su lugar.

NOTA: Estas instrucciones suponen que Python está instalado en cada nodo del clúster.

Paso 1: Realice lo siguiente en cada nodo


1. Descargue la secuencia de comandos Python requerida y los almacenes Log4j de la versión 2.16 para Linux en el archivo remove_jndi_linux.tar.gz adjunto a este artículo, que contiene:
  • log4j-api-2.16.0.jar
  • log4j-core-2.16.0.jar
  • log4j-slf4j-impl-2.16.0.jar
  • remove_jndilookup.py
2. Unzip remove_jndi_linux.tar.gz
 
sudo tar -xzvf remove_jndi_linux.tar.gz
 
3. Cree un directorio con el nombre /elasticJars en su directorio inicial y elimine los 3 archivos de almacén del directorio /elasticJars:
 
mkdir ~/elasticJars
mv ./log4j* ~/elasticJars

4. Establezca los permisos de los archivos de almacén en elasticJars en -rw-r--r--
 
sudo chmod -R 644 ./elasticJars/

5. Establezca los permisos de la secuencia de comandos remove_jndilookup.py en Execute

sudo chmod 744 ./remove_jndilookup.py

6. Detenga Tableau Server

tsm stop
 
7. Asegúrese de que la variable de entorno TABLEAU_SERVER_DATA_DIR_VERSION está disponible en su entorno.

env | grep TABLEAU_SERVER_DATA_DIR_VERSION

7a. Si el comando anterior no devuelve una versión, ejecute el siguiente comando para establecer la variable para esta sesión:

export $(cat /etc/opt/tableau/tableau_server/environment.bash | grep TABLEAU_SERVER_DATA_DIR_VERSION | xargs)
 
7b. Verifique que TABLEAU_SERVER_DATA_DIR_VERSION esté ahora disponible en su entorno.

env | grep TABLEAU_SERVER_DATA_DIR_VERSION
 

Paso 2: Detener los servicios administrativos para cada nodo

NOTA: Repita todos los pasos siguientes en cada nodo. Estos pasos suponen la ubicación de instalación predeterminada: /opt/tableau/tableau_server/packages
 

1. Detener los servicios administrativos

sudo /opt/tableau/tableau_server/packages/scripts.$TABLEAU_SERVER_DATA_DIR_VERSION/stop-administrative-services

2. Ejecute la secuencia de comandos remove_jndilookup.py para eliminar los archivos JndiLookup.class de todos los almacenes del directorio de paquetes.

sudo ./remove_jndilookup.py /opt/tableau/tableau_server/packages

NOTA: Una vez termine la secuencia de comandos remove_jndilookup.py, ejecute la secuencia de comandos una segunda vez en el directorio de datos. De forma predeterminada, es /var/opt/tableau/tableau_server.
 

3. En primer lugar, realice una copia de la secuencia de comandos del directorio de inicio del usuario sin privilegios, que tiene el nombre tableau de forma predeterminada

sudo cp ./remove_jndilookup.py /var/opt/tableau/tableau_server

4. Cambie la propiedad de la secuencia de comandos al usuario y grupo tableau.
 
 
sudo chown tableau:tableau /var/opt/tableau/tableau_server/remove_jndilookup.py
 

5. Inicie una sesión como el usuario sin privilegios.

sudo su -l tableau

6. Ejecute la secuencia de comandos para eliminar los archivos JndiLookup.class de los almacenes del directorio de datos.

./remove_jndilookup.py /var/opt/tableau/tableau_server

7. Salga del shell de Tableau.

exit
 

Para las versiones 2020.1 a la 2020.3 y las versiones de mantenimiento de diciembre con fecha de 15 de diciembre de 2021 (Tableau 2021.4.1, 2021.3.5, 2021.2.6, 2021.1.9, 2020.4.12), salte al Paso 4, Iniciar los servicios administrativos
 

Paso 3: Para las versiones 2020.4 y más recientes, con excepción de las versiones de mantenimiento de diciembre, copie los archivos Log4j 2.16 en el directorio elasticsearch una vez ejecutada dos veces la secuencia de comandos Python.

 
1. En cada nodo, copie los almacenes desde ~/elasticJars a los destinos y elimine los almacenes antiguos

sudo cp ./elasticJars/log4j-api-2.16.0.jar /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/

sudo cp ./elasticJars/log4j-core-2.16.0.jar /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/

sudo cp ./elasticJars/log4j-slf4j-impl-2.16.0.jar /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/plugins/search-guard-7/log4j-slf4j-impl-2.11.1.jar

sudo rm /var/opt/tableau/tableau_server/data/tabsvc/services/elasticserver_0.$TABLEAU_SERVER_DATA_DIR_VERSION/plugins/search-guard-7/log4j-slf4j-impl-2.11.1.jar

sudo rm /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/log4j-api-2.11.1.jar

sudo rm /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/log4j-core-2.11.1.jar
 

Paso recomendado: Verifique que no queden archivos JndiLookup.class restantes anteriores a la versión 2.16 en su producto. 

Luego puede ejecutar remove_jndilookup con el indicador --dryrun para hacer que la secuencia de comandos explore los directorios pero no realice acciones sobre los archivos:

1. Ejecute la secuencia de comandos remove_jndilookup.py con el indicador --dryrun en el directorio de instalación para que la secuencia de comandos explore el directorio pero no realice ninguna acción sobre los archivos.

sudo ./remove_jndilookup.py --dryrun /opt/tableau/tableau_server/packages > verification.txt

NOTA: Una vez termine la secuencia de comandos remove_jndilookup.py, ejecute la secuencia de comandos una segunda vez en el directorio de datos para validar el directorio de datos. De forma predeterminada, es /var/opt/tableau/tableau_server.

2. En primer lugar, realice una copia de la secuencia de comandos del directorio de inicio del usuario sin privilegios, que tiene el nombre tableau de forma predeterminada

sudo cp ./remove_jndilookup.py /var/opt/tableau/tableau_server

3. Cambie la propiedad de la secuencia de comandos al usuario y grupo tableau.

 sudo chown tableau:tableau /var/opt/tableau/tableau_server/remove_jndilookup.py

5. Inicie una sesión como el usuario sin privilegios.

sudo su -l tableau

6. Ejecute la secuencia de comandos con el indicador --dryrun en el directorio de datos para que la secuencia de comandos explore el directorio pero no realice ninguna acción sobre los archivos.

./remove_jndilookup.py –dryrun /var/opt/tableau/tableau_server > datadirverification.txt

Si la sección "Findings:" del resultado de la ejecución sin acciones en los archivos verification.txt y datadirverification.txt no contienen entradas, esto significa que no se encontraron más almacenes que contuvieran JndiLookup.class.
 

7. Salga del shell de Tableau.

exit
 

Paso 4: Iniciar los servicios administrativos

 
1. En cada nodo, inicie los servicios administrativos:

sudo /opt/tableau/tableau_server/packages/scripts.$TABLEAU_SERVER_DATA_DIR_VERSION/start-administrative-services

NOTA: Una vez que cada nodo de Tableau Server haya iniciado los servicios administrativos, es necesario realizar un cambio de configuración para regenerar los archivos war:

2. 2. Volviendo al nodo inicial, identifique el valor actual para gateway.timeout:

tsm configuration get -k gateway.timeout

3. Aumente el valor de gateway.timeout en 1:

tsm configuration set -k gateway.timeout -v <valor actual +1, por ejemplo 7201 si se establece con el valor predeterminado>

4. Aplique los cambios pendientes:
 
 
tsm pending-changes apply
 

5. Inicie Tableau Server

tsm start
 
Ahora los archivos JdniLookup.class deberían estar eliminados de todos los archivos .jar y .war en Tableau Server.
 

Opción 3: Mitigue la vulnerabilidad estableciendo la Variable de entorno del sistema para las versiones v2020.4 y más recientes de Tableau Server (solo para Tableau Server).

NOTA: Esta es una mitigación temporal y parcial para CVE-44228 que modificará la variable de entorno para todos los procesos Java en el equipo.
 

Instrucciones para Linux


1. Detenga Tableau Server

tsm stop

2. Detenga los servicios administrativos TSM. Ejecute la siguiente secuencia de comandos:

sudo /opt/tableau/tableau_server/packages/scripts.<version>/stop-administrative-services

3. Cambie al usuario sin privilegios (el usuario predeterminado es tableau).

sudo su -l tableau

4. Cree el archivo log4j.conf con la variable para mitigar la vulnerabilidad.

echo LOG4J_FORMAT_MSG_NO_LOOKUPS=true >> ~/.config/systemd/tableau_server.conf.d/log4j.conf

5. Salga del shell de Tableau. Ejecute el siguiente comando:

exit

6. Inicie los servicios administrativos TSM. Ejecute la siguiente secuencia de comandos:

sudo /opt/tableau/tableau_server/packages/scripts.<version>/start-administrative-services

7. Repita los pasos del 2 al 6 para cada nodo del clúster si está ejecutando una implementación con nodos múltiples.
 

8. Inicie TSM.

tsm start

9. Después de reiniciar, ejecute el comando pgrep -l run- para obtener el pid de uno de los procesos de Tableau.
 

10. Ejecute las cadenas sudo /proc/<pid>/environ donde <pid> es uno de los pids devueltos en el paso 9.
 

11. Verifique que LOG4J_FORMAT_MSG_NO_LOOKUPS=true existe en el resultado del paso 10.
 
 

Instrucciones para Windows

 

1. Abra la ventana Administrative PowerShell.
 

2. En el nodo inicial, detenga Tableau Server.

tsm stop

3. En cada nodo, detenga los servicios administrativos TSM. Ejecute la siguiente secuencia de comandos:

C:\Program Files\Tableau\Tableau Server\packages\scripts.<versión>\stop-administrative-services.cmd

4. Cree una variable de entorno del sistema LOG4J_FORMAT_MSG_NO_LOOKUPS y establézcala en true; un atajo para hacer esto con PowerShell es:
 
[System.Environment]::SetEnvironmentVariable(‘LOG4J_FORMAT_MSG_NO_LOOKUPS’,‘true’,[System.EnvironmentVariableTarget]::Machine)

5. Asegúrese de que los pasos del 3 al 4 se completaron en cada nodo del clúster si está ejecutando una implementación con nodos múltiples.
 

6. En cada nodo, inicie los servicios administrativos TSM. Ejecute la siguiente secuencia de comandos:

C:\Program Files\Tableau\Tableau Server\packages\scripts.<versión>\start-administrative-services.cmd

7. En el nodo inicial, inicie Tableau Server.

tsm start

8. Abra una ventana cmd administrativa y verifique que la variable de entorno existe ejecutando el conjunto de comandos. Debe existir la variable LOG4J_FORMAT_MSG_NO_LOOKUPS=true en el resultado del comando
Recursos adicionales
Visite el sitio Trust de Salesforce para obtener más información que detalla el estado de Tableau Cloud.
Para obtener más información, consulte:
Número del artículo de conocimiento

001534225

Archivos adjuntos

remove_jndi_linux.tar.gz

1846 KB

remove_jndi.zip

1850 KB

 
Cargando
Salesforce Help | Article