Servergeheimen beheren

Tableau Server moet een aantal geheimen opslaan die worden gebruikt om verschillende functies uit te voeren. Meestal gaat het hierbij om het beveiligen van interne communicatie, het communiceren met andere toepassingen of het besturingssysteem, of het mogelijk maken van beveiligde communicatie met clients. In deze context kan de term geheim verwijzen naar een wachtwoord, een token of een andere tekenreeks die wordt gebruikt om de ene entiteit bij de andere te verifiëren.

Er zijn twee categorieën geheimen nodig om Tableau Server uit te voeren. De geheimen verschillen in de manier waarop ze worden gegenereerd:

  • Geheimen die door beheerders worden gegenereerd. Hieronder vallen onder meer de referenties en bijbehorende geheimen voor het Uitvoeren als gebruiker-account en de SMTP-referenties die door Tableau Server worden gebruikt.
  • Geheimen die automatisch worden gegenereerd door verschillende processen in het systeem. Er is bijvoorbeeld een geheim nodig om de communicatie tussen de Cluster Controller- en ZooKeeper-processen te beveiligen. Voor elke service en programmatische gebruiker die met Postgres communiceert, is een aantal verschillende wachtwoorden vereist.

De meeste geheimen worden versleuteld als ze niet worden gebruikt. Wanneer een geheim gebruikt moet worden, wordt het tijdens de uitvoering ontsleuteld.

In dit onderwerp wordt beschreven hoe geheimen worden opgeslagen en hoe u de opslag van geheimen in Tableau Server correct beheert.

Begrijpen hoe de opslag van geheimen werkt

Tijdens de installatie genereert Tableau Server een primaire sleutel en slaat deze op in een Java-sleutelopslag. De primaire sleutel wordt gebruikt om een versleutelingssleutel voor configuratie te versleutelen die in het hele systeem wordt gebruikt.

Wanneer een nieuw geheim wordt gemaakt of bijgewerkt, wordt het geheim versleuteld met de versleutelingssleutel voor configuratie. De versleutelde waarde wordt vervolgens samen met de bijbehorende configuratieparameter opgeslagen in een YAML-bestand op de server. Parameters die een versleutelde waarde bevatten, gebruiken de opmaak: ENC(<encrypted string>), waarbij <encrypted string> een met Base64 gecodeerde versleutelde tekenreeks is.

Wanneer tijdens de uitvoering een bepaald geheim moet worden gelezen, worden de versleutelde waarden in het geheugen gelezen en ontsleuteld met de versleutelingssleutel voor configuratie.

In het geval van in behandeling zijnde wijzigingen, waarbij geheimen worden ingevoerd tijdens een configuratiewijziging, wordt de gehele transactie versleuteld. Als u in dit scenario een geheim hebt ingevoerd en de in behandeling zijnde wijziging hebt opgeslagen, wordt het geheim naar de coördinatieservice verzonden (via versleutelde SSL). De coördinatieservice versleutelt het geheim en slaat het op totdat de in behandeling zijnde wijzigingen worden toegepast. Wanneer er wijzigingen worden doorgevoerd, wordt het geheim (nog steeds versleuteld) gepromoveerd naar de huidige configuratieversie.

Tableau Server versleutelt geheimen met 56-bits AES in de GCM-modus. De sleutels die voor veilige opslag worden gebruikt, verschillen van de assetsleutels die worden gebruikt om ingesloten databasereferenties te versleutelen voordat ze worden opgeslagen in de opslagplaats.

Wie heeft toegang tot de primaire sleutel?

Bij een standaardinstallatie wordt de Java-sleutelopslag voor Tableau Server geïnstalleerd in de map \ProgramData\Tableau\Tableau Server\data\tabsvc\crypto\keystores\. Als u Tableau niet op een systeemstation hebt geïnstalleerd, is het pad <install drive>:\Tableau\Tableau Server\data\tabsvc\crypto\keystores\. Standaard hebben de volgende accounts toegang tot deze directory:

  • Uitvoeren als gebruiker-account (indien geconfigureerd)
  • Vooraf gedefinieerd lokaal NetworkService-account in Windows
  • Vooraf gedefinieerd lokaal LocalSystem-account in Windows
  • Leden van de groep Beheerders van de computer

Configuratiegegevens importeren en exporteren

Tableau Services Manager beschikt nu over de mogelijkheid om configuratiegegevens te importeren en exporteren met behulp van tsm settings export.

Opmerking: Deze versie van Tableau Server biedt geen ondersteuning voor het herstellen van configuratiegegevens met behulp van een back-up. In plaats daarvan raden we aan de opdrachten voor het exporteren en importeren van de configuratie te gebruiken om een back-up te maken van de configuratiegegevens en deze te herstellen.

Hoewel configuratiegeheimen worden versleuteld wanneer ze intern op schijf worden opgeslagen, worden geheimen in platte tekst in het bestand geschreven als de configuratie naar een bestand wordt geëxporteerd. Het is aan de beheerder om maatregelen te nemen ter beveiliging van dit bestand. Er zijn verschillende opties beschikbaar:

  • Schrijf het bestand naar een versleuteld bestandssysteem.
  • Schrijf het bestand naar een directory waartoe op basis van de bestandssysteemmachtigingen alleen specifieke gebruikers of groepen toegang hebben.
  • Versleutel het uitvoerbestand.

Geheimen voor import- en exporttransacties beveiligen

Gebruik een toolset van derden, zoals OpenSSL, om de back-upuitvoer te versleutelen.

Clusterknooppunten

Wanneer u een nieuw knooppunt aan uw Tableau Server-cluster toevoegt, dient u eerst het knooppuntconfiguratiebestand te genereren (tsm-topologie). Het knooppuntconfiguratiebestand bevat een kopie van het primaire sleutelopslagbestand dat wordt gebruikt voor het versleutelen van configuratiegeheimen.

Belangrijk: Wij raden u ten zeerste aan aanvullende maatregelen te nemen om het knooppuntconfiguratiebestand te beveiligen wanneer u een configuratiebestand met geheimen exporteert.

Bij Tableau Server installeren en configureren op het nieuwe knooppunt moet u het knooppuntconfiguratiebestand verstrekken aan de opdracht initialize-tsm.

Registratie van gebeurtenissen inzake de opslag van geheimen

De volgende gebeurtenissen met betrekking tot de opslag van geheimen worden geregistreerd:

  • Het genereren van nieuwe versleutelingssleutels
  • Rollup of wijziging van versleutelingssleutel
  • Versleuteling van een nieuwe waarde in het configuratiebestand

Zie Werken met logboekbestanden voor meer informatie over logbestanden en waar deze worden opgeslagen.

Geheimen beheren

Als beheerder van Tableau Server is het periodiek bijwerken van geheimen uw belangrijkste taak met betrekking tot de opslag van geheimen. In sommige gevallen (bij het oplossen van problemen met de server of bij audits) moet u mogelijk een wachtwoord ophalen.

Voor andere bewerkingen, zoals het upgraden van versies, het maken en herstellen van back-ups of het toevoegen van nieuwe knooppunten aan een cluster, wordt de opslag van geheimen en gerelateerde processen automatisch beheerd door Tableau Server, zoals hierboven vermeld.

Geheimen bijwerken

U dient geheimen regelmatig bij te werken, in overeenstemming met het beveiligingsbeleid van uw bedrijf.

Voer tsm security regenerate-internal-tokens uit om de primaire sleutel en automatisch gegenereerde geheimen bij te werken.

Wachtwoorden ophalen

Het kan zijn dat u een wachtwoord moet ophalen om problemen op te lossen of andere bewerkingen uit te voeren. U hebt bijvoorbeeld misschien de alleen-lezen Postgres-gebruikersreferenties nodig die door Tableau Server worden gegenereerd en versleuteld. Als dat het geval is, kunt u een tsm-opdracht uitvoeren die het wachtwoord voor u ophaalt en ontsleutelt.

Open de opdrachtprompt en voer een opdracht tsm configuration get uit voor een van de parameters die in de onderstaande tabel staan vermeld om een wachtwoord op te halen.

Typ bijvoorbeeld de volgende opdracht om een wachtwoord op te halen voor de alleen-lezen Postgres-gebruiker:

tsm configuration get -k pgsql.readonly_password

De opdracht retourneert het wachtwoord in platte tekst:

$ 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

Wachtwoord voor de Postgres-gebruiker tblwgadmin.

Opmerking: Hoewel de configuratieparameter is versleuteld in de configuratiebestanden van Tableau (tabsvc.yml, workgroup.yml), wordt dit wachtwoord in platte tekst opgeslagen in bestanden die door SAML worden gebruikt.

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

Wachtwoord voor Redis.

Opmerking: Hoewel de configuratieparameter is versleuteld in de configuratiebestanden van Tableau (tabsvc.yml, workgroup.yml), staat de configuratie wel in platte tekst in het bestand redis.conf dat door de Redis-toepassing wordt gebruikt. Redis biedt geen ondersteuning voor versleutelde/beveiligde wachtwoorden.

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
Bedankt voor uw feedback.De feedback is verzonden. Dank u wel.