Enviar um arquivo
  1. base64hub
  2. Web e tokens
  3. Decodificador de Secret do Kubernetes

Decodificador de Secret do Kubernetes para YAML do kubectl

Cole um Secret de kubectl get secret NAME -o yaml (ou JSON) e todos os valores de data: são decodificados numa tabela, sem precisar passar cada chave pelo base64 --decode.

Grátis sem cadastro, sem limites Local nada é enviado Todas as chaves decodificadas de uma vez, inclusive YAML com vários documentos Atualizado 27 de out. de 2026

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como decodificar um Secret do Kubernetes

  1. Rode kubectl get secret app-db -n shop -o yaml e cole a saída na caixa. JSON de -o json também funciona.
  2. A tabela lista cada chave com o valor decodificado e o tamanho, além dos botões Copiar e Copiar Base64.
  3. O painel de saída traz o mesmo Secret reescrito com stringData, com os valores em texto puro. Valores binários continuam em data.
  4. Troque para Gerar Secret para o caminho inverso: entram linhas KEY=value, sai um Secret com data em Base64.

A entrada também pode ser uma List de kubectl get secrets -o yaml, vários documentos separados por ---, um manifesto renderizado pelo Helm, um .dockerconfigjson sozinho ou um único valor Base64.

Exemplo: o que o kubectl entrega e o que significa

apiVersion: v1
data:
  DATABASE_URL: cG9zdGdyZXM6Ly9hcHA6czNjcjN0LVBhNTVAZGI6NTQzMi9zaG9w
  DB_PASSWORD: czNjcjN0LVBhNTUK
  DB_USER: YXBw
kind: Secret
metadata:
  name: app-db
  namespace: shop
type: Opaque
ChaveDecodificadoTamanho
DATABASE_URLpostgres://app:s3cr3t-Pa55@db:5432/shop39 B
DB_PASSWORDs3cr3t-Pa55 mais uma quebra de linha12 B
DB_USERapp3 B

A senha tem 11 caracteres, mas o valor tem 12 bytes. Alguém o criou com echo 's3cr3t-Pa55' | base64, e a quebra de linha no final vai quebrar o login no banco de dados. O Base64 sem a quebra de linha seria czNjcjN0LVBhNTU=.

O que o decodificador reconhece

  • Certificados e chaves PEM, como tls.crt e tls.key num Secret kubernetes.io/tls, são sinalizados. Certificados ganham um link para o decodificador de certificados, para conferir a validade e os SANs.
  • Valores JSON são formatados.
  • Valores binários, como um keystore Java, recebem o tipo de arquivo, uma prévia em hex e um botão Baixar.
  • Valores .dockerconfigjson e .dockercfg são separados em registry, usuário e senha, com o auth decodificado. O decodificador de .dockerconfigjson coloca isso em primeiro plano.

Comandos kubectl de uma linha

Um valor. Escape os pontos nos nomes de chave dentro do jsonpath:

kubectl get secret app-db -o jsonpath='{.data.DB_PASSWORD}' | base64 --decode
kubectl get secret app-tls -o jsonpath='{.data.tls\.crt}' | base64 --decode

Todos os valores, com a função de template base64decode embutida no kubectl ou com o jq:

kubectl get secret app-db -o go-template='{{range $k, $v := .data}}{{$k}}={{$v | base64decode}}{{"\n"}}{{end}}'
kubectl get secret app-db -o json | jq '.data | map_values(@base64d)'

Criar um Secret sem cair na armadilha da quebra de linha:

kubectl create secret generic app-db --from-literal=DB_PASSWORD='s3cr3t-Pa55' --dry-run=client -o yaml

Há mais receitas de shell na página de Base64 no Bash.

Limites e problemas comuns

  • “Nenhum Secret com data ou stringData foi encontrado”: o que foi colado provavelmente é um Deployment ou um ConfigMap. Os valores de ConfigMap são texto puro e não precisam ser decodificados.
  • Tamanho: um Secret tem limite de 1 MiB no total. Gerar Secret confere o limite, os nomes das chaves e o nome no estilo DNS antes de você aplicar qualquer coisa.
  • Recursos de YAML: o leitor cobre o que kubectl, Helm e Kustomize geram, incluindo block scalars e vários documentos. Âncoras, aliases e merge keys não são suportados.
  • Secrets de release do Helm (sh.helm.release.v1.*) contêm Base64 de dados gzip dentro do valor Base64 de data. Decodifique a camada externa aqui e depois use o decodificador gzip Base64.

Perguntas frequentes

Como decodificar um Secret do Kubernetes com o kubectl?

Para uma chave: kubectl get secret app-db -o jsonpath='{.data.DB_PASSWORD}' | base64 --decode. Para todas de uma vez, cole aqui a saída de -o yaml, ou use os comandos de uma linha com go-template ou jq desta página.

Os Secrets do Kubernetes são criptografados?

O campo data é só Base64, que qualquer pessoa com permissão de leitura consegue reverter. A criptografia em repouso no etcd é uma configuração separada do cluster, e o RBAC decide quem pode ler Secrets. Veja codificação vs criptografia.

Por que meu Secret decodificado tem uma quebra de linha no final?

O valor foi criado com echo em vez de echo -n, então a quebra de linha também foi codificada. O Base64 dele costuma terminar em K, o= ou Cg==. Crie de novo com printf '%s' value | base64 ou com kubectl create secret --from-literal.

Qual a diferença entre data e stringData?

data guarda valores em Base64, stringData recebe texto puro que o API server codifica para você na gravação. As leituras sempre devolvem data. O painel de saída aqui reescreve o Secret com stringData, para você editar e aplicar de novo.