Helm Academy · Lekcja

Wzmacnianie bezpieczeństwa Podów za pomocą securityContext

Wbudowywanie domyślnych ustawień minimalnych uprawnień w szablony.

Lekcja 3 z 413 kroki

Wzmacnianie bezpieczeństwa Podów za pomocą securityContext to bezpłatna lekcja Helm Academy na CoddyKit. To lekcja 3 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.

Dlaczego warto domyślnie wzmacniać bezpieczeństwo

Chart udostępniający domyślne ustawienia zgodne z zasadą minimalnych uprawnień chroni każdy klaster, w którym zostanie zainstalowany. Bezpieczeństwo wbudowane w szablony jest lepsze niż nadzieja, że użytkownicy pamiętają o jego dodaniu.

Dwa poziomy securityContext

Można ustawić securityContext na poziomie poda dla wszystkich kontenerów oraz węższy kontekst osobno dla każdego kontenera. Ustawienie kontenera zastępuje ustawienie poda dla tego kontenera.

Nie uruchamiaj jako root

Należy ustawić runAsNonRoot na true, aby Kubernetes odmówił uruchomienia kontenera, który działałby jako root. To najbardziej skuteczne ustawienie domyślne, jakie można zastosować.

securityContext:
  runAsNonRoot: true
  runAsUser: 1000

System plików root tylko do odczytu

Należy włączyć readOnlyRootFilesystem, aby kontener nie mógł zapisywać do własnych warstw obrazu. Dla ścieżek, w których aplikacja rzeczywiście musi zapisywać dane, należy zamontować emptyDir.

containers:
- name: app
  securityContext:
    readOnlyRootFilesystem: true

Usuń uprawnienia systemu Linux

Większość aplikacji nie potrzebuje specjalnych uprawnień jądra, dlatego należy użyć drop ALL capabilities i przywrócić tylko to rzadkie uprawnienie, którego obciążenie rzeczywiście wymaga.

capabilities:
  drop:
    - ALL

Zablokuj eskalację uprawnień

Należy ustawić allowPrivilegeEscalation na false, aby proces nigdy nie mógł uzyskać większych uprawnień niż te, z którymi został uruchomiony, nawet za pośrednictwem plików binarnych setuid. 🔒

allowPrivilegeEscalation: false

Ustaw fsGroup

Należy użyć fsGroup w securityContext poda, aby zamontowane woluminy należały do grupy, do której należy użytkownik bez uprawnień root, co pozwala uniknąć błędów uprawnień.

securityContext:
  fsGroup: 2000

Nigdy nie ustawiaj privileged na True

Kontener privileged ma niemal pełny dostęp do hosta i zasadniczo nigdy nie powinien pojawiać się w domyślnej konfiguracji chartu. Należy pozostawić go nieustawionym, co oznacza wartość false.

Umożliwiaj nadpisywanie

Należy połączyć securityContext z values za pomocą toYaml, aby użytkownicy mogli go dostosować, ale zachować wzmocnione ustawienia jako bezpieczne wartości domyślne.

securityContext:
  {{- toYaml .Values.securityContext | nindent 4 }}

Dostosuj do standardów bezpieczeństwa podów

Te wartości domyślne odpowiadają standardowi bezpieczeństwa podów Kubernetes restricted, dzięki czemu chart instaluje się poprawnie nawet w ściśle zabezpieczonych przestrzeniach nazw.

Zweryfikuj po instalacji

Należy potwierdzić zastosowanie wzmocnień, sprawdzając spec uruchomionego poda za pomocą kubectl get pod -o yaml i kontrolując pola securityContext.

kubectl get pod myapp -o jsonpath='{.spec.securityContext}'

Szybkie sprawdzenie

Które ustawienie uniemożliwia uruchomienie kontenera, jeśli miałby on działać jako użytkownik root?

Podsumowanie

Wzmocnili Państwo bezpieczeństwo podów za pomocą runAsNonRoot, usunięcia uprawnień, systemu plików tylko do odczytu i zablokowania eskalacji uprawnień. Bezpieczne wartości domyślne chronią każdą instalację. ✅

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 „Wzmacnianie bezpieczeństwa Podów za pomocą securityContext” jest bezpłatna?

Tak — pełny tekst „Wzmacnianie bezpieczeństwa Podów za pomocą securityContext” 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 „Wzmacnianie bezpieczeństwa Podów za pomocą securityContext”?

Wbudowywanie domyślnych ustawień minimalnych uprawnień w szablony. Ć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 3 z 4.

Ile czasu zajmuje lekcja „Wzmacnianie bezpieczeństwa Podów za pomocą securityContext”?

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. Standardowe etykiety i konwencje nazewnictwa
  2. Rozsądne, udokumentowane wartości domyślne
  3. Wzmacnianie bezpieczeństwa Podów za pomocą securityContext
  4. Przypinanie wersji i unikanie latest
← Powrót do Helm Academy