ConfigMaps e Secrets
Gerencie dados de configuração e informações confidenciais com segurança em suas implantações do Kubernetes usando ConfigMaps e Secrets.
ConfigMaps e Secrets é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Introdução a ConfigMaps e segredos
Boas-vindas! Nesta lição, você aprenderá a gerenciar dados de configuração e informações confidenciais no Kubernetes. Exploraremos os ConfigMaps e os segredos, duas ferramentas essenciais para implantações de aplicações flexíveis e seguras.

Por que externalizar a configuração?
Imagine definir diretamente na imagem Docker da sua aplicação as credenciais do banco de dados ou as chaves de API. Isso dificulta as atualizações e expõe dados confidenciais.
- Inflexibilidade: as alterações exigem a reconstrução da imagem.
- Risco de segurança: os dados confidenciais ficam incorporados à imagem.
- Específico do ambiente: ambientes diferentes (desenvolvimento, produção) precisam de configurações diferentes.
ConfigMaps: dados não confidenciais
Um ConfigMap é um objeto do Kubernetes usado para armazenar dados de configuração não confidenciais como pares de chave e valor. Pense nele como um local central para as configurações da sua aplicação, como níveis de registro ou endpoints de API.
Ele separa a configuração do código da aplicação, tornando suas implantações mais portáteis e fáceis de gerenciar.
Defina um ConfigMap
Você pode criar um ConfigMap a partir de valores literais, arquivos ou diretórios. Veja um exemplo simples definido em um arquivo YAML:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-app-config
data:
log_level: "INFO"
api_endpoint: "http://myapi.example.com"ConfigMap como variáveis de ambiente
Depois de criado, um pod pode consumir os dados de um ConfigMap como variáveis de ambiente. Essa é uma maneira comum de passar configurações para sua aplicação.
Veja como um pod usa nosso my-app-config:
apiVersion: v1
kind: Pod
metadata:
name: configmap-env-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo Log Level: $LOG_LEVEL; echo API: $API_ENDPOINT"]
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: my-app-config
key: log_level
- name: API_ENDPOINT
valueFrom:
configMapKeyRef:
name: my-app-config
key: api_endpoint
restartPolicy: NeverConfigMap como arquivos montados
Como alternativa, os dados de um ConfigMap podem ser montados como arquivos dentro do seu contêiner. Cada par de chave e valor se torna um arquivo, com a chave como nome do arquivo e o valor como conteúdo.
Isso é útil para arquivos de configuração que sua aplicação espera ler a partir de um caminho específico.
apiVersion: v1
kind: Pod
metadata:
name: configmap-file-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "cat /etc/config/log_level; cat /etc/config/api_endpoint"]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: my-app-config
restartPolicy: NeverSegredos: dados confidenciais
Os segredos são semelhantes aos ConfigMaps, mas foram projetados para dados confidenciais, como senhas, chaves de API ou certificados TLS. O Kubernetes ajuda você a gerenciá-los e distribuí-los com segurança.
Enquanto os ConfigMaps armazenam dados em texto simples, os segredos são codificados em base64. Isso NOT é criptografia, mas evita a exposição acidental.
Defina um segredo
Ao criar um segredo, os valores precisam ser codificados em base64. Você pode usar echo -n 'my-password' | base64 para codificá-los.
Veja um exemplo para a senha de um banco de dados:
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
username: YWRtaW4= # base64 of 'admin'
password: c3VwZXJzZWNyZXRwYXNz # base64 of 'supersecretpass'Usando segredos em pods
Os segredos são consumidos pelos pods praticamente da mesma forma que os ConfigMaps: como variáveis de ambiente ou arquivos montados. O Kubernetes os decodifica automaticamente antes de disponibilizá-los ao contêiner.
Em geral, é preferível usá-los como arquivos montados por motivos de segurança, pois as variáveis de ambiente podem ser registradas ou inspecionadas com mais facilidade.
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: my-app-container
image: busybox
command: ["sh", "-c", "echo DB User: $DB_USERNAME; echo DB Pass: $DB_PASSWORD"]
env:
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: db-credentials
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
restartPolicy: NeverPráticas recomendadas de segurança
Lembre-se: a codificação em base64 não é criptografia. Para obter criptografia real em repouso, talvez seja necessário usar um backend de segredos do Kubernetes (como o Vault) ou aproveitar os Serviços KMS do provedor de nuvem.
- RBAC: controle quem pode acessar os segredos.
- Menor privilégio: conceda aos pods acesso apenas aos segredos de que precisam.
- Arquivos montados: prefira montar os segredos como arquivos em vez de variáveis de ambiente.
Verificação rápida sobre configuração
Você precisa armazenar uma chave de API (confidencial) e uma configuração de nível de registro (não confidencial) para sua aplicação no Kubernetes.
Quais objetos do Kubernetes você deve usar para cada uma, respectivamente?
Recapitulação: ConfigMaps e segredos
Parabéns! Você aprendeu a gerenciar a configuração de aplicações e os dados confidenciais no Kubernetes.
- ConfigMaps: armazenam pares de chave e valor não confidenciais.
- Segredos: armazenam dados confidenciais (codificados em base64).
- Ambos podem ser consumidos pelos pods como variáveis de ambiente ou arquivos montados.
- Siga sempre as práticas recomendadas de segurança ao lidar com informações confidenciais.
Em seguida, explore tópicos avançados de segurança, como RBAC e soluções externas de gerenciamento de segredos.
Perguntas Frequentes
A aula “ConfigMaps e Secrets” é grátis?
Sim — o texto completo de “ConfigMaps e Secrets” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “ConfigMaps e Secrets”?
Gerencie dados de configuração e informações confidenciais com segurança em suas implantações do Kubernetes usando ConfigMaps e Secrets. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “ConfigMaps e Secrets”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Implantações para aplicações sem estado
- Serviços para acesso à rede
- ConfigMaps e Secrets
- Ingress e roteamento externo