[comment]: # translation:outdated

[comment]: # ({c8df14b9-317d63e9})
# 2 HashiCorp-configuratie

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](https://www.vaultproject.io/docs/secrets/kv/kv-v2).

Voor meer informatie over het configureren van TLS in Zabbix, zie [*Opslag van geheimen*](/manual/config/secrets#configuring_tls).

[comment]: # ({/c8df14b9-317d63e9})

[comment]: # ({new-fdcfe831})

#### Overview

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](https://www.vaultproject.io/docs/secrets/kv/kv-v2).

To learn about configuring TLS in Zabbix, see [*Storage of secrets*](/manual/config/secrets#configuring_tls).

[comment]: # ({/new-fdcfe831})

[comment]: # ({9196a1a9-9c0ce526})
### Databasegegevens

Toegang tot een geheim met databasegegevens is apart geconfigureerd voor elke afzonderlijke Zabbix-component.

#### Server en proxies

Om databasegegevens vanuit de vault op te halen voor Zabbix [server](/manual/appendix/config/zabbix_server) of [proxy](/manual/appendix/config/zabbix_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".

:::noteimportant
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.

[comment]: # ({/9196a1a9-9c0ce526})

[comment]: # ({8d952e46-19842818})
##### Voorbeeld

1. In *zabbix_server.conf* specificeer je de volgende parameters:

```ini
Vault=HashiCorp
VaultToken=hvs.CAESIIG_PILmULFYOsEyWHxkZ2mF2a8VPKNLE8eHqd4autYGGh4KHGh2cy5aeTY0NFNSaUp3ZnpWbDF1RUNjUkNTZEg
VaultURL=https://127.0.0.1:8200
VaultDBPath=secret/zabbix/database
```

2. Voer de volgende CLI-commando's uit om het vereiste geheim in de vault aan te maken:

```bash
# "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
```

3. Als resultaat zal de Zabbix-server de volgende referenties ophalen voor database-authenticatie:

-   Gebruikersnaam: zabbix
-   Wachtwoord: <password>

[comment]: # ({/8d952e46-19842818})

[comment]: # ({821d09d4-0cae9564})
#### Frontend

Om databasegegevens vanuit de vault op te halen voor de Zabbix-frontend, specificeer je de volgende parameters tijdens de [installatie](/manual/installation/frontend) van de frontend.

1. Bij de stap *Configure DB Connection*, stel de parameter *Store credentials in* in op "HashiCorp Vault".

![](../../../../assets/en/manual/config/hashicorp_setup.png){width="600"}

2. Vul vervolgens de aanvullende parameters in:

|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".<br>Voorbeeld: `secret/zabbix/database`|
|Vault authenticatietoken|nee| |Voorzie een authenticatietoken voor alleen-lezen toegang tot het geheimpad.<br>Zie de [HashiCorp-documentatie](https://learn.hashicorp.com/tutorials/vault/tokens) voor informatie over het maken van tokens en vault-policies.|

[comment]: # ({/821d09d4-0cae9564})

[comment]: # ({a0e0059f-2e69e703})
### Waarden van gebruikersmacro's

Om HashiCorp Vault te gebruiken voor het opslaan van waarden van gebruikersmacro's voor *Vault-geheimen*, zorg ervoor dat:

- De Zabbix-server is [geconfigureerd](/manual/config/secrets/hashicorp#server_and_proxies) om te werken met HashiCorp Vault;
- De parameter *Vault-provider* in [*Beheer → Algemeen → Overig*](/manual/web_interface/frontend_sections/administration/general#other-parameters) is ingesteld op "HashiCorp Vault" (standaard).

![](../../../../assets/en/manual/config/provider_hashicorp.png)

:::noteclassic
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*](/manual/config/macros/secret_macros#vault_secret) voor gedetailleerde informatie over de verwerking van macrowaarden door Zabbix.

[comment]: # ({/a0e0059f-2e69e703})

[comment]: # ({e908146a-b5cf890a})
#### Syntax voor paden

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.

[comment]: # ({/e908146a-b5cf890a})

[comment]: # ({4ddcc96e-0c64c650})
#### Voorbeeld

1. Voeg in Zabbix een gebruikersmacro {$PASSWORD} toe van het type "Vault-geheim" en met de waarde `secret/zabbix:wachtwoord`

![](../../../../assets/en/manual/config/hashi_macro.png)

2. Voer de volgende CLI-commando's uit om het vereiste geheim in de vault aan te maken:

```bash
# "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
```

3. Als resultaat zal Zabbix de macro {$PASSWORD} oplossen naar de waarde: <wachtwoord>

[comment]: # ({/4ddcc96e-0c64c650})

[comment]: # ({new-d8c23996})
#### Updating existing configuration

To update an existing configuration for retrieving secrets from a HashiCorp Vault:

1. Update the Zabbix server or proxy configuration file parameters as described in the [*Database credentials*](#database-credentials) section.

2. Update the DB connection settings by reconfiguring Zabbix frontend and specifying the required parameters as described in the [*Frontend*](#frontend) section.
To reconfigure Zabbix frontend, open the frontend setup URL in the browser:

-   for Apache: http://<server_ip_or_name>/zabbix/setup.php
-   for Nginx: http://<server_ip_or_name>/setup.php

Alternatively, these parameters can be set in the [frontend configuration file](/manual/installation/frontend#install) (*zabbix.conf.php*):

```ini
$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']             = '';
```

3. Configure user macros as described in the [*User macro values*](#frontend) section, if necessary.

To update an existing configuration for retrieving secrets from a CyberArk Vault, see [*CyberArk configuration*](/manual/config/secrets/cyberark#update-existing-configuration).

[comment]: # ({/new-d8c23996})
