0Pricing
Docker & DevOps Fundamentals · Lekcja

Zasady sieciowe i sieć zgodna z zasadą najmniejszych uprawnień

Ogranicz ruch między kontenerami za pomocą zasad sieciowych domyślnie odrzucających połączenia, jawnych reguł zezwalających i zasady najmniejszych uprawnień stosowanej do sieci.

Zasady sieciowe i sieć zgodna z zasadą najmniejszych uprawnień to bezpłatna lekcja Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Docker & DevOps Fundamentals zawiera 4 lekcji w sumie.

Domyślne zezwalanie na wszystko jest ryzykowne

Domyślnie kontenery w klastrze zwykle mogą komunikować się z każdym innym kontenerem. Przejęty Pod może wtedy bez przeszkód uzyskać dostęp do baz danych i usług wewnętrznych. Network policies zamykają tę drogę.

Minimalne uprawnienia w sieci

Zasada minimalnych uprawnień dotyczy również ruchu sieciowego: usługa powinna przyjmować i nawiązywać tylko te połączenia, których naprawdę potrzebuje — żadnych innych.

Czym jest NetworkPolicy?

NetworkPolicy to obiekt Kubernetes, który wybiera Pody na podstawie etykiety i określa, jaki ruch przychodzący i wychodzący jest dozwolony. Wtyczka CNI (Calico, Cilium) egzekwuje te zasady.

Potrzebny jest egzekwujący zasady CNI

Podobnie jak Ingress potrzebuje kontrolera, NetworkPolicies potrzebują wtyczki CNI, która je obsługuje. W przypadku wtyczki, która je ignoruje, reguły nie wywołają żadnego efektu, a problem pozostanie niewidoczny.

Domyślna odmowa ruchu przychodzącego

Najpierw zablokuj cały ruch przychodzący do przestrzeni nazw, a następnie zezwól tylko na to, co jest potrzebne. Pusty selektor podSelector pasuje do każdego Poda.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-ingress
spec:
  podSelector: {}
  policyTypes:
  - Ingress

Zezwalanie na określony ruch

Teraz zezwól tylko Podom frontendowym na dostęp do API przez port 8080. Cała reszta pozostaje zablokowana.

spec:
  podSelector:
    matchLabels:
      app: api
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - port: 8080

Ograniczanie ruchu wychodzącego

Można również ograniczyć ruch wychodzący, na przykład zezwolić Podowi na dostęp wyłącznie do bazy danych, aby uniemożliwić przejętemu Podowi nawiązanie połączenia z napastnikiem.

spec:
  podSelector:
    matchLabels:
      app: api
  policyTypes:
  - Egress
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: db

Selektory przestrzeni nazw

Reguły mogą dopasowywać ruch za pomocą namespaceSelector, aby zezwalać na ruch między przestrzeniami nazw tylko wtedy, gdy pochodzi on z zaufanych przestrzeni nazw — jest to przydatne w przypadku współdzielonych usług platformowych.

from:
- namespaceSelector:
    matchLabels:
      team: platform

Zezwalanie na DNS

Częsta pułapka: ścisła reguła domyślnej odmowy ruchu wychodzącego blokuje również DNS, uniemożliwiając rozpoznawanie nazw. Należy pamiętać o zezwoleniu na UDP/TCP 53 do kube-dns.

egress:
- to: []
  ports:
  - protocol: UDP
    port: 53

Poza Kubernetes

Użytkownicy Dockera odnoszą podobną korzyść z sieci definiowanych przez użytkownika: tylko kontenery podłączone do tej samej sieci mogą komunikować się ze sobą, co izoluje niezwiązane aplikacje.

docker network create --internal backend

Podejście zero trust

Sieci z minimalnymi uprawnieniami przybliżają do modelu zero trust: należy zakładać, że sieć jest wroga, uwierzytelniać i autoryzować każde połączenie oraz domyślnie na nic nie zezwalać.

Szybkie sprawdzenie

Jaka jest rozsądna strategia początkowa dla zasad sieciowych?

Podsumowanie

Można już bezpiecznie ograniczać ruch:

  • Stosuj domyślną odmowę, a następnie jawne reguły zezwalające
  • Kontroluj zarówno ruch przychodzący, jak i wychodzący na podstawie etykiet i przestrzeni nazw
  • Pamiętaj o zezwoleniu na DNS; potrzebna jest wtyczka CNI egzekwująca zasady
  • Wewnętrzne sieci Dockera zapewniają podobną izolację

Sieć z minimalnymi uprawnieniami ogranicza zakres skutków każdego naruszenia bezpieczeństwa.

Często zadawane pytania

Czy lekcja „Zasady sieciowe i sieć zgodna z zasadą najmniejszych uprawnień” jest bezpłatna?

Tak — pełny tekst „Zasady sieciowe i sieć zgodna z zasadą najmniejszych uprawnień” 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 Docker & DevOps Fundamentals, przejdź na CoddyKit PRO. Kurs Docker & DevOps Fundamentals zawiera 4 lekcji w sumie.

Co nauczysz się w „Zasady sieciowe i sieć zgodna z zasadą najmniejszych uprawnień”?

Ogranicz ruch między kontenerami za pomocą zasad sieciowych domyślnie odrzucających połączenia, jawnych reguł zezwalających i zasady najmniejszych uprawnień stosowanej do sieci. Ćwiczysz Docker & DevOps Fundamentals 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ąć Docker & DevOps Fundamentals?

Nie wymagamy żadnego doświadczenia. Docker & DevOps Fundamentals 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 „Zasady sieciowe i sieć zgodna z zasadą najmniejszych uprawnień”?

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 Docker & DevOps Fundamentals?

Tak. Każda lekcja Docker & DevOps Fundamentals 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. Skanowanie obrazów kontenerów pod kątem bezpieczeństwa
  2. Bezpieczeństwo kontenerów w czasie działania
  3. Zarządzanie sekretami i RBAC
  4. Zasady sieciowe i sieć zgodna z zasadą najmniejszych uprawnień
← Powrót do Docker & DevOps Fundamentals