Prometheus – Adicionando autenticação basic auth
Quando se trata de monitorar infraestruturas e sistemas complexos, o Prometheus é uma das ferramentas mais poderosas e populares disponíveis. No entanto, sua instalação padrão não inclui autenticação, o que pode ser um ponto de vulnerabilidade se o serviço estiver exposto na internet.
Criado o arquivo web.yml
O primeiro passo para adicionar autenticação ao Prometheus é criar um arquivo de configuração chamado web.yml. Este arquivo conterá as credenciais necessárias para a autenticação Basic Auth.
Gerando a senha hash
Uma das partes importantes na configuração do Basic Auth é garantir que a senha utilizada seja segura e armazenada de forma segura. Para isso, usaremos uma hash da senha. As senhas hash são uma forma de criptografar as senhas de modo que o valor armazenado não seja a senha em si, mas uma representação cifrada dela.
Para gerar essa hash, você pode usar o seguinte código Python, que utiliza a biblioteca bcrypt para criar uma senha segura:
1 2 3 4 5 6 7 8 |
!pip install bcrypt import getpass import bcrypt password = getpass.getpass("password: ") hashed_password = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()) print(hashed_password.decode()) |
Este código pode ser executado em um ambiente como o Google Colab, que é ideal para quem não possui Python instalado na máquina local. Ao executar, um prompt será aberto para que você digite sua senha e, em seguida, receberá a senha hash que será utilizada na configuração.
Configuração do arquivo web.yml
Com a senha hash em mãos, você deve adicionar essa informação no arquivo web.yml. O arquivo ficará assim:
1 2 |
basic_auth_users: admin: $2b$12$hNf2lSsxfm0.i4a.1kVpSOVyBCfIB51VRjgBUyv6kdnyTlgWj81Ay |
Aqui, admin é o nome do usuário e a sequência após admin: é a senha hash gerada anteriormente.
Subindo o Prometheus com a nova configuração
Agora que temos o arquivo web.yml configurado, é necessário iniciar o Prometheus com este arquivo de configuração. Para isso, inicie o Prometheus apontando para o arquivo web.yml.
Acessando o Prometheus
Após subir o Prometheus com as novas configurações, ao acessar a URL do Prometheus na porta 9090, a autenticação será exigida. Se você estiver utilizando o Grafana como datasource, não esqueça de atribuir também o usuário e senha.
Conclusão
Manter o Prometheus acessível sem autenticação pode expor dados críticos e operacionais a riscos desnecessários. Implementar o Basic Auth é um método simples e eficaz de proteger seu servidor Prometheus, garantindo que apenas usuários autorizados tenham acesso. Esta configuração simples oferece uma camada adicional de segurança, crucial para a manutenção da integridade e confidencialidade das métricas coletadas pela sua infraestrutura de monitoramento.