0Pricing
DevOps Bootcamp · Lekcja

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-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. 🎉

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

  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