Deze sectie legt uit hoe Áú»¢¶Ä²© 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 .
Voor meer informatie over het configureren van TLS in Áú»¢¶Ä²©, zie Opslag van geheimen.
Toegang tot een geheim met databasegegevens is apart geconfigureerd voor elke afzonderlijke Áú»¢¶Ä²©-component.
Om databasegegevens vanuit de vault op te halen voor Áú»¢¶Ä²© 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 Áú»¢¶Ä²© server/proxy voor details);VaultURL
- URL van de vault-server via HTTP[S];VaultDBPath
- pad naar het vault-geheim met databasegegevens; Áú»¢¶Ä²©-server of proxy zal de referenties ophalen met de sleutels "password" en "username".De Áú»¢¶Ä²©-server gebruikt ook de Vault
, VaultToken
en VaultURL
configuratieparameters voor vault-authenticatie bij het verwerken van vault-geheimmacro's.
Zowel de Áú»¢¶Ä²©-server als de Áú»¢¶Ä²©-proxy lezen de met de vault verband houdende configuratieparameters uit zabbix_server.conf en zabbix_proxy.conf bij het opstarten. Bovendien zullen de Áú»¢¶Ä²©-server en Áú»¢¶Ä²©-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 Áú»¢¶Ä²©-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 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 Áú»¢¶Ä²©-server heeft toegang nodig tot waarden van Vault-geheimen via gebruikersmacro's uit de vault. Andere Áú»¢¶Ä²©-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 Áú»¢¶Ä²©-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 Áú»¢¶Ä²©.
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
Om een bestaande configuratie bij te werken voor het ophalen van geheimen uit een HashiCorp Vault:
Werk de parameters in het configuratiebestand van de Áú»¢¶Ä²©-server of proxy bij zoals beschreven in de sectie Databasegegevens.
Werk de DB-verbindinginstellingen bij door Áú»¢¶Ä²© frontend opnieuw te configureren en de vereiste parameters op te geven zoals beschreven in de sectie Frontend. Om Áú»¢¶Ä²© frontend opnieuw te configureren, open je de frontend setup-URL in de browser:
Als alternatief kunnen deze parameters worden ingesteld in het configuratiebestand van de frontend (zabbix.conf.php):
$DB['VAULT'] = 'HashiCorp';
$DB['VAULT_URL'] = 'https://localhost:8200';
$DB['VAULT_DB_PATH'] = 'secret/zabbix/database';
$DB['VAULT_TOKEN'] = '<mijntoken>';
$DB['VAULT_CERT_FILE'] = '';
$DB['VAULT_KEY_FILE'] = '';
Om een bestaande configuratie bij te werken voor het ophalen van geheimen uit een CyberArk Vault, zie CyberArk-configuratie.