Najlepsze rozwiązania dotyczące zabezpieczeń i uaktualnień klastra w usłudze Azure Kubernetes Service (AKS)

Dotyczy: ✔️ AKS Automatic AKS Standard ✔️

Podczas zarządzania klastrami w usłudze Azure Kubernetes Service (AKS) kluczowe znaczenie ma obciążenie i zabezpieczenia danych. W przypadku uruchamiania klastrów wielodostępnych przy użyciu izolacji logicznej należy szczególnie zabezpieczyć dostęp do zasobów i obciążeń. Zminimalizuj ryzyko ataku, stosując najnowsze aktualizacje zabezpieczeń platformy Kubernetes i węzła systemu operacyjnego.

W tym artykule opisano, jak zabezpieczyć klaster AKS. Dowiesz się, jak:

  • Aby zabezpieczyć dostęp do serwera interfejsu API, użyj identyfikatora Microsoft Entra i kontroli dostępu opartej na rolach platformy Kubernetes (Kubernetes RBAC).
  • Zabezpieczanie dostępu kontenera do zasobów węzłów.
  • Uaktualnij klaster usługi AKS do najnowszej wersji rozwiązania Kubernetes.
  • Aktualizuj węzły i automatycznie stosuj poprawki zabezpieczeń.

Możesz również zapoznać się z najlepszymi praktykami dotyczącymi zarządzania obrazami kontenerów oraz bezpieczeństwa zasobników.

Obowiązki dotyczące zabezpieczeń trybu klastra usługi AKS

Usługa AKS obsługuje dwa tryby klastra: AKS Automatic i AKS Standard. Cele zabezpieczeń są takie same w obu trybach, ale odpowiedzialność za implementację różni się.

Usługa AKS Automatic obejmuje utwardzony bazowy poziom zabezpieczeń z większą liczbą wstępnie skonfigurowanych mechanizmów kontroli w obsługiwanych konfiguracjach. Usługa AKS Standard zapewnia szerszą bezpośrednią kontrolę konfiguracji, co zwiększa odpowiedzialność operatora za konfigurację punktu odniesienia i bieżące operacje.

Area Automatyczne usługi AKS AKS Standard
Uwierzytelnianie klastra i punkt odniesienia autoryzacji Więcej wstępnie skonfigurowanych ustawień domyślnych w obsługiwanych konfiguracjach Często konfigurowane jawnie przez operatory
Wzmacnianie zabezpieczeń sieci serwera interfejsu API Więcej wstępnie skonfigurowanego zachowania punktu odniesienia w obsługiwanych konfiguracjach Jawne opcje wzmacniania zabezpieczeń według operatorów
Zasady i podstawowe mechanizmy kontroli zabezpieczeń Więcej wstępnie skonfigurowanych ustawień domyślnych w obsługiwanych konfiguracjach Jawne aktywowanie zasad i wybór trybu
Kontrolki higieny obrazów Kontrolki linii bazowej dostępne w obsługiwanych konfiguracjach Jawne włączenie i odpowiedzialność za cykl życia
Operacje puli węzłów systemowych Więcej zachowań zarządzanych przez usługę Więcej zachowań zarządzanych przez operatorów
Podniesienie uprawnień właściciela Więcej domyślnych ustawień zarządzanej aktualizacji Strategia wybrana przez operatora i nadzór nad wdrożeniem

Włączanie ochrony przed zagrożeniami

Wskazówki dotyczące najlepszych rozwiązań

Możesz włączyć usługę Defender for Containers , aby ułatwić zabezpieczanie kontenerów. Usługa Defender for Containers może oceniać konfiguracje klastra i udostępniać zalecenia dotyczące zabezpieczeń, uruchamiać skanowania luk w zabezpieczeniach oraz zapewniać ochronę i alerty w czasie rzeczywistym dla węzłów i klastrów Kubernetes.

Te wskazówki dotyczą obu trybów. Nawet jeśli usługa AKS Automatic zapewnia wstępnie skonfigurowane domyślne ustawienia zabezpieczeń, wdrażanie ochrony przed zagrożeniami i przepływy pracy związane z reagowaniem na alerty nadal należą do obowiązków operacyjnych Twojego zespołu.

Bezpieczny dostęp do serwera interfejsu API i węzłów klastra

Wskazówki dotyczące najlepszych rozwiązań

Jednym z najważniejszych sposobów zabezpieczenia klastra jest zabezpieczenie dostępu do serwera interfejsu API Kubernetes. Aby kontrolować dostęp do serwera API, zintegruj mechanizm RBAC platformy Kubernetes z Microsoft Entra ID. Dzięki tym kontrolkom zabezpieczasz usługę AKS w taki sam sposób, jak w przypadku zabezpieczania dostępu do subskrypcji platformy Azure.

Serwer interfejsu API Kubernetes udostępnia pojedynczy punkt połączenia dla żądań wykonywania akcji w klastrze. Aby zabezpieczyć i przeprowadzić inspekcję dostępu do serwera interfejsu API, ogranicz dostęp i zapewnij najniższe możliwe poziomy uprawnień. Chociaż takie podejście nie jest specyficzne wyłącznie dla Kubernetes, ma ono szczególne znaczenie, gdy klaster AKS został logicznie odizolowany na potrzeby środowiska wielodzierżawnego.

Microsoft Entra ID udostępnia rozwiązanie do zarządzania tożsamościami gotowymi do użycia w przedsiębiorstwie, które integruje się z klastrami usługi AKS. Ponieważ Kubernetes nie zapewnia rozwiązania do zarządzania tożsamością, precyzyjne ograniczenie dostępu do serwera API może być trudne. W przypadku klastrów zintegrowanych z Microsoft Entra w usłudze AKS używasz istniejących kont użytkowników i grup do uwierzytelniania użytkowników w serwerze API.

Integracja Microsoft Entra dla klastrów AKS

Korzystając z mechanizmu Kubernetes RBAC i integracji z usługą Microsoft Entra ID, można zabezpieczyć serwer interfejsu API i nadać minimalne uprawnienia wymagane dla określonego zakresu zasobów, na przykład pojedynczej przestrzeni nazw. Możesz przypisać różnym użytkownikom lub grupom Microsoft Entra różne role Kubernetes. Dzięki szczegółowym uprawnieniam można ograniczyć dostęp do serwera interfejsu API i zapewnić jasny dziennik inspekcji wykonanych akcji.

W usłudze AKS Automatic standardy bazowe autoryzacji i zabezpieczeń są w większym stopniu wstępnie skonfigurowane w obsługiwanych konfiguracjach, dzięki czemu operatorzy mogą skupić się na walidacji, nadzorze i obsłudze wyjątków. W usłudze AKS Standard operatorzy często konfigurują te mechanizmy kontroli bezpośrednio i samodzielnie zarządzają ich cyklem życia.

Aby uzyskać więcej informacji na temat integracji z Microsoft Entra, mechanizmów RBAC platform Kubernetes i Azure, zobacz Najlepsze rozwiązania w zakresie uwierzytelniania i autoryzacji w usłudze AKS.

Ogranicz dostęp do interfejsu API metadanych instancji

Wskazówki dotyczące najlepszych rozwiązań

Dodaj politykę sieciową we wszystkich przestrzeniach nazw użytkowników, aby zablokować ruch wychodzący z podów do punktu końcowego metadanych.

Uwaga

Aby zaimplementować zasady sieciowe, dołącz atrybut --network-policy azure podczas tworzenia klastra usługi AKS. Użyj następującego polecenia, aby utworzyć klaster: az aks create -g myResourceGroup -n myManagedCluster --network-plugin azure --network-policy azure --generate-ssh-keys

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: restrict-instance-metadata
spec:
  podSelector:
    matchLabels: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 10.10.0.0/0#example
        except:
        - 169.254.169.254/32

W usłudze AKS Standard upewnij się, że wybrany model sieciowy i aparat zasad obsługują tę ścieżkę zasad. W usłudze AKS Automatic zastosuj równoważne ograniczenia ruchu wychodzącego na poziomie przestrzeni nazw, jeśli są one obsługiwane w konfiguracji klastra.

Zabezpieczanie dostępu kontenera do zasobów

Wskazówki dotyczące najlepszych rozwiązań

Ogranicz dostęp do operacji, które mogą wykonywać kontenery. Podaj najmniejszą liczbę uprawnień i unikaj korzystania z dostępu głównego lub uprzywilejowanej eskalacji.

W taki sam sposób, jak należy przyznać użytkownikom lub grupom wymagane minimalne uprawnienia, należy również ograniczyć kontenery tylko do niezbędnych akcji i procesów. Aby zminimalizować ryzyko ataku, należy unikać konfigurowania aplikacji i kontenerów, które wymagają eskalowanych uprawnień lub dostępu głównego.

Korzystając z przestrzeni nazw użytkownika, można zwiększyć izolację hosta i ograniczyć ruch boczny w przypadku ucieczki z kontenera. Te ulepszenia są istotne niezależnie od tego, czy zasobnik działa z uprawnieniami roota, czy nie.

Aby uzyskać jeszcze bardziej szczegółową kontrolę nad akcjami kontenera, możesz również użyć wbudowanych funkcji zabezpieczeń systemu Linux, takich jak AppArmor i seccomp.

Nawet jeśli usługa AKS Automatic zapewnia domyślne zabezpieczenia, mechanizmy kontroli zabezpieczeń na poziomie obciążenia pozostają obowiązkami zespołu aplikacji i platformy.

Aby uzyskać więcej informacji, zobacz Bezpieczny dostęp kontenera do zasobów.

Regularnie aktualizuj do najnowszej wersji rozwiązania Kubernetes

Wskazówki dotyczące najlepszych rozwiązań

Aby być na bieżąco z nowymi funkcjami i poprawkami błędów, regularnie uaktualnij wersję rozwiązania Kubernetes w klastrze usługi AKS.

Platforma Kubernetes udostępnia nowe funkcje w szybszym tempie niż w przypadku bardziej tradycyjnych platform infrastruktury. Aktualizacje platformy Kubernetes obejmują:

  • Nowe funkcje
  • Poprawki błędów lub zabezpieczeń

Nowe funkcje zwykle przechodzą przez stan alfa i beta , zanim staną się stabilne. Gdy jest stabilna, są ogólnie dostępne i zalecane do użytku produkcyjnego. Cykl wydań nowych funkcji w Kubernetes umożliwia aktualizowanie Kubernetes bez konieczności regularnego napotykania niekompatybilnych zmian ani dostosowywania wdrożeń i szablonów.

Usługa AKS obsługuje trzy wersje pomocnicze platformy Kubernetes. Po wprowadzeniu nowej wersji poprawki pomocniczej najstarsza obsługiwana wersja pomocnicza i wersje poprawek zostaną wycofane. Aktualizacje pomocnicze platformy Kubernetes są wykonywane okresowo. Aby zachować wsparcie, upewnij się, że masz proces nadzoru pozwalający weryfikować konieczne aktualizacje. Aby uzyskać więcej informacji, zobacz Obsługiwane wersje platformy Kubernetes w usłudze AKS.

W usłudze AKS Automatic mechanizmy związane z aktualizacją są w większym stopniu wstępnie skonfigurowane w obsługiwanych konfiguracjach, a operatorzy powinni skupić się na weryfikacji gotowości obciążeń i nadzorze nad wydaniami. W usłudze AKS Standard operatorzy wybierają strategię uaktualniania i czas wdrażania oraz zarządzają nimi bezpośrednio.

Aby sprawdzić wersje dostępne dla klastra, użyj az aks get-upgrades polecenia , jak pokazano w poniższym przykładzie:

az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster --output table

Następnie możesz zaktualizować klaster AKS za pomocą polecenia az aks upgrade. Bezpieczny proces aktualizacji:

  • Cordony i opróżniają jeden węzeł naraz.
  • Przypisuje pody do pozostałych węzłów.
  • Wdraża nowy węzeł z najnowszymi wersjami systemu operacyjnego i platformy Kubernetes.

Ważne

Przetestuj nowe wersje pomocnicze w środowisku testowym deweloperskim i sprawdź, czy obciążenie pozostaje w dobrej kondycji przy użyciu nowej wersji platformy Kubernetes.

Kubernetes może wycofywać interfejsy API (na przykład w wersji 1.16), od których zależą Twoje obciążenia robocze. W przypadku wprowadzenia nowych wersji do środowiska produkcyjnego rozważ użycie wielu pul węzłów w osobnych wersjach i uaktualnienie poszczególnych pul pojedynczo, aby stopniowo wdrażać aktualizację w klastrze. W przypadku uruchamiania wielu klastrów uaktualnij jeden klaster jednocześnie, aby stopniowo monitorować wpływ lub zmiany.

Aby uzyskać więcej informacji na temat uaktualnień w usłudze AKS, zobacz Obsługiwane wersje rozwiązania Kubernetes w usłudze AKS i Uaktualnianie klastra usługi AKS.

Przetwarzanie aktualizacji węzła systemu Linux

Każdego wieczoru węzły systemu Linux w usłudze AKS uzyskują poprawki zabezpieczeń za pośrednictwem kanału aktualizacji dystrybucji. To zachowanie jest konfigurowane automatycznie podczas wdrażania węzłów w klastrze AKS. Aby zminimalizować zakłócenia i potencjalny wpływ na uruchamianie obciążeń, węzły nie są automatycznie uruchamiane, jeśli wymagana jest poprawka zabezpieczeń lub aktualizacja jądra. Aby uzyskać więcej informacji na temat obsługi ponownych rozruchów węzłów, zobacz Stosowanie aktualizacji zabezpieczeń i jądra do węzłów w usłudze AKS.

W usłudze AKS Automatic sposób aktualizacji węzłów jest w większym stopniu wstępnie skonfigurowany w obsługiwanych konfiguracjach. W AKS Standard operatorzy często definiują zasady zarządzania aktualizacjami i ponownym uruchamianiem za pomocą jasno określonych mechanizmów kontroli operacyjnej.

Aktualizacje obrazu węzła

Nienadzorowane aktualizacje instalują aktualizacje systemu operacyjnego Linux na węźle, ale obraz używany do tworzenia węzłów w klastrze pozostaje niezmieniony. Jeśli nowy węzeł systemu Linux zostanie dodany do klastra, oryginalny obraz zostanie użyty do utworzenia węzła. Ten nowy węzeł będzie otrzymywać wszystkie aktualizacje zabezpieczeń i jądra dostępne podczas nocnego automatycznego sprawdzania, ale pozostanie bez zainstalowanych poprawek do momentu zakończenia wszystkich sprawdzeń i ponownych uruchomień. Możesz użyć uaktualnienia obrazu węzła, aby sprawdzić i zaktualizować obrazy węzłów używane przez klaster. Aby uzyskać więcej informacji na temat uaktualniania obrazu węzła, zobacz Uaktualnianie obrazu węzła usługi Azure Kubernetes Service (AKS).

Przetwarzanie aktualizacji węzłów systemu Windows Server

W przypadku węzłów systemu Windows Server regularnie przeprowadzaj operację uaktualniania obrazu węzła, aby bezpiecznie kordonować i opróżniać zasobniki oraz wdrażać zaktualizowane węzły.

Aby uzyskać więcej informacji na temat usługi AKS i zabezpieczania klastra usługi AKS, zobacz następujące artykuły: