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 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 | 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_password | Password for the readonly Postgres user. |
pgsql.remote_password | Password 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_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 |