Почему секретам не место в values.yaml
Риски открытых секретов в чартах и Git
«Почему секретам не место в values.yaml» — бесплатный урок Helm Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Helm Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Helm Academy содержит 4 уроков всего.
Значения — это обычный текст
Файл values.yaml чарта содержит обычный незашифрованный текст. Всё, что Вы туда записываете, включая пароли, может прочитать любой, кто откроет этот файл.
Git помнит всё
Чарты обычно хранятся в Git. Секрет, однажды зафиксированный в репозитории, остаётся в истории даже после удаления, поэтому утечка становится постоянной. 🔒
Соблазнительная ошибка
Порой хочется просто вписать настоящий пароль в values.yaml, чтобы всё заработало. Не делайте этого: такое значение быстро разойдётся повсюду.
database:
password: super-secret-123Helm хранит данные релиза
При установке 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) и разблокировать остальной курс Helm Academy, подпишись на CoddyKit PRO. Курс Helm Academy содержит 4 уроков всего.
Чему я научусь в уроке «Почему секретам не место в values.yaml»?
Риски открытых секретов в чартах и Git Ты практикуешь Helm Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Helm Academy?
Предыдущий опыт не требуется. Helm Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Почему секретам не место в values.yaml»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Helm Academy?
Да. Каждый урок Helm Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Почему секретам не место в values.yaml
- Шифрование значений с помощью helm-secrets и SOPS
- Получение секретов из внешних операторов секретов
- Шаблонизация ресурсов Secret в Kubernetes