0Pricing
DevOps Bootcamp · Lekcja

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 DevOps Bootcamp 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 DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp 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-123

Helm 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 myapp

Logi 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=secret

Podstawowa 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: password

Szyfruj, 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 DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp 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 DevOps Bootcamp 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ąć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp 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 DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp 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

  1. Dlaczego sekrety nie powinny trafiać do values.yaml
  2. Szyfrowanie wartości za pomocą helm-secrets i SOPS
  3. Pobieranie z External Secrets Operators
  4. Tworzenie szablonów zasobów Kubernetes Secret
← Powrót do DevOps Bootcamp