Gerenciar segredos do servidor

O Tableau Server precisa armazenar vários segredos que usa para realizar inúmeras funções, normalmente a proteção da comunicação interna, a comunicação com outros aplicativos ou o sistema operacional, bem como a comunicação segura com os clientes. Neste contexto, o termo segredo pode se referir a uma senha, a uma chave de segurança ou outra cadeia de caracteres usada para autenticar uma entidade a outra.

Há duas categorias de segredos necessárias para executar o Tableau Server. Elas diferem de acordo com o modo de geração dos segredos:

  • Segredos gerados por administradores. Incluem as credenciais e segredos associados à conta de usuário Run As e às credenciais SMTP usadas pelo Tableau Server.
  • Segredos automaticamente gerados por vários processos no sistema. Por exemplo, um segredo necessário para proteger a comunicação entre o Controlador de cluster e os processos do ZooKeeper. Além disso, várias senhas diferentes são necessárias para cada usuário de serviço e programático que se comunica com o Postgres.

A maioria dos segredos é criptografada enquanto em repouso. Quando um segredo for necessário, ele será descriptografado no tempo de execução.

Este tópico descreve como funciona o armazenamento de segredos e o que é necessário para gerenciar corretamente o armazenamento de segredos no Tableau Server.

Compreensão de como funciona o armazenamento de segredos

Durante a instalação, o Tableau Server gera e armazena uma chave mestra no repositório de chaves do Java. A chave mestra é usada para criptografar uma chave de criptografia de configuração usada em todo o sistema.

Sempre que um novo segredo é criado ou atualizado, o segredo é criptografado com a chave de criptografia de configuração. O valor criptografado é, em seguida, armazenado com o seu parâmetro de configuração correspondente em um arquivo YAML no servidor. Os parâmetros com um valor criptografado usam o formato, ENC(<encrypted string>), em que <encrypted string> é uma cadeia de caracteres criptografada com codificação Base64.

No tempo de execução, quando um determinado segredo precisa ser acessado, os valores criptografados são lidos na memória e descriptografados com a chave de criptografia de configuração.

No caso de alterações pendentes, em que os segredos são inseridos durante uma alteração de configuração, toda a transação é criptografada. Nesse cenário, após inserir um segredo e salvar a alteração pendente, ele será transmitido ao Serviço de coordenação (por meio de SSL criptografado). O Serviço de coordenação criptografa o segredo e o armazena até que as alterações pendentes sejam aplicadas. Quando as alterações são aplicadas, o segredo (ainda criptografado) é promovido à versão de configuração atual.

O Tableau Server criptografa segredos com o AES de 256 bits no modo GCM. As chaves usadas para armazenamento seguro são diferentes das chave de recurso usadas para criptografar as credenciais de banco de dados inseridas antes que sejam armazenadas no repositório.

Quem tem acesso à chave mestra?

Em uma instalação padrão, o armazenamento de chave do Java para o Tableau Server está instalado na pasta \ProgramData\Tableau\Tableau Server\data\tabsvc\crypto\keystores\. Se você instalar o Tableau em uma unidade que não seja do sistema, o caminho será <install drive>:\Tableau\Tableau Server\data\tabsvc\crypto\keystores\. Por padrão, as contas a seguir têm acesso a esse diretório:

  • Conta de usuário Run As (se configurada)
  • Conta do Windows local predefinida no NetworkService
  • Conta do Windows local predefinida no LocalSystem
  • Membros do grupo Administradores do computador

Importar e exportar informações de configuração

O Tableau Services Manager apresenta o recurso para importar e exportar informações de configuração por meio do tsm configuration.

Observação: esta versão do Tableau Server não suporta a restauração das informações de configuração a partir de um backup. Em vez disso, é recomendável usar os comandos de configuração de exportação e importação para fazer backup das informações de configuração e restaurá-las.

Embora os segredos de configuração sejam criptografados quando armazenados em disco internamente, ao exportar a configuração para um arquivo, os segredos são gravados no arquivo em texto simples. O administrador é responsável pela proteção desse arquivo. Há várias opções disponíveis:

  • Gravar o arquivo em um sistema de arquivos criptografado.
  • Gravar o arquivo em um diretório restrito a grupos ou usuários específicos por permissões do sistema de arquivos.
  • Codifique o arquivo de saída.

Proteção de segredos para operações de importação e exportação

Use um toolset de terceiros, como o OpenSSL, para codificar a saída do backup.

Nós do cluster

Ao adicionar um novo nó ao cluster do Tableau Server, primeiro é necessário gerar o arquivo de configuração do nó (tsm topology). O arquivo de configuração de nó contém uma cópia do arquivo principal do repositório de chaves, usado para criptografar os segredos da configuração.

Importante: é altamente recomendável tomar medidas adicionais para proteger o arquivo de configuração de nó ao exportar um arquivo de configuração com segredos.

Ao instalar e configurar o Tableau Server no novo nó, será necessário fornecer o arquivo de configuração do nó para o comando initialize-tsm.

Registro de evento de armazenamento de segredos

Os eventos a seguir relacionados ao armazenamento de segredos são registrados:

  • Geração de novas chaves de criptografia
  • A chave de criptografia é movida ou alterada
  • Criptografia de um novo valor no arquivo de configuração

Para obter mais informações sobre os arquivos de registro e o local em que são armazenados, consulte Trabalhar com arquivos de log.

Gerenciar segredos

Como administrador do Tableau Server, a tarefa mais importante relacionada ao armazenamento de segredos é atualizá-los periodicamente. Em alguns casos (solução de problemas ou auditoria de servidor), pode ser necessário recuperar uma senha.

Para outras operações, como atualização de versões, backup e restauração, ou adição de novos nós a um cluster, conforme observado acima, o Tableau Server gerencia o armazenamento de segredos e os processos relacionados automaticamente.

Atualizar segredos

É aconselhável atualizar os segredos periodicamente de acordo com a política de segurança da sua empresa.

Para atualizar a chave mestra e gerar segredos automaticamente, execute o tsm security regenerate-internal-tokens.

Recuperar senhas

Em alguns casos, será necessário recuperar uma senha para solução de problemas ou outras operações. Por exemplo, pode-se precisar das credenciais do usuário Postgres somente leitura geradas e criptografadas pelo Tableau Server. Nesses casos, é possível usar um comando tsm que recuperará e descriptografará a senha.

Para recuperar uma senha, abra o prompt de comando e emita um comando tsm configuration get para um dos parâmetros listados na tabela abaixo.

Por exemplo, para recuperar uma senha para o usuário Postgres somente leitura, digite o comando a seguir:

tsm configuration get -k pgsql.readonly_password

O comando retornará a senha em texto simples:

$ 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

Senha para o usuário do Postgres tblwgadmin.

Observação: embora o parâmetro de configuração esteja criptografado nos arquivos de configuração do Tableau (tabsvc.yml, workgroup.yml), esta senha é armazenada em texto simples nos arquivos usados pelo SAML.

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

Senha para o Redis.

Observação: embora o parâmetro de configuração esteja criptografado nos arquivos de configuração do Tableau (tabsvc.yml, workgroup.yml), a configuração ainda seria em texto simples no arquivo redis.conf consumido pelo aplicativo Redis. O Redis não dá aceita senhas criptografadas/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
Agradecemos seu feedback!