[comment]: # ({4dc10e58-317d63e9})
# 2 HashiCorp konfigurācija

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

[comment]: # ({8d9b38bd-fdcfe831})
#### Pārskats

Šajā sadaļā ir skaidrots, kā konfigurēt Zabbix, lai iegūtu noslēpumus no HashiCorp Vault KV Secrets Engine — 2. versijas.

Vault jāizvieto un jākonfigurē, kā aprakstīts oficiālajā [HashiCorp dokumentācijā](https://www.vaultproject.io/docs/secrets/kv/kv-v2).

Lai uzzinātu vairāk par TLS konfigurēšanu Zabbix vidē, skatiet [*Noslēpumu glabāšana*](/manual/config/secrets#configuring-tls).

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

[comment]: # ({4abbcd52-9c0ce526})
#### Datubāzes akreditācijas datu izgūšana

Lai veiksmīgi izgūtu noslēpumu ar datubāzes akreditācijas datiem, ir jākonfigurē abi:

-   Zabbix serveris/starpniekserveris
-   Zabbix lietotāja saskarne

##### Serveris/starpniekserveris

Lai konfigurētu Zabbix [serveri](/manual/concepts/server/server_params) vai [starpniekserveri](/manual/concepts/proxy/proxy_params),
norādiet šādus konfigurācijas parametrus konfigurācijas failā:

-   `Vault` - kuru vault pakalpojumu sniedzēju izmantot;
-   `VaultToken` - vault autentifikācijas marķieris (sīkāku informāciju skatiet Zabbix servera/starpniekservera konfigurācijas failā);
-   `VaultURL` - vault servera HTTP\[S\] URL;
-   `VaultDBPath` - ceļš uz vault noslēpumu, kurā ir datubāzes akreditācijas dati (šo opciju var izmantot tikai tad, ja nav norādīti DBUser un DBPassword); Zabbix serveris vai starpniekserveris izgūs akreditācijas datus pēc atslēgām "password" un "username";
-   `VaultPrefix` - pielāgots prefikss vault ceļam vai vaicājumam atkarībā no vault; ja nav norādīts, tiks izmantots vispiemērotākais noklusējums.

:::noteimportant
Konfigurācijas parametri `Vault`, `VaultToken`, `VaultURL` un `VaultPrefix` tiek izmantoti arī vault autentifikācijai, apstrādājot noslēpumu vault makro, ko veic Zabbix serveris (un Zabbix starpniekserveris, ja tas ir [konfigurēts](/manual/web_interface/frontend_sections/administration/general#other)). Zabbix serveris un starpniekserveri neatvērs vault noslēpumu makro, kas satur DB akreditācijas datus no VaultDBPath.<br><br>Ļoti ieteicams izmantot atšķirīgus marķierus dažādiem starpniekserveriem.
:::

Zabbix serveris un Zabbix starpniekserveris, startējoties, nolasa ar vault saistītos konfigurācijas parametrus no *zabbix_server.conf* un *zabbix_proxy.conf*.
Turklāt Zabbix serveris un Zabbix starpniekserveris startēšanas laikā vienreiz nolasa `VAULT_TOKEN` vides mainīgo un pēc tam to notīra, lai tas nebūtu pieejams, izmantojot atzarotos skriptus; tā ir kļūda, ja gan `VaultToken`, gan `VAULT_TOKEN` parametros ir norādīta vērtība.

[comment]: # ({/4abbcd52-9c0ce526})

[comment]: # ({901bf5bb-19842818})
**Piemērs**

1. Failā *zabbix_server.conf* norādiet šādus parametrus:

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

2. Izpildiet šādas CLI komandas, lai glabātuvē izveidotu nepieciešamo noslēpumu:

```bash
# Iespējojiet "secret/" montēšanas punktu, ja tas vēl nav iespējots; ņemiet vērā, ka jāizmanto "kv-v2".
vault secrets enable -path=secret/ kv-v2

# Pievienojiet jaunus noslēpumus ar atslēgām username un password zem montēšanas punkta "secret/" un ceļa "zabbix/database".
vault kv put -mount=secret zabbix/database username=zabbix password=<password>

# Pārbaudiet, vai noslēpums ir veiksmīgi pievienots.
vault kv get secret/zabbix/database

# Visbeidzot pārbaudiet ar Curl; ņemiet vērā, ka "data" manuāli jāpievieno pēc montēšanas punkta un "/v1" pirms montēšanas punkta; skatiet arī parametru --capath.
curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/database
```

3. Rezultātā Zabbix serveris iegūs šādus akreditācijas datus datubāzes autentifikācijai:

-   Lietotājvārds: zabbix
-   Parole: <password>

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

[comment]: # ({26ba1bdc-0cae9564})
##### Lietotāja saskarne

Zabbix lietotāja saskarni var konfigurēt tā, lai tā izgūtu datubāzes akreditācijas datus no glabātuves 
vai nu lietotāja saskarnes [instalēšanas](/manual/installation/frontend) laikā, vai atjauninot 
lietotāja saskarnes konfigurācijas failu (`zabbix.conf.php`). 

:::noteimportant
Ja kopš iepriekšējās lietotāja saskarnes instalēšanas glabātuves akreditācijas dati ir mainīti, atkārtoti palaidiet lietotāja saskarnes instalēšanu 
vai atjauniniet `zabbix.conf.php`. Skatiet arī: [Esošās konfigurācijas atjaunināšana](#updating-existing-configuration).
:::
  
**Lietotāja saskarnes instalēšanas** laikā konfigurācijas parametri jānorāda solī *Configure DB Connection*:

![](../../../../assets/en/manual/config/hashicorp_setup.png){width="600"}
  
-   Iestatiet parametru *Store credentials in* uz "HashiCorp Vault".
-   Norādiet savienojuma parametrus:

|Parametrs|Obligāts|Noklusējuma vērtība|Apraksts|
|---|-|---|------|
|*Vault API endpoint*|jā|https://localhost:8200|Norādiet URL savienojumam ar glabātuvi formātā `scheme://host:port`|
|*Vault prefix*|nē|/v1/secret/data/|Norādiet pielāgotu prefiksu glabātuves ceļam vai vaicājumam. Ja tas nav norādīts, tiek izmantota noklusējuma vērtība.<br>Piemērs: `/v1/secret/data/zabbix/`|
|*Vault secret path*|nē| |Ceļš uz noslēpumu, no kura datubāzes akreditācijas dati tiks izgūti, izmantojot atslēgas "password" un "username".<br>Piemērs: `database`|
|*Vault authentication token*|nē| |Norādiet autentifikācijas tokenu tikai lasīšanas piekļuvei noslēpuma ceļam.<br>Informāciju par tokenu un glabātuves politiku izveidi skatiet [HashiCorp documentation](https://learn.hashicorp.com/tutorials/vault/tokens).|

[comment]: # ({/26ba1bdc-0cae9564})

[comment]: # ({9d96212b-2e69e703})
#### Lietotāja makro vērtību izgūšana

Lai izmantotu HashiCorp Vault *Vault secret* lietotāja makro vērtību glabāšanai, pārliecinieties, ka:

- Zabbix serveris/starpniekserveris ir [konfigurēts](/manual/config/secrets/hashicorp#serverproxy) darbam ar HashiCorp Vault;
- parametrs *Vault provider* sadaļā [*Administrēšana → Vispārīgi → Cits*](/manual/web_interface/frontend_sections/administration/general#other) ir iestatīts uz "HashiCorp Vault" (noklusējums);

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

:::noteclassic
Zabbix serverim (un Zabbix starpniekserverim, ja tas ir [konfigurēts](/manual/web_interface/frontend_sections/administration/general#other)) ir nepieciešama piekļuve *Vault secret* makro vērtībām no glabātuves.
Zabbix lietotāja saskarnei šāda piekļuve nav nepieciešama.
:::

Makro vērtībai jāsatur atsauces ceļš (piemēram, `path:key`, piemēram, `macros:password`).
Autentifikācijas marķierim, kas norādīts Zabbix servera/starpniekservera konfigurācijas laikā (ar parametru `VaultToken`), jānodrošina tikai lasīšanas piekļuve šim ceļam.

Detalizētu informāciju par makro vērtību apstrādi Zabbix skatiet sadaļā [*Vault secret macros*](/manual/config/macros/secret_macros#vault-secret).

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

[comment]: # ({0481f8ba-b5cf890a})
**Ceļa sintakse**

Simboli slīpsvītra uz priekšu ("/") un kols (":") ir rezervēti.

Slīpsvītru uz priekšu var izmantot tikai, lai atdalītu montēšanas punktu no ceļa (piemēram, *secret/zabbix*, kur montēšanas punkts ir "secret" un ceļš ir "zabbix"). Vault makrosu gadījumā kolu var izmantot tikai, lai atdalītu ceļu/vaicājumu no atslēgas.

Ir iespējams URL kodēt slīpsvītras uz priekšu un kola simbolus, ja ir nepieciešams izveidot montēšanas punktu ar nosaukumu, kas ir atdalīts ar slīpsvītru uz priekšu (piemēram, *foo/bar/zabbix*, kur montēšanas punkts ir "foo/bar" un ceļš ir "zabbix", var tikt kodēts kā "foo%2Fbar/zabbix"), un ja montēšanas punkta nosaukumā vai ceļā ir jāiekļauj kols.

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

[comment]: # ({9f72277f-0c64c650})
**Piemērs**

1. Zabbix pievienojiet lietotāja makrosu {$PASSWORD} ar tipu "Vault secret" un vērtību `macros:password`

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

2. Palaidiet šādas CLI komandas, lai izveidotu nepieciešamo noslēpumu glabātuvē:

```bash
# Iespējojiet "secret/" montēšanas punktu, ja tas vēl nav iespējots; ņemiet vērā, ka jāizmanto "kv-v2".
vault secrets enable -path=secret/ kv-v2

# Ievietojiet jaunu noslēpumu ar atslēgu "password" zem montēšanas punkta "secret/" un ceļa "zabbix/macros".
vault kv put -mount=secret zabbix/macros password=<password>

# Pārbaudiet, vai noslēpums ir veiksmīgi pievienots.
vault kv get secret/zabbix/macros

# Visbeidzot pārbaudiet ar Curl; ņemiet vērā, ka "data" manuāli jāpievieno aiz montēšanas punkta un "/v1" pirms montēšanas punkta, skatiet arī parametru --capath.
curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/macros
```

3. Rezultātā Zabbix atrisinās makrosu {$PASSWORD} uz vērtību: <password>

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

[comment]: # ({e1678ca3-d8c23996})
#### Esošās konfigurācijas atjaunināšana

Lai atjauninātu esošu konfigurāciju slepeno datu iegūšanai no HashiCorp Vault:

1. Atjauniniet Zabbix servera vai starpniekservera konfigurācijas faila parametrus, kā aprakstīts sadaļā [*Datubāzes akreditācijas dati*](#retrieving-database-credentials).

2. Atjauniniet DB savienojuma iestatījumus, pārkonfigurējot Zabbix lietotāja saskarne un norādot nepieciešamos parametrus, kā aprakstīts sadaļā [*Lietotāja saskarne*](#frontend).
Lai pārkonfigurētu Zabbix lietotāja saskarne, atveriet lietotāja saskarnes iestatīšanas URL pārlūkprogrammā:

-   Apache gadījumā: http://<server_ip_or_name>/zabbix/setup.php
-   Nginx gadījumā: http://<server_ip_or_name>/setup.php

Alternatīvi, šos parametrus var iestatīt [lietotāja saskarnes konfigurācijas failā](/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. Ja nepieciešams, konfigurējiet lietotāja makrosus, kā aprakstīts sadaļā [*Lietotāja makrosu vērtības*](#frontend).

Lai atjauninātu esošu konfigurāciju slepeno datu iegūšanai no CyberArk Vault, skatiet [*CyberArk konfigurācija*](/manual/config/secrets/cyberark#update-existing-configuration).

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