Administrar secretos del servidor

Tableau Server necesita almacenar varios secretos que usa para realizar diferentes funciones, como proteger las comunicaciones internas, comunicarse con otras aplicaciones o con el sistema operativo, o proporcionar una comunicación segura con los clientes. En este contexto, el término secreto puede hacer referencia a una contraseña, un token u otra cadena que se use para autenticar una entidad en otra.

Hay dos categorías de secretos que se necesitan para ejecutar Tableau Server. Se diferencian en la forma en que se generan los secretos:

  • Secretos generados por los administradores. Son credenciales y secretos asociados de la cuenta Ejecutar como usuario y las credenciales SMTP usadas por Tableau Server.
  • Secretos generados automáticamente por diferentes procesos en el sistema. Por ejemplo, se necesita un secreto para proteger la comunicación entre los procesos de ZooKeeper y el controlador del clúster. También pueden ser diferentes contraseñas necesarias para cada servicio y usuario de programación que se comunica con PostgreSQL.

La mayoría de los secretos están cifrados mientras están en reposo. Cuando se necesita un secreto, se descifra en tiempo de ejecución.

En este tema se describe cómo funciona el almacenamiento de los secretos y lo que necesita realizar para administrar correctamente el almacenamiento de los secretos en Tableau Server.

Información sobre el funcionamiento del almacenamiento de secretos

Durante la instalación, Tableau Server genera y almacena una clave maestra en un almacén de claves de Java. La clave maestra se usa para cifrar una clave de cifrado de configuración que se usa en todo el sistema.

Al crear o actualizar un secreto, este se cifra con la clave de cifrado de configuración. A continuación, el valor cifrado se almacena con el parámetro de configuración correspondiente en un archivo YAML en el servidor. Los parámetros que contienen un valor cifrado están en el formato ENC(<encrypted string>), donde <encrypted string> es una cadena cifrada con codificación Base64.

En tiempo de ejecución, cuando se necesita obtener acceso a un secreto específico, los valores cifrados se leen en la memoria y se descifran con la clave de cifrado de configuración.

Si hubiera cambios pendientes, en los que los secretos se introducen durante un cambio de configuración, toda la transacción se cifra. En este caso, después de introducir un secreto y guardar el cambio pendiente, el secreto se transmite al Servicio de coordinación (mediante SSL cifrado). El Servicio de coordinación cifra el secreto y lo almacena hasta que se aplican los cambios pendientes. Cuando se aplican los cambios, el secreto (aún cifrado) se promueve a la versión de configuración actual.

Tableau Server cifra los secretos con AES de 256 bits en el modo GCM. Las claves usadas para el almacenamiento seguro son distintas de las claves de activos que se usan para cifrar las credenciales de bases de datos incrustadas antes de almacenarlas en el repositorio.

¿Quién tiene acceso a la clave maestra?

En una instalación predeterminada, el almacén de claves de Java de Tableau Server se encuentra instalado en la carpeta \ProgramData\Tableau\Tableau Server\data\tabsvc\crypto\keystores\. Si ha instalado Tableau en una unidad que no es del sistema, la ruta será <install drive>:\Tableau\Tableau Server\data\tabsvc\crypto\keystores\. De forma predeterminada, las cuentas siguientes tienen acceso a este directorio:

  • Cuenta Ejecutar como usuario (si se configura)
  • Cuenta de Windows local predefinida NetworkService
  • Cuenta de Windows local predefinida LocalSystem
  • Miembros del grupo Administradores del equipo

Información de configuración de la importación y la exportación

Tableau Services Manager introduce la capacidad de importar y exportar información de configuración con tsm configuration.

Nota: esta versión de Tableau Server no admite la restauración de la información de configuración a partir de una copia de seguridad. Se recomienda utilizar los comandos de configuración de exportación e importación para hacer una copia de seguridad de la información de configuración y restaurarla.

Mientras los secretos de configuración se cifran cuando se almacenan en el disco de manera interna, al exportar la configuración a un archivo, los secretos se escriben en el archivo con texto plano. Es decisión del administrador tomar medidas para proteger este archivo. Hay una serie de opciones disponibles:

  • Escribir el archivo en un sistema de archivos cifrados.
  • Escribir el archivo en un directorio restringido a determinados usuarios o grupos por permisos del sistema de archivos.
  • Cifre el archivo de salida.

Proteger los secretos para las operaciones de importación y exportación

Use un conjunto de herramientas de un tercero, como OpenSSL, para cifrar la copia de seguridad de salida.

Nodos de clúster

Al añadir un nodo nuevo al clúster de Tableau Server, primero deberá generar el archivo de configuración del nodo (tsm topology). El archivo de configuración de nodo contiene una copia del archivo de almacén de claves maestro empleado para cifrar los secretos de configuración.

Importante: se recomienda encarecidamente que tome medidas adicionales para proteger el archivo de configuración del nodo para exportar un archivo de configuración con secretos.

Al instalar y configurar Tableau Server en el nodo nuevo, deberá proporcionar el archivo de configuración del nodo en el comando initialize-tsm.

Registro de eventos del almacenamiento de secretos

Quedan registrados los siguientes eventos relacionados con el almacenamiento de secretos:

  • Generar nuevas claves de cifrado
  • La clave de cifrado se implementa o cambia
  • Cifrar un nuevo valor en el archivo de configuración

Para obtener más información sobre los archivos de registro y dónde se almacenan, consulte Trabajar con archivos de registro.

Administración de secretos

Como administrador de Tableau Server, la tarea más importante relacionada con el almacenamiento de secretos es actualizar los secretos de forma periódica. En algunos casos (como la solución de problemas del servidor o auditorías), puede que necesite recuperar una contraseña.

Para otras operaciones, como actualizar versiones, realizar copias de seguridad y restauración, o añadir nodos a un clúster (como se indicó anteriormente), Tableau Server administra automáticamente el almacenamiento de secretos y los procesos relacionados.

Actualización de secretos

Debe actualizar los secretos de forma periódica, según la política de seguridad de su empresa.

Para actualizar la clave maestra y los secretos generados automáticamente, ejecute tsm security regenerate-internal-tokens.

Recuperar contraseñas

En algunos casos, puede que necesite recuperar una contraseña para solucionar un problema o realizar otras operaciones. Por ejemplo, puede que necesite las credenciales de usuario readonly de PostgreSQL generadas y cifradas por Tableau Server. En estos casos, puede ejecutar un comando tsm que recuperará y descifrará la contraseña automáticamente.

Para recuperar una contraseña, abra un símbolo del sistema y ejecute el comando tsm configuration get para uno de los parámetros que se indican en la tabla siguiente.

Por ejemplo, para recuperar una contraseña para el usuario readonly de PostgreSQL, escriba el comando siguiente:

tsm configuration get -k pgsql.readonly_password

El comando indicará la contraseña en texto no cifrado:

$ tsm configuration get -k pgsql.readonly_password

password

Configuration Parameter Description
clustercontroller.zookeeper.password Password for cluster controller to connect to zookeeper.
elasticserver.client.password Password for logging into Elastic search service.
elasticserver.ssl.admin.cert.bytes Admin certificate that is used for administrative access to the Elastic search service. The admin certificate is used to generate the node certificate.
elasticserver.ssl.admin.key.file_bytes Certificate key for administrative access to the Elastic search service.
elasticserver.ssl.node.cert.bytes Certificate that is used for Elastic node-to-node communication.
elasticserver.ssl.node.key.file_bytes Certificate key that is used for Elastic node-to-node communication.
elasticserver.ssl.root.cert.bytes Certificate that is used to sign the admin and node certificates . This certificate is used by TSM for health check and by NLP to connect to Elasticserver.
elasticserver.ssl.root.key.file_bytes Certificate key for root certificate.
filestore.zookeeper.password Password for filestore to connect to zookeeper.
hyper.connection.init_password Password used to initialize the Hyper database for user tableau_internal_user and is then used for connecting to Hyper.
jdbc.password Password for the rails Postgres user.
kms.persistent_store A collection of master encryption keys (MEKs) used by the Key Management System.
maestro.rserve.password Password for connecting to an external Rserve instance used by Tableau Prep Conductor for running flows that have nodes with R scripts.
maestro.tabpy.password Password for connecting to an external TabPy (Python server) instance used by Tableau Prep Conductor for running flows that have nodes with Python scripts.
oauth.google.client_secret Client secret of the Google Cloud Platform account.
oauth.quickbooks.consumer_secret Consumer secret of the Intuit developer account.
oauth.salesforce.client_secret Client secret of the Salesforce developer account.
pgsql.adminpassword

Contraseña para el usuario de Postgres tblwgadmin.

Nota: aunque el parámetro de configuración esté cifrado en los archivos de configuración de Tableau (tabsvc.yml y workgroup.yml), esta contraseña se almacena en formato de texto plano en otros archivos utilizados por SAML y el proceso de recuperación de Postgres.

pgsql.readonly_password Password for the readonly Postgres user.
pgsql.remote_password Password for the tableau Postgres user.
redis.password

Contraseña de Redis.

Nota: Aunque el parámetro de configuración esté cifrado en los archivos de configuración de Tableau (tabsvc.yml y workgroup.yml), la configuración se mantendrá en formato de texto plano en el archivo redis.conf utilizado por la aplicación Redis. Redis no admite las contraseñas cifradas ni protegidas.

searchserver.client.password  
servercrashupload.proxy_server_password Password for custom proxy server used to upload crash reports.
service.runas.password Password of the Run As users. Stored temporarily.
ssl.cert.file_bytes The content of one of the three SSL certificate files uploaded by the administrator. The certificate files are required to enable secure external connections to Tableau Server.
ssl.chain.file_bytes The chain file(s) for the certificates uploaded by the administrator for external SSL.
ssl.key.file_bytes Key file(s) for the certificates uploaded by the administrator for external SSL.
ssl.key.passphrase Optional passphrase used to protect the external SSL key.
svcmonitor.notification.smtp.password SMTP Server password supplied by the administrator through TabConfig.exe.
tabadminservice.password Password for the service that allows server admins to download log files through the web interface.
vizportal.openid.client_secret This is the password ("provider client secret") used for OpenID Connect SSO.
vizqlserver.external_proxy_password Password used to authenticate to an external proxy.
wgserver.domain.password Password used to bind to Active Directory.
wgserver.saml.key.passphrase Passphrase used to access the PKCS#8 SAML key file.
zookeeper.tsm.password Password that TSM uses to connect to Zookeeper coordination service
¡Gracias por sus comentarios!