[comment]: # ({4dc10e58-317d63e9})
# 2 Configuració de HashiCorp

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

[comment]: # ({b31c199b-fdcfe831})
# Vista general

Aquesta secció explica com configurar Zabbix per recuperar secrets de HashiCorp Vault KV Secrets Engine - versió 2.

La vault s'ha de desplegar i configurar segons la [documentació] oficial de HashiCorp (https://www.vaultproject.io/docs/secrets/kv/kv-v2).

Per obtindre més informació sobre la configuració de TLS a Zabbix, consulteu la secció [*Emmagatzematge de secrets*](/manual/config/secrets#configuring_tls).

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

[comment]: # ({5e0326cb-9c0ce526})
### Recuperar les credencials de Base de dades

Per accedir a un secret amb credencials de base de dades, cal configurar ambdues:

- Servidor/proxy Zabbix
- Interfície de Zabbix

#### Servidor i proxy
Per obtindre les credencials de la base de dades del [servidor](/manual/appendix/config/zabbix_server) o [proxy](/manual/appendix/config/zabbix_proxy) Zabbix des de la vault, especifiqueu els paràmetres de configuració següents al fitxer de configuració:

- `Vault` - quin proveïdor de vault s'ha d'emprar;
- `VaultToken` - testimoni d'autenticació de vault (veieu el fitxer de configuració del servidor/proxy Zabbix per a més informació);
-  `VaultURL` - URL HTTP[S] del servidor de vault;
- `VaultDBPath` - camí al secret de la vault que conté les credencials de la base de dades (aquesta opció només es pot emprar si no s'han definit DBUser ni DBPassword); el servidor o el proxy Zabbix recuperaran les credencials mitjançant les claus "mot de pas" i "nom d'usuari";
-`VaultPrefix` - prefix personalitzat de la ruta o consulta del vault, depenent d'aquest mateix; si no s'especifica, s'empra el valor per de fecte més escaient.

:::noteimportant
El servidor Zabbix també empra els paràmetres de configuració `VaultToken`, `VaultURL` i `VaultPrefix` per a l'autenticació de vault quan es processen macros secretes de vault.
:::

El servidor Zabbix i el proxy Zabbix llegeixen els paràmetres de configuració relacionats amb la vault de *zabbix_server.conf* i *zabbix_proxy.conf* en iniciar-se.
A més, el servidor Zabbix i el proxy Zabbix també llegiran la variable d'entorn `VAULT_TOKEN` una vegada durant l'inici i la desactivaran de manera que no sigui disponible mitjançant scripts bifurcats; és un error si tant `VaultToken` com `VAULT_TOKEN` contenen valor.

[comment]: # ({/5e0326cb-9c0ce526})

[comment]: # ({901bf5bb-19842818})
##### Exemple

1. Especifiqueu a *zabbix_server.conf*:

```ini
    Vault=HashiCorp
    VaultToken=hvs.CAESIIG_PILmULFYOsEyWHxkZ2mF2a8VPKNLE8eHqd4autYGGh4KHGh2cy5aeTY0NFNSaUp3ZnpWbDF1RUNjUkNTZEg
    VaultURL=https://127.0.0.1:8200
    VaultDBPath=database
    VaultPrefix=/v1/secret/data/zabbix/
```
 
2. Executeu les ordres CLI següents per crear el secret necessari al magatzem de claus:

```bash
# Habiliteu el punt de muntatge "secret/" si encara no és habilitat, tingueu en compte que s'ha d'emprar "kv-v2"
vault secrets enable -path=secret/ kv-v2

 # Poseu nous secrets amb el nom d'usuari i el mot de pas de les claus al punt de muntatge "secret/" i el camí "secret/zabbix/base de dades"
vault kv put -mount=secret zabbix/database username=zabbix password=<password>

# Valideu que el secret s'ha afegit correctament
vault kv get secret/zabbix/database

# Finalment, proveu amb Curl, tingueu en compte que les "dades" s'han d'afegir manualment després del punt de muntatge i "/v1" abans del punt de muntatge, veieu també el paràmetre --capath
curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/database
```

3. Com a resultat d'aquesta configuració, el servidor Zabbix recuperarà les credencials següents per a l'autenticació de la base de dades:

- Username: zabbix 
- Password: <password>

[comment]: # ({/901bf5bb-19842818})

[comment]: # ({80fa2355-0cae9564})
#### Tauler

Per obtindre les credencials de la base de dades per a la interfície Zabbix des de la caixa de seguretat, especifiqueu la configuració necessària durant la [instal·lació] (/manual/installation/frontend) de la interfície o actualitzant l'arxiu de configuració de la interfície (`zabbix.conf.php`).

:::noteimportant
Si les credencials del magatzem s'han canviat des de la instal·lació anterior, torneu a executar la instal·lació 
o actualitzeu `zabbix.conf.php`. Vegeu també: [Actualització de la configuració existent](#updating_existing_configuration).
:::

Durant la **instal·lació de la interfície**, els paràmetres de configuració s'han d'especificar a la passa *Configurar la connexió de base de dades*:

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

- Establiu el paràmetre *Emgatzemar credencials a* a "HashiCorp Vault".

- Especifiqueu els paràmetres de connexió:

|Paràmetre|Obligatori|Valor per defecte|Descripció|
|---|-|---|------|
|*Vault API endpoint*|sí|https://localhost:8200|Especifiqueu l'URL per connectar-vos al vault en el format `scheme://host:port`|
|*Prefix de vault*|no|/v1/secret/data/zabbix/|Proporcioneu un prefix personalitzat per a la ruta o la consulta del vault. Si no s'especifica, s'empra el valor predeterminat.|
|*Camí secret de vault*|no| |Un camí al secret des d'on es recuperaran les credencials de la base de dades mitjançant les claus "mot de pas" i "nom d'usuari".<br>Exemple: `zabbix/database`|
|*Fitxa d'autenticació de Vault*|no| |Proporcioneu un testimoni d'autenticació per accedir només de lectura al camí secret.<br>Consulteu [documentació de HashiCorp](https://learn.hashicorp.com/tutorials/vault/tokens) per obtindre informació sobre com crear fitxes i polítiques de vault.|

[comment]: # ({/80fa2355-0cae9564})

[comment]: # ({1d363308-2e69e703})
#### Recuperar valors de macro d'usuari

Per emprar HashiCorp Vault per emmagatzemar els valors de macro d'usuari *Vault secret*, assegureu-vos que:

- El servidor Zabbix és [configurat](/manual/config/secrets/hashicorp#server_and_proxies) per treballar amb HashiCorp Vault;
- el paràmetre *Proveïdor de Vault* a [*Administració → General → Altres*](/manual/web_interface/frontend_sections/administration/general#other-parameters) s'estableix a "HashiCorp Vault" (per defecte).

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

:::noteclassic
Només el servidor Zabbix requereix accés als valors de macro *Vault secret* des de la volta.
Altres components de Zabbix (proxy, frontend) no han de menester pas aquest accés.
:::

El valor de la macro ha de contindre un camí de referència (com a `camí:clau`, per exemple, `zabbix:mot_de_pas`).
El testimoni d'autenticació especificat durant la configuració del servidor Zabbix (pel paràmetre `VaultToken`) ha de proporcionar accés només de lectura a aquest camí.

Veieu [*Vault secret macros*](/manual/config/macros/secret_macros#vault_secret) per obtindre informació detallada sobre el processament de valors de macro per Zabbix.

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

[comment]: # ({0481f8ba-b5cf890a})
**Sintaxi de la ruta**

Els símbols barra inclinada ("/") i dos punts (":") són reservats.

Una barra inclinada només es pot emprar per separar un punt de muntatge d'un camí (per exemple, *secret/zabbix* on el punt de muntatge és "secret" i "zabbix" és el camí) i, en el cas de les macros de Vault, els dos punts només poden emprar-se per separar una ruta/consulta d'una clau.

És possible codificar URL "/" i ":" si cal crear un punt de muntatge amb el nom separat per una barra inclinada (per exemple, *foo/bar/zabbix*, on el punt de muntatge és " foo/bar" i el camí és "zabbix", com "foo%2Fbar/zabbix") i si el nom del punt de muntatge o el camí ha de contindre dos punts.

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

[comment]: # ({9f72277f-0c64c650})
**Exemple**

1. A Zabbix: afegiu la macro d'usuari {$PASSWORD} amb el tipus "Vault secret" i el valor `macros:password`

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

2. Executeu les ordres CLI següents per crear el secret necessari al magatzem:

```bash
     # Habiliteu el punt de muntatge "secret/" si encara no és habilitat, tingueu en compte que s'ha d'emprar "kv-v2"
    vault secrets enable -path=secret/ kv-v2

     # Poseu un nou secret amb el "mot de pas" de la clau sota el punt de muntatge "secret/" i el camí "zabbix/macros"
    vault kv put -mount=secret zabbix/macros password=<password>

     # Comproveu que el secret s'ha afegit correctament
    vault kv get secret/zabbix/macros

     # Finalment, proveu amb Curl, tingueu en compte que les "dades" s'han d'afegir manualment després del punt de muntatge i "/v1" abans del punt de muntatge, veieu també el paràmetre --capath
    curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/macros
```

3. Ara la macro {$PASSWORD} es resoldrà amb el valor: <password>

[comment]: # ({/9f72277f-0c64c650})

[comment]: # ({e1678ca3-d8c23996})
#### S'està actualitzant la configuració existent

Per actualitzar una configuració existent per recuperar secrets d'una volta de HashiCorp:

1. Actualitzeu els paràmetres del fitxer de configuració del servidor Zabbix o del servidor intermediari tal com es descriu a la secció [*Credencials de la base de dades*](#retrieving-database-credentials).

2. Actualitzeu la configuració de la connexió a la base de dades reconfigurant la interfície Zabbix i especificant els paràmetres necessaris tal com es descriu a la secció [*Frontend*](#frontend).
Per reconfigurar la interfície de Zabbix, obriu l'URL de configuració de la interfície al navegador:

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

Com a alternativa, aquests paràmetres es poden establir al [fitxer de configuració d la interfície](/manual/installation/frontend#install) (*zabbix.conf.php*):

```ini
$DB['VAULT'] = 'HashiCorp';
$DB['VAULT_URL'] = 'https://localhost:8200';
$DB['VAULT_DB_PATH'] = 'database';
$DB['VAULT_TOKEN'] = '<mytoken>';
$DB['VAULT_CERT_FILE'] = '';
$DB['VAULT_KEY_FILE'] = '';
$DB['VAULT_PREFIX'] = '/v1/secret/data/zabbix';
```

3. Configureu les macros d'usuari tal com es descriu a la secció [*Valors de macro d'usuari*](#frontend), si cal.

Per actualitzar una configuració existent per recuperar secrets d'un CyberArk Vault, consulteu [*CyberArk configuration*](/manual/config/secrets/cyberark#update-existing-configuration).

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