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