Verwalten von Servergeheimnissen

Tableau Server muss bestimmte Geheimnisse zum Ausführen verschiedener Funktionen speichern. Dabei handelt es sich üblicherweise um die Sicherung der internen Kommunikation, die Kommunikation mit anderen Anwendungen oder dem Betriebssystem oder um die Bereitstellung einer sicheren Kommunikation mit Clients. In diesem Kontext kann sich der Begriff Geheimnis auf ein Kennwort, ein Token oder eine andere Zeichenfolge beziehen, die zum Authentifizieren von Entitäten verwendet wird.

Es existieren zwei Kategorien von Geheimnissen, die für die Ausführung von Tableau Server erforderlich sind. Sie unterscheiden sich danach, wie die Geheimnisse generiert werden:

  • Von Administratoren generierte Geheimnisse Dazu zählen Anmeldeinformationen und die zugehörigen Geheimnisse für das Konto "Als Benutzer ausführen" und die von Tableau Server verwendeten SMTP-Anmeldeinformationen.
  • Von verschiedenen Prozessen im System automatisch generierte Geheimnisse Ein Geheimnis ist beispielsweise zum Schutz der Kommunikation zwischen dem Cluster Controller und ZooKeeper-Prozessen erforderlich. Zudem sind für jeden Dienst und programmatischen Benutzer, der mit Postgres kommuniziert, zahlreiche verschiedene Kennwörter erforderlich.

Die meisten Geheimnisse werden im Leerlauf verschlüsselt. Wenn es benötigt wird, erfolgt die Entschlüsselung des Geheimnisses zur Laufzeit.

In diesem Thema werden die Funktion der Geheimnisspeicherung und die Anforderungen an die ordnungsgemäße Verwaltung der Speicherung von Geheimnissen in Tableau Server beschrieben.

Funktionsweise der Geheimnisspeicherung

Bei der Installation generiert und speichert Tableau Server einen Master-Schlüssel in einem Java-Schlüsselspeicher. Der Master-Schlüssel dient der Verschlüsselung eines Verschlüsselungsschlüssels für die Konfiguration, der im gesamten System verwendet wird.

Bei jeder Erstellung oder Aktualisierung eines neuen Geheimnisses wird das Geheimnis mit dem Verschlüsselungsschlüssel für die Konfiguration verschlüsselt. Anschließend wird der verschlüsselte Wert mit dem entsprechenden Konfigurationsparameter in einer YAML-Datei auf dem Server gespeichert. Für Parameter mit einem verschlüsselten Format wird das Format ENC(<encrypted string>) verwendet, wobei die <encrypted string> eine Base64-codierte verschlüsselte Zeichenfolge ist.

Wenn zur Laufzeit der Zugriff auf ein bestimmtes Geheimnis erforderlich ist, werden die verschlüsselten Werte in den Speicher gelesen und mit dem Verschlüsselungsschlüssel für die Konfiguration entschlüsselt.

Bei ausstehenden Änderungen, bei denen bei einer Konfigurationsänderung Geheimnisse eingegeben werden, wird die gesamte Transaktion verschlüsselt. In diesem Szenario wird das Geheimnis nach Eingabe des Geheimnisses und dem anschließenden Speichern der ausstehenden Änderungen an den Koordinationsdienst übertragen (über verschlüsseltes SSL). Der Koordinationsdienst verschlüsselt das Geheimnis und speichert es, bis die ausstehenden Änderungen angewendet sind. Wenn Änderungen angewendet werden, wird das (noch verschlüsselte) Geheimnis zur aktuellen Konfigurationsversion heraufgestuft.

Tableau Server verschlüsselt Geheimnisse mithilfe von 256-Bit-AES im GCM-Modus. Die für die sichere Speicherung verwendeten Schlüssel unterscheiden sich von den Ressourcenschlüsseln, die vor dem Speichern im Repository zum Verschlüsseln der eingebetteten Datenbankanmeldeinformationen verwendet werden.

Wer hat Zugriff auf den Master-Schlüssel?

In einer Standardinstallation ist der Java-Schlüsselspeicher für Tableau Server im Ordner \ProgramData\Tableau\Tableau Server\data\tabsvc\crypto\keystores\ gespeichert. Wenn Sie Tableau auf einem Nichtsystemlaufwerk installiert haben, lautet der Pfad <install drive>:\Tableau\Tableau Server\data\tabsvc\crypto\keystores\. Standardmäßig haben die folgenden Konten Zugriff auf dieses Verzeichnis:

  • Konto "Als Benutzer ausführen" (falls konfiguriert)
  • Vordefiniertes lokales NetworkService-Konto unter Windows
  • Vordefiniertes lokales LocalSystem-Konto unter Windows
  • Mitglieder der Computergruppe "Administratoren"

Importieren und Exportieren von Konfigurationsinformationen

Tableau Services Manager führt die Möglichkeit ein, Konfigurationsinformationen mithilfe von tsm settings export zu importieren und zu exportieren.

Hinweis:Diese Version von Tableau Server unterstützt nicht das Wiederherstellen von Konfigurationsinformationen aus einer Sicherung. Stattdessen wird empfohlen, die Befehle zum Exportieren und Importieren der Konfiguration zum Sichern und Wiederherstellen der Konfigurationsinformationen zu verwenden.

Während Konfigurationsgeheimnisse verschlüsselt werden, wenn sie intern auf dem Datenträger gespeichert werden, wenn die Konfiguration in eine Datei exportiert wird, werden Geheimnisse in die Datei als Nur-Text geschrieben. Es obliegt dem Administrator, Maßnahmen zum Schutz dieser Datei zu ergreifen. Es stehen verschiedene Optionen zur Verfügung:

  • Schreiben Sie die Datei in ein verschlüsseltes Dateisystem.
  • Schreiben Sie die Datei in ein Verzeichnis, das durch Dateisystemberechtigungen auf bestimmte Benutzer oder Gruppen beschränkt ist.
  • Verschlüsseln Sie die Ausgabedatei.

Sichern von Geheimnissen für Import- und Exportvorgänge

Verwenden Sie zur Verschlüsselung der Sicherungsausgabe die Tools eines Drittanbieters, beispielsweise OpenSSL.

Clusterknoten

Beim Hinzufügen eines neuen Knotens zu Ihrem Tableau Server-Cluster müssen Sie zunächst die Knotenkonfigurationsdatei (tsm topology) konfigurieren. Die Knotenkonfigurationsdatei enthält eine Kopie der Master-Keystore-Datei, die zum Verschlüsseln der Konfigurationsgeheimnisse verwendet wird.

Wichtig: Beim Export sollte eine Konfigurationsdatei mit Geheimnissen unbedingt durch zusätzliche Maßnahmen geschützt werden.

Beim Installieren und Konfigurieren von Tableau Server auf dem neuen Knoten müssen Sie die Knotenkonfigurationsdatei im Befehl initialize-tsm bereitstellen.

Ereignisprotokollierung für den Geheimnisspeicher

Es werden die folgenden Ereignisse protokolliert, die mit der Speicherung von Geheimnissen in Zusammenhang stehen:

  • Generierung neuer Verschlüsselungsschlüssel
  • Rollup oder Änderung des Verschlüsselungsschlüssels
  • Verschlüsselung eines neuen Werts in der Konfigurationsdatei

Weitere Informationen zu Protokolldateien und zu deren Speicherplatz finden Sie unter Arbeiten mit Protokolldateien.

Verwalten von Geheimnissen

Bezüglich des Geheimnisspeichers ist die wichtigste Aufgabe eines Tableau Server-Administrators das regelmäßige Aktualisieren der Geheimnisse. In einigen Fällen (Problembehebung des Servers oder Audit) müssen Sie möglicherweise ein Kennwort abrufen.

Bei anderen Vorgängen (beispielsweise bei Versionsupgrades, Sicherungen und Wiederherstellungen oder beim Hinzufügen neuer Knoten zu einem Cluster) erledigt Tableau Server die Speicherung der Geheimnisse und die zugehörigen Prozesse wie zuvor erwähnt automatisch.

Aktualisieren von Geheimnissen

Sie sollten Geheimnisse gemäß der Sicherheitsrichtlinie Ihres Unternehmens regelmäßig aktualisieren.

Zur Aktualisierung des Hauptschlüssels und der automatisch generierten Geheimnisse führen Sie tsm security regenerate-internal-tokens aus.

Abrufen von Kennwörtern

In einigen Fällen müssen Sie für die Problembehebung oder andere Vorgänge möglicherweise ein Kennwort abrufen. Beispielsweise benötigen Sie u. U. die schreibgeschützten Postgres-Benutzeranmeldeinformationen, die von Tableau Server generiert und verschlüsselt werden. In diesen Fällen können Sie einen TSM-Befehl ausführen, mit dessen Hilfe das Kennwort für Sie abgerufen und entschlüsselt wird.

Öffnen Sie zum Abrufen eines Kennworts die Eingabeaufforderung, und stellen Sie den Befehl tsm configuration get für einen der in der folgenden Tabelle aufgeführten Parameter aus.

Geben Sie beispielsweise zum Abrufen eines Kennworts für den schreibgeschützten Postgres-Benutzer den folgenden Befehl ein:

tsm configuration get -k pgsql.readonly_password

Der Befehl gibt das Kennwort als Klartext zurück:

$ tsm configuration get -k pgsql.readonly_password

password

Configuration ParameterDescription
clustercontroller.zookeeper.passwordPassword for cluster controller to connect to zookeeper.
indexandsearchserver.client.password Password for logging into Index and Search Server.
indexandsearchserver.ssl.admin.cert.bytes Admin certificate that is used for administrative access to the Index and Search Server. The admin certificate is used to generate the node certificate.
indexandsearchserver.ssl.admin.key.file_bytes Certificate key for administrative access to the Index and Search Server.
indexandsearchserver.ssl.node.cert.bytes Certificate that is used for Index and Search Server node-to-node communication.
indexandsearchserver.ssl.node.key.file_bytes Certificate key that is used for Index and Search Server node-to-node communication.
indexandsearchserver.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 Index and Search Server.
indexandsearchserver.ssl.root.key.file_bytes Certificate key for root certificate.
filestore.zookeeper.passwordPassword 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.passwordPassword 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.passwordPassword 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_secretClient secret of the Google Cloud Platform account.
oauth.quickbooks.consumer_secretConsumer secret of the Intuit developer account.
oauth.salesforce.client_secretClient secret of the Salesforce developer account.
pgsql.adminpassword

Kennwort für den tblwgadmin Postgres-Benutzer

Hinweis: Obwohl der Konfigurationsparameter in den Konfigurationsdateien von Tableau (tabsvc.yml, workgroup.yml) verschlüsselt ist, wird dieses Kennwort als Klartext in Dateien gespeichert, die vom SAML verwendet werden.

pgsql.readonly_passwordPassword for the readonly Postgres user.
pgsql.remote_passwordPassword for the tableau Postgres user.
redis.password

Kennwort für Redis.

Hinweis: Obwohl der Konfigurationsparameter in den Konfigurationsdateien von Tableau (tabsvc.yml, workgroup.yml) verschlüsselt ist, erfolgt die Konfiguration dennoch in Form von Klartext in der Datei "redis.conf", die von der Redis-Anwendung verwendet wird. Redis unterstützt keine verschlüsselten/gesicherten Kennwörter.

servercrashupload.proxy_server_passwordPassword for custom proxy server used to upload crash reports.
service.runas.passwordPassword 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_bytesKey file(s) for the certificates uploaded by the administrator for external SSL.
ssl.key.passphraseOptional passphrase used to protect the external SSL key.
svcmonitor.notification.smtp.passwordSMTP Server password supplied by the administrator through TabConfig.exe.
tabadminservice.passwordPassword for the service that allows server admins to download log files through the web interface.
vizportal.openid.client_secretThis 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.passwordPassword used to bind to Active Directory.
wgserver.saml.key.passphrasePassphrase used to access the PKCS#8 SAML key file.
zookeeper.tsm.passwordPassword that TSM uses to connect to Zookeeper coordination service
Vielen Dank für Ihr Feedback!Ihr Feedback wurde erfolgreich übermittelt. Vielen Dank.