0Pricing
Kubernetes Basics · Aula

Secrets para dados confidenciais

Armazene e gerencie informações confidenciais, como senhas e chaves de API, com segurança usando Secrets.

Secrets para dados confidenciais é uma aula grátis de Kubernetes Basics no CoddyKit. Esta é a aula 2 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 Kubernetes Basics, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kubernetes Basics inclui 4 aulas no total.

Proteção de informações sensíveis

Ao criar aplicações, geralmente é necessário lidar com informações sensíveis, como senhas de banco de dados, chaves de API ou certificados privados.

Armazenar esses dados diretamente no código da aplicação ou nos arquivos de configuração representa um grande risco de segurança! Isso pode causar vazamentos de dados e expor o seu sistema.

Introdução aos Secrets do Kubernetes

Kubernetes Secrets são objetos projetados para armazenar dados sensíveis com segurança no seu cluster.

Eles ajudam a manter as informações sensíveis separadas das definições dos Pods e do código da aplicação, tornando suas implantações mais seguras e fáceis de gerenciar.

  • Separação: mantenha os dados sensíveis fora das imagens de contêiner e do YAML dos Pods.
  • Acessibilidade: os Pods podem consumi-los como variáveis de ambiente ou arquivos montados.

Secrets versus ConfigMaps

Talvez você se lembre dos ConfigMaps de uma lição anterior, usados para dados de configuração não sensíveis.

Os Secrets são semelhantes, mas destinam-se especificamente a dados sensíveis. Ambos armazenam pares de chave e valor, mas os Secrets lidam com a natureza sensível dessas informações.

  • ConfigMaps: para configurações gerais e não sensíveis (por exemplo, níveis de registro e endpoints de API).
  • Secrets: para dados sensíveis (por exemplo, senhas, tokens e chaves privadas).

Lembre-se: os Secrets são codificados em base64, não criptografados por padrão!

Criar um Secret a partir de um valor literal

A maneira mais simples de criar um Secret é a partir de um valor literal usando kubectl create secret generic.

Isso é útil para dados sensíveis simples e curtos, como uma senha básica.

kubectl create secret generic my-db-secret \
  --from-literal=username=admin \
  --from-literal=password=SuperSecretP@ssw0rd!

Criar um Secret a partir de arquivos

Para dados sensíveis maiores ou com várias linhas (como uma chave privada ou um arquivo de configuração completo), é melhor criar um Secret a partir de arquivos.

Primeiro, crie os arquivos localmente e depois faça referência a eles. O Kubernetes lerá o conteúdo dos arquivos e o armazenará.

# Create local files first
echo "my-api-key-12345" > api-key.txt
echo "my-token-abcde" > auth-token.txt

# Create the Secret
kubectl create secret generic app-credentials \
  --from-file=api-key.txt \
  --from-file=auth-token.txt

Usar Secrets como variáveis de ambiente

Os Pods podem consumir dados de um Secret injetando-os diretamente nas variáveis de ambiente. Isso é comum para pares simples de chave e valor.

Você pode fazer referência a chaves individuais de um Secret ou a todas elas usando envFrom.

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-env
spec:
  containers:
  - name: my-app
    image: nginx:latest
    env:
    - name: DB_USERNAME
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: username
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: password

Usar Secrets como arquivos montados

Para arquivos sensíveis (como certificados e chaves privadas) ou quando uma aplicação espera receber configurações de caminhos de arquivo específicos, você pode montar Secrets como arquivos dentro de um Pod.

Cada chave do Secret se torna um arquivo no diretório montado, com seu valor como conteúdo.

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-vol
spec:
  containers:
  - name: my-app
    image: nginx:latest
    volumeMounts:
    - name: app-secret-volume
      mountPath: "/etc/secrets"
      readOnly: true
  volumes:
  - name: app-secret-volume
    secret:
      secretName: app-credentials

Segurança dos seus Secrets

Embora os Secrets protejam os dados contra inspeções casuais, eles não são uma solução milagrosa. Lembre-se destes pontos:

  • Codificação em base64: os Secrets são codificados em base64, não criptografados. Qualquer pessoa com acesso ao Secret pode decodificá-lo.
  • RBAC: use o Controle de Acesso Baseado em Funções (RBAC) para restringir quem pode ler, criar ou modificar Secrets.
  • Criptografia em repouso: para obter segurança real, habilite a criptografia em repouso dos dados do seu etcd (o armazenamento subjacente do Kubernetes). Os provedores de nuvem geralmente oferecem esse recurso.

Atualizar Secrets

Se os seus dados sensíveis mudarem, será necessário atualizar o Secret. Basta executar novamente kubectl create secret com os novos valores para atualizá-lo ou usar kubectl apply -f com um YAML atualizado.

No entanto, os Pods em execução que consomem o Secret não detectarão as alterações automaticamente. Para aplicar as alterações, normalmente é necessário reiniciar ou reimplantar os Pods que usam o Secret.

Verificação rápida: Secrets

Imagine que você tenha uma chave de API privada que sua aplicação precisa acessar. Qual método é mais seguro e apropriado para armazenar e fornecer essa chave a um Pod do Kubernetes?

Recapitulação: Secrets para dados sensíveis

Parabéns! Você aprendeu a lidar com dados sensíveis no Kubernetes!

  • Os Secrets armazenam informações sensíveis, como senhas e chaves de API.
  • Eles são codificados em base64 e podem ser consumidos como variáveis de ambiente ou arquivos montados.
  • Sempre aplique RBAC e considere a criptografia em repouso para obter a máxima segurança.
  • Lembre-se: os Pods precisam ser reiniciados para detectar atualizações nos Secrets.

Perguntas Frequentes

A aula “Secrets para dados confidenciais” é grátis?

Sim — o texto completo de “Secrets para dados confidenciais” é 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 Kubernetes Basics, atualize para CoddyKit PRO. O curso de Kubernetes Basics inclui 4 aulas no total.

O que vou aprender em “Secrets para dados confidenciais”?

Armazene e gerencie informações confidenciais, como senhas e chaves de API, com segurança usando Secrets. Você pratica Kubernetes Basics 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 Kubernetes Basics?

Nenhuma experiência prévia é necessária. Kubernetes Basics 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 2 de 4.

Quanto tempo leva a aula “Secrets para dados confidenciais”?

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 Kubernetes Basics?

Sim. Cada aula de Kubernetes Basics 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

  1. ConfigMaps para configuração
  2. Secrets para dados confidenciais
  3. Volumes persistentes e reivindicações
  4. StorageClasses e provisionamento dinâmico
← Voltar para Kubernetes Basics