Sidebar

13 Armazenamento de segredos

Visão geral

É possível armazenar algumas informações confidenciais secretamente na HashiCorp Mecanismo de segredos do Vault KV - Versão 2. Os segredos podem ser salvos para:

  • valores de macro do usuário
  • credenciais de acesso ao banco de dados

O Zabbix fornece acesso somente leitura aos segredos no Vault, assumindo que segredos são gerenciados por outra pessoa.

Valores de macro do usuário

É possível armazenar valores de macro do usuário secretamente no Vault.

Um "segredo do Vault" valor de uma macro de usuário contém um caminho de referência (como 'path:key', para exemplo "secret/zabbix:password").

Os seguintes comandos podem ser usados para definir o valor para o caminho mencionado no exemplo:

# Habilite o ponto de montagem "secret/" se ainda não estiver habilitado, observe que "kv-v2" deve ser usado
       $ segredos do cofre habilitam -path=secret/ kv-v2
       
       # Coloque o novo segredo com a senha da chave no ponto de montagem "secret/" e caminho "secret/zabbix"
       $ vault kv colocar secret/zabbix password=<senha>
       
       # Testa se o segredo foi adicionado com sucesso
       $ vault kv obter segredo/zabbix
       
       # 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

O valor secreto é recuperado pelo servidor Zabbix em cada atualização de dados de configuração e é armazenado no cache de configuração. O token de autenticação para um acesso somente leitura aos caminhos de referência deve ser fornecido na configuração do servidor (parâmetro 'VaultToken'). Se o o valor da macro não pode ser recuperado com sucesso o item correspondente usar o valor ficará incompatível.

Também é possível acionar a atualização de valores secretos do Vault, usando uma linha de comando 'secrets_reload' opção.

O proxy Zabbix nunca se comunica com o Vault para obter outros segredos além credenciais do banco de dados. Valores secretos no proxy Zabbix são recuperados de Servidor Zabbix em cada sincronização de configuração e armazenado na configuração cache da mesma forma que no servidor Zabbix.

Isso significa que um proxy Zabbix não pode iniciar a coleta de dados após uma reinicialização até receber a atualização dos dados de configuração do servidor Zabbix para a primeira vez. A criptografia deve ser habilitada entre o servidor Zabbix e procuração; caso contrário, uma mensagem de aviso do servidor é registrada.

Credenciais do banco de dados

É suportado para armazenar credenciais de banco de dados usadas pelo servidor Zabbix, proxies e frontend secretamente no Vault:

  • Parâmetros relacionados ao cofre para recuperar credenciais de banco de dados podem ser opcionalmente inserido no frontend instalação assistente.

As credenciais do banco de dados recuperadas do Vault serão armazenadas em cache pelo a parte dianteira. Observe que o diretório de arquivos temporários do sistema de arquivos é usado para cache de credencial de banco de dados no frontend. Você pode usar o ZBX_DATA_CACHE_TTL constante para controlar com que frequência o cache de dados é atualizado/invalidado.

  • Para servidor/proxy pode ser usado o parâmetro de configuração VaultDBPath para especificar o caminho de onde as credenciais para o banco de dados serão recuperado pelas chaves 'password' e 'username' (por exemplo: segredo/zabbix/banco de dados).

Os seguintes comandos podem ser usados para definir os valores para o caminho mencionado no exemplo:

# Habilite o ponto de montagem "secret/" se ainda não estiver habilitado, observe que "kv-v2" deve ser usado
       $ segredos do cofre habilitam -path=secret/ kv-v2
       
       # Coloque novos segredos com as chaves nome de usuário e senha no ponto de montagem "secret/" e caminho "secret/zabbix/database"
       $ vault kv colocar secret/zabbix/database username=zabbix password=<senha>
       
       # Testa se o segredo foi adicionado com sucesso
       $ vault kv obter secret/zabbix/database
       
       # 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/database

Parâmetros de configuração

Para o servidor/proxy Zabbix, novos parâmetros de configuração foram adicionados para Autenticação de cofre e recuperação de credenciais de banco de dados:

  • VaultToken - Token de autenticação do Vault (veja Zabbix servidor/proxy arquivo de configuração para detalhes)
  • VaultURL - URL do servidor de cofre HTTP[S]
  • VaultDBPath - Caminho do cofre de onde as credenciais para o banco de dados serão recuperado pelas chaves 'password' e 'username' (por exemplo: segredo/zabbix/banco de dados)

O servidor Zabbix e o proxy Zabbix lêem a configuração relacionada ao Vault parâmetros de zabbix_server.conf e zabbix_proxy.conf na inicialização.

O servidor Zabbix e o proxy Zabbix lerão adicionalmente "VAULT_TOKEN" variável de ambiente uma vez durante a inicialização e desmarque-a para que não estar disponível através de scripts bifurcados; é um erro se ambos VaultToken e VAULT_TOKEN contêm valor.

Barra e dois pontos são símbolos reservados. Barra só pode ser usado para separar o ponto de montagem do caminho (por exemplo, secret/zabbix onde o ponto de montagem é "secreto" e "zabbix" é o caminho) e, no caso de Macros de cofre, dois pontos só podem ser usados para separar o caminho da chave. Isto é possível codificar URL "/" e ":" se houver necessidade de criar ponto com nome separado por barra (por exemplo foo/bar/zabbix onde o ponto de montagem é "foo/bar" e o caminho é "zabbix" como "foo%2Fbar/zabbix") e se o nome ou caminho do ponto de montagem precisar conter cólon.

Configurando o TLS

O certificado assinado por uma autoridade de certificação (CA) deve ser adicionado ao o armazenamento CA padrão. Alternativamente, um local de armazenamento CA personalizado pode ser especificado usando o parâmetro de configuração SSLCALocation; note que em neste caso, o diretório de certificados deve ser preparado usando o openssl utilitário c_rehash, por exemplo, configure SSLCALocation e copie "ca.pem" dentro desse diretório, execute o seguinte comando:

$ c_rehash .