Tableau Server deve memorizzare una serie di segreti che utilizza per eseguire varie funzioni, in genere per garantire la sicurezza della comunicazione interna, la comunicazione con altre applicazioni o il sistema operativo, oppure per fornire una comunicazione sicura con i client. In questo contesto, il termine segreto può riferirsi a una password, un token o un'altra stringa usata per autenticare un'entità a un'altra.

Sono disponibili due categorie di segreti per l'esecuzione di Tableau Server. Si differenziano a seconda di come vengono generati i segreti:

  • Segreti generati dagli amministratori. Queste includono le credenziali e i relativi segreti per l'account Utente Esegui come e le credenziali SMTP utilizzate da Tableau Server.
  • Segreti che sono generati automaticamente da vari processi nel sistema. Ad esempio, è obbligatorio un segreto per proteggere la comunicazione tra il Controller Cluster e i processi di ZooKeeper. E sono obbligatorie diverse password per ogni servizio e utente programmatico che comunica con Postgres.

La maggior parte dei segreti sono crittografati a riposo. Quando un segreto è necessario, viene decrittografato in fase di esecuzione.

In questo argomento viene descritto il funzionamento dell'archiviazione dei segreti e le operazioni che devi eseguire per gestire correttamente l'archiviazione dei segreti su Tableau Server.

Informazioni sul funzionamento dell'archiviazione dei segreti

Durante l'installazione, Tableau Server genera e memorizza una chiave master in un archivio delle chiavi Java. La chiave master viene usata per crittografare una chiave di crittografia della configurazione utilizzata nel sistema.

Ogni volta che un nuovo segreto viene creato o aggiornato, il segreto viene crittografato con la chiave di crittografia della configurazione. Il valore criptato viene quindi archiviato con il corrispondente parametro di configurazione in un file YAML sul server. I parametri che contengono un valore crittografato usano il formato, ENC(<encrypted string>)dove <encrypted string> è una stringa con codifica Base64.

In fase di esecuzione, quando è necessario che tu acceda a un determinato segreto, i valori criptati vengono letti in memoria e decriptati con la chiave di crittografia della configurazione.

Nel caso di modifiche in sospeso dove i segreti vengono immessi durante la modifica di una configurazione, l'intera transazione viene crittografata. In questo scenario, dopo aver inserito un segreto e salvato le modifiche in sospeso, questo viene trasmesso al servizio di coordinazione (su SSL crittografato). Il servizio di coordinazione applica la crittografia al segreto e lo archivia fino all'applicazione delle modifiche in sospeso. Quando le modifiche vengono applicate, il segreto (ancora crittografato) viene innalzato alla versione di configurazione corrente.

Tableau Server crittografa i segreti con AES a 256 bit in modalità GCM. Le chiavi utilizzate per l'archiviazione sicura sono diverse dalle chiavi di risorse utilizzate per crittografare le credenziali del database incorporate prima che queste vengano archiviate nell'archivio.

Chi ha accesso alla chiave master?

In un'installazione predefinita, l'archivio delle chiavi Java per il Tableau Server è installato nella cartella \ProgramData\Tableau\Tableau Server\data\tabsvc\crypto\keystores\. Se hai installato Tableau su un'unità non di sistema, il percorso è <install drive>:\Tableau\Tableau Server\data\tabsvc\crypto\keystores\. Per impostazione predefinita, gli account seguenti hanno accesso a questa directory:

  • Account Utente Esegui come (se configurato)
  • Servizio di rete predefinito account Windows locale predefinito
  • Sistema locale account Windows locale predefinito
  • Membri del gruppo di Amministratori di computer

Importare ed esportare le informazioni di configurazione

Tableau Services Manager introduce la possibilità di importare ed esportare le informazioni di configurazione usando la tsm configuration.

Nota: questa versione di Tableau Server non supporta il ripristino delle informazioni di configurazione da un backup. Ti consigliamo invece di utilizzare i comandi di esportazione e importazione per eseguire il backup e il ripristino delle informazioni di configurazione.

Mentre i segreti di configurazione vengono crittografati quando memorizzati su disco internamente, quando la configurazione viene esportata in un file, i segreti vengono scritti in un file in testo normale. È compito dell'amministratore adottare misure per proteggere questo file. Sono disponibili diverse opzioni:

  • Scrivi il file in un file system crittografato.
  • Scrivi il file in una directory con restrizioni per utenti o gruppi specifici per le autorizzazioni del file system.
  • Crittografa il file di output.

Proteggere i segreti per le operazioni di importazione ed esportazione

Usa una scheda di rete di terze parti, ad esempio OpenSSL, per crittografare l'output di backup.

Nodi cluster

Quando si aggiunge un nuovo nodo al cluster di Tableau Server, dovrai generare il file di configurazione del nodo (tsm topology). Il file di configurazione del nodo contiene una copia dell'archivio chiavi master utilizzato per crittografare i segreti di configurazione.

Importante: ti consigliamo vivamente di adottare misure aggiuntive per proteggere il file di configurazione del nodo durante l'esportazione di un file di configurazione con segreti.

Quando installi e configuri Tableau Server nel nuovo nodo, dovrai specificare il file di configurazione del nodo al comando initialize-tsm.

Archiviazione dei segreti della registrazione degli eventi

Gli eventi seguenti relativi all'archiviazione dei segreti vengono registrati:

  • Generazione di nuove chiavi di crittografia
  • Chiave di crittografia attivata o modificata
  • Crittografia di un nuovo valore nel file di configurazione

Per maggiori informazioni sui file di log e su dove vengono archiviati, consulta Lavorare con i file di log.

Gestire i segreti

In qualità di amministratore di Tableau Server, il compito più importante relativo alla memorizzazione dei segreti è quello di aggiornare periodicamente i segreti. In alcuni casi (risoluzione dei problemi del server o controllo) potresti dover recuperare una password.

Per altre operazioni, ad esempio l'aggiornamento di versioni, il backup e il ripristino o l'aggiunta di nuovi nodi a un cluster, come indicato in precedenza, Tableau Server gestisce l'archiviazione dei segreti e i processi correlati automaticamente.

Aggiornare i segreti

Ti consigliamo di aggiornare periodicamente i segreti in base ai criteri di sicurezza dell'azienda.

Per aggiornare la chiave principale e i segreti generati automaticamente, esegui tsm security regenerate-internal-tokens.

Recuperare le password

In alcuni casi, potresti dover recuperare una password per la risoluzione dei problemi o altre operazioni. Ad esempio, potresti aver bisogno delle credenziali utente Postgres generate e crittografate da Tableau Server. In questi casi, puoi eseguire un comando tsm che consenta di recuperare e decrittografare la password.

Per recuperare una password, apri il prompt dei comandi e rilascia un comando tsm configuration get per uno dei parametri indicati nella tabella seguente.

Per recuperare ad esempio una password per l'utente Postgres, digita il comando seguente:

tsm configuration get -k pgsql.readonly_password

Il comando restituirà la password in testo non crittografato:

$ 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

Password per l'utente amministratore Postgres.

Nota: sebbene il parametro di configurazione sia crittografato nei file di configurazione di Tableau (tabsvc.yml, workgroup.yml), questa password viene memorizzata in testo normale nei file utilizzati da SAML.

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

Password per Redis.

Nota: sebbene il parametro di configurazione sia crittografato nei file di configurazione di Tableau (tabsvc.yml, workgroup.yml), la configurazione sarà ancora in testo normale nel file redis.conf utilizzato dall'applicazione Redis. Redis non supporta le password crittografate/protette.

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
Grazie per il tuo feedback.