Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

2 Configuração do HashiCorp

Visão geral

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.

Recuperando credenciais do banco de dados

Para recuperar um segredo com credenciais do banco de dados com sucesso, é necessário configurar ambos:

  • Zabbix server/proxy
  • Zabbix frontend
Server/proxy

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

  1. Em zabbix_server.conf, especifique os seguintes parâmetros:
Vault=HashiCorp
       VaultToken=hvs.CAESIIG_PILmULFYOsEyWHxkZ2mF2a8VPKNLE8eHqd4autYGGh4KHGh2cy5aeTY0NFNSaUp3ZnpWbDF1RUNjUkNTZEg
       VaultURL=https://127.0.0.1:8200
       VaultDBPath=database
       VaultPrefix=/v1/secret/data/zabbix/
  1. Execute os seguintes comandos CLI para criar o segredo necessário no vault:
# 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/database
  1. Como resultado, o Zabbix server irá recuperar as seguintes credenciais para autenticação no banco de dados:
  • Username: zabbix
  • Password: <password>
Frontend

O 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:

  • Defina o parâmetro Armazenar credenciais em como "HashiCorp Vault".
  • Especifique os parâmetros de conexão:
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.

Recuperando valores de macros de usuário

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

  1. No Zabbix, adicione uma macro de usuário {$PASSWORD} do tipo "Vault secret" e com o valor macros:password

  1. Execute os seguintes comandos CLI para criar o segredo necessário no vault:
# 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/macros
  1. Como resultado, o Zabbix irá resolver a macro {$PASSWORD} para o valor: <password>

Atualizando a configuração existente

Para atualizar uma configuração existente para recuperar segredos de um HashiCorp Vault:

  1. Atualize os parâmetros do arquivo de configuração do Zabbix server ou proxy conforme descrito na seção Credenciais do banco de dados.

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

  • para Apache: http://<server_ip_or_name>/zabbix/setup.php
  • para Nginx: http://<server_ip_or_name>/setup.php

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/';
  1. Configure macros de usuário conforme descrito na seção Valores de macro de usuário, se necessário.

Para atualizar uma configuração existente para recuperar segredos de um CyberArk Vault, consulte Configuração do CyberArk.