Esta seção explica como configurar o Zabbix para recuperar segredos do HashiCorp Vault KV Secrets Engine - Versão 2.
O vault deve ser implantado e configurado conforme descrito na documentação oficial do HashiCorp.
Para saber mais sobre como configurar o TLS no Zabbix, consulte Armazenamento de segredos.
Para recuperar um segredo com credenciais do banco de dados com sucesso, é necessário configurar ambos:
Para configurar o Zabbix server ou proxy, especifique os seguintes parâmetros de configuração no arquivo de configuração:
Vault - qual provedor de vault deve ser usado;VaultToken - token de autenticação do vault (consulte o arquivo de configuração do Zabbix server/proxy para detalhes);VaultURL - URL HTTP[S] do servidor vault;VaultDBPath - caminho para o segredo do vault contendo as credenciais do banco de dados (esta opção só pode ser usada se DBUser e DBPassword não forem especificados); o Zabbix server ou proxy irá recuperar as credenciais pelas chaves "password" e "username";VaultPrefix - prefixo personalizado para o caminho ou consulta do vault, dependendo do vault; se não especificado, o padrão mais adequado será usado.Os parâmetros de configuração Vault, VaultToken, VaultURL e VaultPrefix também são usados para autenticação no vault ao processar macros de vault secreto pelo Zabbix server (e Zabbix proxy, se configurado). O Zabbix server e os proxies não abrirão macros de segredo do vault que contenham credenciais de banco de dados do VaultDBPath.
É fortemente recomendado usar tokens diferentes para proxies diferentes.
O Zabbix server e o Zabbix proxy leem os parâmetros de configuração relacionados ao vault dos arquivos zabbix_server.conf e zabbix_proxy.conf durante a inicialização. Além disso, o Zabbix server e o Zabbix proxy lerão a variável de ambiente VAULT_TOKEN uma vez durante a inicialização e a removerão para que não fique disponível através de scripts derivados; é um erro se ambos os parâmetros VaultToken e VAULT_TOKEN contiverem um valor.
Exemplo
Vault=HashiCorp
VaultToken=hvs.CAESIIG_PILmULFYOsEyWHxkZ2mF2a8VPKNLE8eHqd4autYGGh4KHGh2cy5aeTY0NFNSaUp3ZnpWbDF1RUNjUkNTZEg
VaultURL=https://127.0.0.1:8200
VaultDBPath=database
VaultPrefix=/v1/secret/data/zabbix/# Habilite o ponto de montagem "secret/" se ainda não estiver habilitado; observe que "kv-v2" deve ser usado.
vault secrets enable -path=secret/ kv-v2
# Adicione novos segredos com as chaves username e password sob o ponto de montagem "secret/" e caminho "zabbix/database".
vault kv put -mount=secret zabbix/database username=zabbix password=<password>
# Teste se o segredo foi adicionado com sucesso.
vault kv get secret/zabbix/database
# Por fim, teste com Curl; observe que "data" precisa ser adicionado manualmente após o ponto de montagem e "/v1" antes do ponto de montagem, veja também o parâmetro --capath.
curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/databaseO frontend do Zabbix pode ser configurado para recuperar as credenciais do banco de dados do vault durante a instalação do frontend ou atualizando o arquivo de configuração do frontend (zabbix.conf.php).
Se as credenciais do vault foram alteradas desde a instalação anterior do frontend, execute novamente a instalação do frontend ou atualize o zabbix.conf.php. Veja também: Atualizando configuração existente.
Durante a instalação do frontend, os parâmetros de configuração devem ser especificados na etapa Configurar conexão com o BD:

| Parâmetro | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|
| Endpoint da API do Vault | sim | https://localhost:8200 | Especifique a URL para conectar ao vault no formato scheme://host:port |
| Prefixo do Vault | não | /v1/secret/data/ | Forneça um prefixo personalizado para o caminho ou consulta do vault. Se não especificado, o padrão será usado. Exemplo: /v1/secret/data/zabbix/ |
| Caminho do segredo do Vault | não | Um caminho para o segredo de onde as credenciais para o banco de dados devem ser recuperadas pelas chaves "password" e "username". Exemplo: database |
|
| Token de autenticação do Vault | não | Forneça um token de autenticação para acesso somente leitura ao caminho do segredo. Consulte a documentação da HashiCorp para informações sobre criação de tokens e políticas do vault. |
Para usar o HashiCorp Vault para armazenar valores de macro de usuário do tipo Vault secret, certifique-se de que:

O Zabbix server (e o Zabbix proxy, se configurado) requer acesso aos valores de macro Vault secret do vault. O Zabbix frontend não precisa desse acesso.
O valor da macro deve conter um caminho de referência (como path:key, por exemplo, macros:password). O token de autenticação especificado durante a configuração do Zabbix server/proxy (pelo parâmetro VaultToken) deve fornecer acesso somente leitura a esse caminho.
Veja Macros de segredo do Vault para informações detalhadas sobre o processamento do valor da macro pelo Zabbix.
Sintaxe do caminho
Os símbolos barra ("/") e dois pontos (":") são reservados.
Uma barra só pode ser usada para separar um ponto de montagem de um caminho (por exemplo, secret/zabbix, onde o ponto de montagem é "secret" e o caminho é "zabbix"). No caso das macros do Vault, dois pontos só podem ser usados para separar um caminho/consulta de uma chave.
É possível codificar em URL os símbolos de barra e dois pontos se houver necessidade de criar um ponto de montagem com o nome separado por uma barra (por exemplo, foo/bar/zabbix, onde o ponto de montagem é "foo/bar" e o caminho é "zabbix", pode ser codificado como "foo%2Fbar/zabbix") e se um nome de ponto de montagem ou caminho precisar conter dois pontos.
Exemplo
macros:password
# Habilite o ponto de montagem "secret/" se ainda não estiver habilitado; observe que "kv-v2" deve ser usado.
vault secrets enable -path=secret/ kv-v2
# Adicione um novo segredo com a chave "password" sob o ponto de montagem "secret/" e caminho "zabbix/macros".
vault kv put -mount=secret zabbix/macros password=<password>
# Teste se o segredo foi adicionado com sucesso.
vault kv get secret/zabbix/macros
# Finalmente, teste com Curl; observe que "data" precisa ser adicionado manualmente após o ponto de montagem e "/v1" antes do ponto de montagem, veja também o parâmetro --capath.
curl --header "X-Vault-Token: <VaultToken>" https://127.0.0.1:8200/v1/secret/data/zabbix/macrosPara atualizar uma configuração existente para recuperar segredos de um HashiCorp Vault:
Atualize os parâmetros do arquivo de configuração do Zabbix server ou proxy conforme descrito na seção Credenciais do banco de dados.
Atualize as configurações de conexão com o banco de dados reconfigurando o frontend do Zabbix e especificando os parâmetros necessários conforme descrito na seção Frontend. Para reconfigurar o frontend do Zabbix, abra a URL de configuração do frontend no navegador:
Como alternativa, esses parâmetros podem ser definidos no arquivo de configuração do frontend (zabbix.conf.php):
$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/';Para atualizar uma configuração existente para recuperar segredos de um CyberArk Vault, consulte Configuração do CyberArk.