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 Parameter | Description |
---|---|
clustercontroller.zookeeper.password | Password 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.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 | 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_password | Password for the readonly Postgres user. |
pgsql.remote_password | Password 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_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 |