Helm Academy · Lekcja

Tworzenie szablonów zasobów Kubernetes Secret

Renderowanie obiektów Secret bez ujawniania wartości.

Lekcja 4 z 413 kroki

Tworzenie szablonów zasobów Kubernetes Secret to bezpłatna lekcja Helm Academy na CoddyKit. To lekcja 4 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.

Charty mogą generować sekrety

Czasami chart musi sam utworzyć obiekt Secret Kubernetes. Przy zachowaniu ostrożności można utworzyć jego szablon bez ujawniania wartości.

Struktura manifestu Secret

Obiekt Secret Kubernetes to po prostu manifest zawierający sekcję data. Każda wartość w sekcji data musi być tekstem zakodowanym w Base64.

apiVersion: v1
kind: Secret
metadata:
  name: db-credentials

Koduj dane za pomocą b64enc

W sekcji data należy zakodować każdą wartość. Pomocnik Sprig b64enc konwertuje tekst jawny na postać Base64 oczekiwaną przez Kubernetes.

data:
  password: {{ .Values.password | b64enc }}

Użyj stringData, aby pominąć kodowanie

Warto użyć stringData, jeśli kodowanie za pomocą b64enc ma zostać pominięte. Kubernetes zakoduje te wartości po stronie serwera.

stringData:
  password: {{ .Values.password | quote }}

Kodowanie nadal nie jest sekretem

Należy pamiętać, że wartość wyrenderowana w manifeście jest tylko zakodowana. Każdy, kto może ją odczytać, może ją natychmiast zdekodować.

Nie wyświetlaj wartości w NOTES

Częstym źródłem wycieku jest wyświetlanie wartości w pliku NOTES.txt. Zamiast tego należy wyświetlić instrukcję jej pobrania, aby tekst jawny nigdy nie trafił do wyniku polecenia.

Użyj istniejącego Secret

Jeszcze lepiej pozwolić użytkownikom wskazać utworzony poza chartem obiekt existingSecret, aby chart w ogóle nie otrzymywał tej wartości.

{{- if not .Values.existingSecret }}
kind: Secret
{{- end }}

Wymagaj obowiązkowej wartości

Gdy sekret jest rzeczywiście wymagany, funkcja required przerywa renderowanie z jasnym komunikatem, jeśli brakuje wartości.

password: {{ required "password is required" .Values.password | b64enc }}

Montuj, nie osadzaj

Pody powinny odczytywać Secret za pomocą secretKeyRef lub zamontowanego woluminu, zamiast umieszczać dosłowną wartość w zmiennej środowiskowej kontenera.

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

Dodaj adnotację na potrzeby rotacji

Aby ponownie uruchamiać pody po zmianie Secret, należy dodać sumę kontrolną jako adnotację wdrożenia, tak aby nowa wartość wywoływała restart.

checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}

Połącz strategie

Najlepsze charty łączą różne podejścia: preferują istniejące lub zewnętrzne sekrety, kodują tylko wtedy, gdy jest to konieczne, i nigdy nie wyświetlają wartości.

Szybkie sprawdzenie

Jak pozwolić Kubernetesowi wykonać kodowanie Base64?

Podsumowanie

Wiadomo już, jak bezpiecznie tworzyć szablon obiektu Secret: kodować za pomocą b64enc lub stringData, preferować istniejące sekrety i nigdy nie wyświetlać wartości. 🎉

Bezpłatny start

Ucz się YAML dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Tworzenie szablonów zasobów Kubernetes Secret” jest bezpłatna?

Tak — pełny tekst „Tworzenie szablonów zasobów Kubernetes Secret” 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 „Tworzenie szablonów zasobów Kubernetes Secret”?

Renderowanie obiektów Secret bez ujawniania wartości. Ć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 4 z 4.

Ile czasu zajmuje lekcja „Tworzenie szablonów zasobów Kubernetes Secret”?

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

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