0Pricing
DevOps Bootcamp · Lekcja

Wzmacnianie bezpieczeństwa Podów za pomocą securityContext

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

Wzmacnianie bezpieczeństwa Podów za pomocą securityContext to bezpłatna lekcja DevOps Bootcamp 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 DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp 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ę. ✅

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 DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp 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 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 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 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. 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 DevOps Bootcamp