Dlaczego sekrety nie powinny trafiać do values.yaml
Ryzyko przechowywania sekretów w postaci jawnego tekstu w chartach i Git.
Dlaczego sekrety nie powinny trafiać do values.yaml to bezpłatna lekcja Helm Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Helm Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Helm Academy zawiera 4 lekcji w sumie.
Values są zwykłym tekstem
Plik values.yaml chartu to zwykły, niezaszyfrowany tekst. Wszystko, co zostanie w nim zapisane, w tym hasła, może odczytać każda osoba, która otworzy ten plik.
Git pamięta na zawsze
Charty zwykle znajdują się w Git. Sekret zatwierdzony choćby raz pozostaje w historii nawet po usunięciu, dlatego wyciek jest trwały. 🔒
Kuszący błąd
Może kusić, aby wpisać prawdziwe hasło bezpośrednio do values.yaml i szybko uruchomić system. Należy się temu oprzeć, ponieważ taka wartość rozprzestrzeni się wszędzie.
database:
password: super-secret-123Helm przechowuje dane wydania
Podczas instalacji Helm zapisuje połączone values w sekrecie release w klastrze. Państwa hasło w postaci jawnego tekstu również się tam znajdzie.
helm get values ujawnia dane
Każda osoba mająca dostęp do wydania może uruchomić helm get values i odczytać dokładnie to, co zostało przekazane, włącznie z hasłem w postaci jawnego tekstu.
helm get values myappLogi CI również ujawniają sekrety
Przekazywanie sekretów za pomocą --set w potoku często powoduje ich zapisanie w logach kompilacji, gdzie są widoczne wprost dla całego zespołu.
helm install myapp ./chart --set db.password=secretPodstawowa zasada
Zasada jest prosta: sekrety nigdy nie mogą znajdować się w postaci jawnego tekstu w charcie, w Git ani w wierszu poleceń. Należy je stamtąd usunąć.
Odwołuj się, nie osadzaj
Bezpieczny wzorzec polega na tym, aby odwoływać się do sekretu zamiast go osadzać. Szablony wskazują zasób Secret, który jest już przechowywany w klastrze.
valueFrom:
secretKeyRef:
name: db-credentials
key: passwordSzyfruj, jeśli musisz przechowywać
Gdy wartości sekretów rzeczywiście muszą znajdować się w Git, należy przechowywać je w postaci zaszyfrowanej, aby zatwierdzony plik był bezużyteczny bez klucza deszyfrującego.
Trzy typowe podejścia
Problem można rozwiązać na trzy sposoby: szyfrować values za pomocą narzędzi, pobierać sekrety z zewnętrznego magazynu albo tworzyć obiekty Secret na podstawie wstrzykniętych danych.
Kodowanie to nie bezpieczeństwo
Base64 w obiektach Secret Kubernetes to tylko kodowanie, a nie szyfrowanie. Nie ukrywa ono żadnych danych, dlatego zakodowanej wartości nigdy nie należy traktować jako chronionej.
Szybkie sprawdzenie
Dlaczego hasło w values.yaml jest tak ryzykowne?
Podsumowanie
Widać już, dlaczego sekrety w postaci jawnego tekstu w values.yaml wyciekają przez Git, dane wydań i logi CI oraz dlaczego należy zamiast tego się do nich odwoływać lub je szyfrować. 🎉
Często zadawane pytania
Czy lekcja „Dlaczego sekrety nie powinny trafiać do values.yaml” jest bezpłatna?
Tak — pełny tekst „Dlaczego sekrety nie powinny trafiać do values.yaml” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Helm Academy, przejdź na CoddyKit PRO. Kurs Helm Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Dlaczego sekrety nie powinny trafiać do values.yaml”?
Ryzyko przechowywania sekretów w postaci jawnego tekstu w chartach i Git. Ćwiczysz Helm Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Helm Academy?
Nie wymagamy żadnego doświadczenia. Helm Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Dlaczego sekrety nie powinny trafiać do values.yaml”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Helm Academy?
Tak. Każda lekcja Helm Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dlaczego sekrety nie powinny trafiać do values.yaml
- Szyfrowanie wartości za pomocą helm-secrets i SOPS
- Pobieranie z External Secrets Operators
- Tworzenie szablonów zasobów Kubernetes Secret