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.

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\config\tabsvc\keystores\. Se você instalar o Tableau em uma unidade que não seja do sistema, o caminho será <install drive>:\Tableau\Tableau Server\config\tabsvc\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 pgsql.readonly_password

password

Configuration Parameter Description
clustercontroller.zookeeper.password Password for cluster controller to connect to zookeeper.
filestore.zookeeper.password Password for filestore to connect to zookeeper.
jdbc.password Password for the rails Postgres user.
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 em outros arquivos usados pelo processo de recuperação SAML e Postgres.

pgsql.readonly_password Password for the readonly Postgres user.
pgsql.remote_password Password for the tableau Postgres user.
redis.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.key.passphrase Optional passphrase used to protect the Apache 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.
vizqlserver.extsvc.password Password for the service that supports R functionality in workbooks.
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
Obrigado pelo feedback! Ocorreu um erro ao enviar seu feedback. Tente novamente ou envie-nos uma mensagem..