Загрузить файл
  1. base64hub
  2. Веб и токены
  3. Декодер Kubernetes Secret

Декодер Kubernetes Secret для YAML из kubectl

Вставьте Secret из kubectl get secret NAME -o yaml (или JSON), и все значения data: декодируются в таблицу, так что не придётся прогонять каждый ключ через base64 --decode.

Бесплатно без регистрации и ограничений Локально ничего не загружается Все ключи декодируются за один проход, YAML из нескольких документов тоже Обновлено 27 окт. 2026 г.

Обработка идёт в браузере. Эта страница не может никуда отправить ваши данные – откуда мы это знаем

Как декодировать Kubernetes Secret

  1. Выполните kubectl get secret app-db -n shop -o yaml и вставьте вывод в поле. JSON из -o json тоже подойдёт.
  2. В таблице перечислены все ключи с декодированными значениями и размерами, а также кнопки Скопировать и Скопировать Base64.
  3. В поле результата появится тот же Secret, переписанный через stringData, со значениями открытым текстом. Двоичные значения остаются в data.
  4. Для обратной задачи переключитесь на Собрать Secret: на входе строки KEY=value, на выходе Secret с data в Base64.

На вход можно подать и List из kubectl get secrets -o yaml, несколько документов через ---, манифест после рендеринга Helm, отдельный .dockerconfigjson или просто одно значение Base64.

Пример: что выдаёт kubectl и что это значит

apiVersion: v1
data:
  DATABASE_URL: cG9zdGdyZXM6Ly9hcHA6czNjcjN0LVBhNTVAZGI6NTQzMi9zaG9w
  DB_PASSWORD: czNjcjN0LVBhNTUK
  DB_USER: YXBw
kind: Secret
metadata:
  name: app-db
  namespace: shop
type: Opaque
КлючДекодированоРазмер
DATABASE_URLpostgres://app:s3cr3t-Pa55@db:5432/shop39 B
DB_PASSWORDs3cr3t-Pa55 и перевод строки12 B
DB_USERapp3 B

В пароле 11 символов, а значение занимает 12 байт. Кто-то создал его командой echo 's3cr3t-Pa55' | base64, и перевод строки в конце сломает вход в базу данных. Без перевода строки Base64 был бы czNjcjN0LVBhNTU=.

Что распознаёт декодер

  • Сертификаты и ключи PEM вроде tls.crt и tls.key в Secret типа kubernetes.io/tls помечаются. У сертификатов есть ссылка на декодер сертификатов, где можно проверить срок действия и SAN.
  • Значения JSON форматируются.
  • Двоичные значения, например хранилище ключей Java, получают тип файла, превью в hex и кнопку Скачать.
  • Значения .dockerconfigjson и .dockercfg раскладываются на реестр, имя пользователя и пароль, а auth декодируется. Декодер .dockerconfigjson ставит их на первое место.

Однострочники kubectl

Одно значение. Точки в именах ключей внутри 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

Все значения сразу можно получить через встроенную в kubectl шаблонную функцию base64decode или через 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)'

Как создать Secret, не попав в ловушку с переводом строки:

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

Больше рецептов для командной строки собрано на странице про Base64 в Bash.

Ограничения и частые проблемы

  • «Во вводе не найден Secret с data или stringData»: скорее всего, вставлен Deployment или ConfigMap. Значения ConfigMap хранятся обычным текстом, декодировать их не нужно.
  • Размер: Secret целиком ограничен 1 MiB. Собрать Secret проверяет это ограничение, имена ключей и имя в стиле DNS до того, как вы что-либо примените.
  • Возможности YAML: парсер понимает то, что выдают kubectl, Helm и Kustomize, включая блочные скаляры и несколько документов. Якоря, алиасы и ключи слияния не поддерживаются.
  • Secret релизов Helm (sh.helm.release.v1.*) содержат Base64 от данных gzip внутри значения data, которое само в Base64. Декодируйте здесь внешний слой, а затем воспользуйтесь декодером gzip из Base64.

Вопросы и ответы

Как декодировать секрет Kubernetes через kubectl?

Для одного ключа: kubectl get secret app-db -o jsonpath='{.data.DB_PASSWORD}' | base64 --decode. Для всех ключей сразу вставьте сюда вывод -o yaml или воспользуйтесь однострочниками с go-template или jq на этой странице.

Шифруются ли секреты Kubernetes?

В поле data лежит всего лишь Base64, и раскодировать его может любой, у кого есть доступ на чтение. Шифрование при хранении в etcd включается отдельной настройкой кластера, а кто может читать Secret, решает RBAC. См. кодирование и шифрование.

Почему в конце декодированного секрета перевод строки?

Значение создали через echo вместо echo -n, и перевод строки тоже закодировался. Base64 у такого значения часто заканчивается на K, o= или Cg==. Пересоздайте его через printf '%s' value | base64 или kubectl create secret --from-literal.

Чем data отличается от stringData?

data хранит значения в Base64, а stringData принимает обычный текст, который API-сервер сам кодирует при записи. При чтении всегда возвращается data. Поле результата здесь переписывает Secret через stringData, чтобы его можно было отредактировать и применить заново.