Deze sectie legt uit hoe Zabbix geconfigureerd kan worden om geheimen op te halen uit de HashiCorp Vault KV Secrets Engine - Versie 2.
De vault moet ingezet en geconfigureerd zijn zoals beschreven staat in de officiële HashiCorp-documentatie.
Voor meer informatie over het configureren van TLS in Zabbix, zie Opslag van geheimen.
This section explains how to configure Zabbix for retrieving secrets from HashiCorp Vault KV Secrets Engine - Version 2.
The vault should be deployed and configured as described in the official HashiCorp documentation.
To learn about configuring TLS in Zabbix, see Storage of secrets.
Toegang tot een geheim met databasegegevens is apart geconfigureerd voor elke afzonderlijke Zabbix-component.
Om databasegegevens vanuit de vault op te halen voor Zabbix server of proxy, specificeer je de volgende configuratieparameters in het configuratiebestand:
Vault
- welke vault-provider gebruikt moet worden;VaultToken
- vault-authenticatietoken (zie het configuratiebestand van Zabbix server/proxy voor details);VaultURL
- URL van de vault-server via HTTP[S];VaultDBPath
- pad naar het vault-geheim met databasegegevens; Zabbix-server of proxy zal de referenties ophalen met de sleutels "password" en "username".De Zabbix-server gebruikt ook de Vault
, VaultToken
en VaultURL
configuratieparameters voor vault-authenticatie bij het verwerken van vault-geheimmacro's.
Zowel de Zabbix-server als de Zabbix-proxy lezen de met de vault verband houdende configuratieparameters uit zabbix_server.conf en zabbix_proxy.conf bij het opstarten. Bovendien zullen de Zabbix-server en Zabbix-proxy de VAULT_TOKEN
-omgevingsvariabele één keer lezen tijdens het opstarten en deze unsetten zodat deze niet beschikbaar zou zijn via geforkte scripts; het is een fout als zowel VaultToken
als VAULT_TOKEN
parameters een waarde bevatten.
Vault=HashiCorp
VaultToken=hvs.CAESIIG_PILmULFYOsEyWHxkZ2mF2a8VPKNLE8eHqd4autYGGh4KHGh2cy5aeTY0NFNSaUp3ZnpWbDF1RUNjUkNTZEg
VaultURL=https://127.0.0.1:8200
VaultDBPath=secret/zabbix/database
# "secret/" koppelingspunt inschakelen indien nog niet ingeschakeld; let op dat "kv-v2" gebruikt moet worden.
$ vault secrets enable -path=secret/ kv-v2
# Nieuwe geheimen met sleutels "username" en "password" plaatsen onder koppelingspunt "secret/" en pad "secret/zabbix/database".
$ vault kv put secret/zabbix/database username=zabbix password=<password>
# Test dat het geheim succesvol is toegevoegd.
$ vault kv get secret/zabbix/database
# Test tot slot met Curl; let op dat "data" handmatig moet worden toegevoegd na het koppelingspunt en "/v1" voor het koppelingspunt, zie ook de parameter --capath.
$ curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/database
Om databasegegevens vanuit de vault op te halen voor de Zabbix-frontend, specificeer je de volgende parameters tijdens de installatie van de frontend.
Parameter | Verplicht | Standaardwaarde | Omschrijving |
---|---|---|---|
Vault API-eindpunt | ja | https://localhost:8200 | Specificeer de URL voor het verbinden met de vault in het formaat scheme://host:port |
Vault-geheimpad | nee | Een pad naar het geheim waaruit referenties voor de database opgehaald dienen te worden met de sleutels "password" en "username". Voorbeeld: secret/zabbix/database |
|
Vault authenticatietoken | nee | Voorzie een authenticatietoken voor alleen-lezen toegang tot het geheimpad. Zie de HashiCorp-documentatie voor informatie over het maken van tokens en vault-policies. |
Om HashiCorp Vault te gebruiken voor het opslaan van waarden van gebruikersmacro's voor Vault-geheimen, zorg ervoor dat:
Alleen de Zabbix-server heeft toegang nodig tot waarden van Vault-geheimen via gebruikersmacro's uit de vault. Andere Zabbix-componenten (proxy, frontend) hebben deze toegang niet nodig.
De macrowaarde moet een verwijzingspad bevatten (als pad:sleutel
, bijvoorbeeld secret/zabbix:wachtwoord
). Het authenticatietoken dat tijdens de configuratie van de Zabbix-server is gespecificeerd (via de parameter VaultToken
) moet alleen-lezen toegang bieden tot dit pad.
Zie Macro's voor geheime gegevens voor gedetailleerde informatie over de verwerking van macrowaarden door Zabbix.
De symbolen schuine streep ("/") en dubbele punt (":") zijn gereserveerd.
Een schuine streep kan alleen gebruikt worden om een koppelingspunt van een pad te scheiden (bijvoorbeeld secret/zabbix waarbij het koppelingspunt "secret" is en het pad "zabbix" is). In het geval van Vault-macro's kan een dubbele punt alleen gebruikt worden om een pad/query te scheiden van een sleutel.
Het is mogelijk om de schuine streep- en dubbele punt-symbolen URL-gecodeerd te gebruiken als er behoefte is aan het creëren van een koppelingspunt met de naam die gescheiden wordt door een schuine streep (bijvoorbeeld foo/bar/zabbix, waarbij het koppelingspunt "foo/bar" is en het pad "zabbix" is, kan gecodeerd worden als "foo%2Fbar/zabbix") en als een koppelingspunt-naam of pad een dubbele punt moet bevatten.
secret/zabbix:wachtwoord
# "secret/" koppelingspunt inschakelen indien nog niet ingeschakeld; let op dat "kv-v2" gebruikt moet worden.
vault secrets enable -path=secret/ kv-v2
# Nieuw geheim met sleutel wachtwoord plaatsen onder koppelingspunt "secret/" en pad "secret/zabbix".
vault kv put secret/zabbix wachtwoord=<wachtwoord>
# Test dat het geheim succesvol is toegevoegd.
vault kv get secret/zabbix
# Test tot slot met Curl; let op dat "data" handmatig moet worden toegevoegd na het koppelingspunt en "/v1" voor het koppelingspunt, zie ook de parameter --capath.
curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix
To update an existing configuration for retrieving secrets from a HashiCorp Vault:
Update the Zabbix server or proxy configuration file parameters as described in the Database credentials section.
Update the DB connection settings by reconfiguring Zabbix frontend and specifying the required parameters as described in the Frontend section. To reconfigure Zabbix frontend, open the frontend setup URL in the browser:
Alternatively, these parameters can be set in the frontend configuration file (zabbix.conf.php):
$DB['VAULT'] = 'HashiCorp';
$DB['VAULT_URL'] = 'https://localhost:8200';
$DB['VAULT_DB_PATH'] = 'secret/zabbix/database';
$DB['VAULT_TOKEN'] = '<mytoken>';
$DB['VAULT_CERT_FILE'] = '';
$DB['VAULT_KEY_FILE'] = '';
$DB['VAULT_PREFIX'] = '';
To update an existing configuration for retrieving secrets from a CyberArk Vault, see CyberArk configuration.