0Pricing
DevOps Bootcamp · Урок

Почему секретам не место в values.yaml

Риски открытых секретов в чартах и Git

«Почему секретам не место в values.yaml» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Значения — это обычный текст

Файл values.yaml чарта содержит обычный незашифрованный текст. Всё, что Вы туда записываете, включая пароли, может прочитать любой, кто откроет этот файл.

Git помнит всё

Чарты обычно хранятся в Git. Секрет, однажды зафиксированный в репозитории, остаётся в истории даже после удаления, поэтому утечка становится постоянной. 🔒

Соблазнительная ошибка

Порой хочется просто вписать настоящий пароль в values.yaml, чтобы всё заработало. Не делайте этого: такое значение быстро разойдётся повсюду.

database:
  password: super-secret-123

Helm хранит данные релиза

При установке Helm сохраняет объединённые значения в секрете релиза внутри кластера. Теперь Ваш незашифрованный пароль хранится и там.

helm get values раскрывает данные

Любой, у кого есть доступ к релизу, может выполнить helm get values и получить именно те данные, которые Вы передали, включая незашифрованный пароль.

helm get values myapp

Логи CI тоже раскрывают секреты

Передача секретов через --set в конвейере часто выводит их в журналы сборки, где они остаются на виду у всей команды.

helm install myapp ./chart --set db.password=secret

Главное правило

Правило простое: секреты никогда не должны находиться в незашифрованном виде внутри чарта, в Git или в командной строке. Не допускайте этого.

Ссылайтесь, а не встраивайте

Безопасный подход — сослаться на секрет, а не встроить его. Шаблоны указывают на ресурс Secret, который уже хранится в кластере.

valueFrom:
  secretKeyRef:
    name: db-credentials
    key: password

Шифруйте, если нужно хранить

Если значения секретов действительно должны храниться в Git, держите их в зашифрованном виде, чтобы зафиксированный файл был бесполезен без ключа расшифровки.

Три распространённых подхода

Есть три решения: зашифровать значения с помощью инструментов, получать секреты из внешнего хранилища или создавать объекты Secret из внедрённых данных.

Кодирование — не защита

Base64 в секретах Kubernetes — это лишь кодирование, а не шифрование. Оно ничего не скрывает, поэтому никогда не считайте закодированное значение защищённым.

Быстрая проверка

Почему пароль в values.yaml настолько рискован?

Итоги

Вы узнали, почему незашифрованные секреты в values.yaml могут утечь через Git, данные релиза и журналы CI, а также почему вместо этого нужно ссылаться на них или шифровать их. 🎉

Часто задаваемые вопросы

Урок «Почему секретам не место в values.yaml» бесплатный?

Да — полный текст урока «Почему секретам не место в values.yaml» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Почему секретам не место в values.yaml»?

Риски открытых секретов в чартах и Git Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Почему секретам не место в values.yaml»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Почему секретам не место в values.yaml
  2. Шифрование значений с помощью helm-secrets и SOPS
  3. Получение секретов из внешних операторов секретов
  4. Шаблонизация ресурсов Secret в Kubernetes
← Назад к DevOps Bootcamp