Tworzenie szablonów zasobów Kubernetes Secret
Renderowanie obiektów Secret bez ujawniania wartości.
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-credentialsKoduj 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: passwordDodaj 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. 🎉
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
- 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