← Todos os artigos
Cloud e DevOps

Como integrar HashiCorp Vault a Kubernetes para injeção dinâmica de segredos

Guia prático para injetar segredos do HashiCorp Vault diretamente em pods Kubernetes, eliminando armazenamento estático e melhorando segurança com segredos dinâmicos.

2 de leitura
Como integrar HashiCorp Vault a Kubernetes para injeção dinâmica de segredos
Foto por Masood Aslami

Integrando HashiCorp Vault com Kubernetes para injeção dinâmica de segredos em pods

Introdução

Em ambientes Kubernetes, gerenciar segredos de forma segura e dinâmica é um desafio constante. O HashiCorp Vault surge como uma solução robusta para armazenamento, controle de acesso e rotação de segredos, mas integrá-lo ao Kubernetes de maneira eficiente pode ser complexo. Este artigo explica como injetar segredos do Vault diretamente em pods, eliminando a necessidade de armazenar informações sensíveis em imagens ou configurações estáticas.

Conceitos Fundamentais

O que é o HashiCorp Vault?

O HashiCorp Vault é uma ferramenta de gerenciamento de segredos que oferece: - Armazenamento seguro de senhas, chaves API e certificados - Controle de acesso baseado em políticas (RBAC) - Rotação automática de segredos - Auditoria detalhada de acessos

Ele funciona como um cofre digital, onde os segredos são armazenados e acessíveis apenas mediante autenticação e autorização adequadas.

Injeção de Segredos no Kubernetes

A injeção de segredos no Kubernetes tradicionalmente é feita por meio de: - Secrets estáticos (montados como volumes) - Variáveis de ambiente (via ConfigMaps ou Secrets)

No entanto, esses métodos apresentam limitações: - Segredos estáticos não são rotacionados automaticamente - ConfigMaps e Secrets básicos não oferecem controle de acesso fino - Segredos podem ser expostos em logs ou depuração

A integração com o Vault resolve esses problemas ao fornecer segredos dinâmicos e gerenciados centralizadamente.

Arquitetura da Solução

A arquitetura envolve: 1. Vault Server: Armazena e gerencia os segredos 2. Vault Agent Injector: Webhook admission controller que injeta o Vault Agent nos pods 3. Vault Agent Sidecar: Responsável por buscar e renovar os segredos 4. Pod: Recebe os segredos como variáveis de ambiente ou arquivos

Pré-requisitos

Antes de iniciar, certifique-se de ter: - Um cluster Kubernetes funcional - Helm instalado (para facilitar a instalação do Vault) - Permissões de cluster-admin para instalar o Vault - Um servidor Vault configurado e acessível do cluster

Passo a Passo: Configuração da Integração

1. Instalar o HashiCorp Vault no Kubernetes

A forma mais simples é usando o Helm:

bash helm repo add hashicorp https://helm.releases.hashicorp.com helm repo update helm install vault hashicorp/vault --set "server.dev.enabled=true"

Nota: Em produção, substitua server.dev.enabled=true por uma configuração adequada com persistência e alta disponibilidade.

2. Habilitar o Vault Agent Injector

O Vault Agent Injector é um componente que injeta automaticamente o Vault Agent nos pods que solicitam segredos.

bash helm install vault-agent-injector hashicorp/vault --set "injector.enabled=true"

Verifique a instalação:

bash kubectl get pods -l app.kubernetes.io/instance=vault-agent-injector

3. Configurar o Vault para Autenticação Kubernetes

O Vault precisa autenticar pods Kubernetes. Para isso, configure o método de autenticação Kubernetes:

bash vault auth enable kubernetes

Configure a role que define quais pods podem acessar quais segredos:

bash vault write auth/kubernetes/role/my-app \ bound_service_account_names=my-app \ bound_service_account_namespaces=default \ policies=my-app-policy \ ttl=1h

4. Criar uma Política de Acesso no Vault

Defina quais segredos um pod pode acessar:

```bash vault policy write my-app-policy - <

Fique por dentro das novidades

Receba as principais notícias do DigitalTech por e-mail ou WhatsApp.

Você poderá cancelar a inscrição quando desejar.