Zabezpieczanie wdrożenia Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) zapewnia zarządzane środowisko Kubernetes do wdrażania i obsługi konteneryzowanych aplikacji. Microsoft zarządza płaszczyzną sterowania platformy Kubernetes, a ty odpowiadasz za zabezpieczanie obciążeń, konfiguracji węzłów, sieci, tożsamości i danych w klastrach. Podczas wdrażania usługi AKS ważne jest, aby postępować zgodnie z najlepszymi rozwiązaniami w zakresie zabezpieczeń, aby chronić tę udostępnioną powierzchnię w całym cyklu życia klastra.

Ten artykuł zawiera zalecenia dotyczące zabezpieczeń ułatwiające ochronę wdrożenia usługi AKS. Wiele z tych mechanizmów kontrolnych jest wstępnie skonfigurowanych w usłudze AKS Automatic, która tworzy klastry w oparciu o wzmocnioną konfigurację bazową, a w usłudze AKS Standard można je włączać i nimi zarządzać. Aby zapoznać się z pojęciami dotyczącymi tych mechanizmów, w tym ze sposobem działania zabezpieczeń AKS w całym potoku od kompilacji do środowiska uruchomieniowego, zobacz Podstawowe pojęcia dotyczące zabezpieczeń aplikacji i klastrów w usłudze AKS.

Zalecenia dotyczące zabezpieczeń w tym artykule implementują zasady Zero Trust: "Weryfikuj dokładnie", "Stosuj dostęp o najmniejszych uprawnieniach" i "Zakładaj, że doszło do naruszenia". Aby uzyskać kompleksowe wskazówki dotyczące zerowego zaufania, zobacz Centrum wskazówek dotyczących zerowego zaufania.

Zabezpieczenia specyficzne dla usługi

Usługa AKS łączy typy pierwotne zabezpieczeń platformy Kubernetes z kontrolkami platformy Azure. Poniższe zalecenia dotyczą problemów związanych z wzmacnianiem zabezpieczeń unikatowych dla uruchamiania zarządzanego klastra Kubernetes, w tym integralności węzłów, pochodzenia obrazów i izolacji obciążenia.

Wzmacnianie zabezpieczeń klastra i węzła

  • Zachowaj klastry w obsługiwanej wersji rozwiązania Kubernetes z automatycznymi uaktualnieniami klastra: Zarejestruj klastry w kanale automatycznego uaktualniania, aby pula płaszczyzny sterowania i węzłów otrzymywać poprawki Kubernetes, które naprawiają znane luki w zabezpieczeniach bez ręcznej interwencji. Aby uzyskać więcej informacji, zobacz Automatyczne uaktualnianie klastra AKS.
  • Automatyczne stosowanie aktualizacji zabezpieczeń systemu operacyjnego węzła: skonfiguruj kanał automatycznego uaktualniania systemu operacyjnego węzła, aby węzły otrzymywały poprawki zabezpieczeń systemu operacyjnego linux i Windows w zdefiniowanym zakresie. Aby uzyskać więcej informacji, zobacz Automatyczne uaktualnianie obrazów systemu operacyjnego węzłów klastra AKS.
  • Wymuś standardy mechanizmu Pod Security Admission: stosuj podstawowe lub ograniczone standardy Pod Security na poziomie przestrzeni nazw, aby zapobiegać uprzywilejowanym zasobnikom, współdzieleniu przestrzeni nazw hosta i niebezpiecznemu montowaniu woluminów. Aby uzyskać więcej informacji, zobacz Zabezpieczanie zasobników w usłudze AKS.
  • Wdrażanie pul węzłów z obsługą standardu FIPS dla obciążeń regulowanych: Włącz pule węzłów z obsługą protokołu FIPS, które używają zweryfikowanych modułów kryptograficznych FIPS 140-3, gdy obciążenia muszą spełniać wymagania, takie jak zgodność z protokołem FedRAMP. Aby uzyskać więcej informacji, zobacz Włączanie standardu FIPS (Federal Information Process Standard) dla pul węzłów platformy AKS.
  • Nie uruchamiaj wrogich obciążeń wielodzierżawnych w klastrze współdzielonym: standardowy klaster Kubernetes nie stanowi ścisłej granicy bezpieczeństwa między niezaufanymi dzierżawcami, ponieważ domeną bezpieczeństwa jest cały klaster, a nie pojedynczy węzeł. W przypadku obciążeń roboczych wymagających ścisłej izolacji używaj fizycznie izolowanych klastrów, izolowanych rozmiarów węzłów maszyn wirtualnych lub piaskownicowania zasobników. Aby uzyskać więcej informacji, zobacz artykuł Najlepsze praktyki w zakresie izolacji klastra w usłudze AKS.

Obraz kontenera i zabezpieczenia łańcucha dostaw

Bezpieczeństwo sieci

Domyślnie serwer interfejsu API usługi AKS jest osiągalny za pośrednictwem publicznego punktu końcowego, a ruch wychodzący klastra jest nieograniczony. Ograniczenie zarówno dostępu przychodzącego do płaszczyzny sterowania, jak i ruchu wychodzącego z obciążeń jest jednym z najbardziej skutecznych zmian, które można wprowadzić w celu zmniejszenia obszaru ataków sieciowych klastra.

Zarządzanie tożsamością i dostępem

Usługa AKS uwierzytelnia tożsamości klastra i obciążeń przy użyciu usługi Microsoft Entra ID oraz autoryzuje dostęp przy użyciu mechanizmów RBAC platformy Azure i platformy Kubernetes. Użyj tożsamości zarządzanych i autoryzacji opartej na usłudze Entra zamiast statycznych poświadczeń lub autonomicznych kont Kubernetes.

  • Użyj tożsamości zarządzanej dla klastra: Skonfiguruj klaster tak, aby używał tożsamości zarządzanej, dzięki czemu usługa AKS będzie uzyskiwać dostęp do zasobów platformy Azure bez statycznych poświadczeń nazwy głównej usługi, które trzeba okresowo zmieniać. Aby uzyskać więcej informacji, zobacz Używanie tożsamości zarządzanej w Azure Kubernetes Service (AKS).
  • Użyj tożsamości obciążenia roboczego do uzyskiwania przez pody dostępu do zasobów platformy Azure: Federuj konta usług Kubernetes z tożsamościami obciążenia roboczego Microsoft Entra, aby pody uzyskiwały tokeny dostępu do zasobów platformy Azure bez przechowywania wpisów tajnych. Aby uzyskać więcej informacji, zobacz Use Tożsamość obciążeń Microsoft Entra with AKS (Używanie Tożsamość obciążeń Microsoft Entra z usługą AKS).
  • Integrowanie uwierzytelniania klastra z Microsoft Entra ID: włącz integrację Microsoft Entra, aby użytkownicy i grupy uwierzytelniły się w klastrze przy użyciu tożsamości entra zamiast certyfikatów udostępnionych. Aby uzyskać więcej informacji, zobacz Integracja Microsoft Entra zarządzana przez AKS.
  • Autoryzowanie dostępu do interfejsu API platformy Kubernetes za pomocą usługi Azure RBAC: użyj usługi Azure RBAC do autoryzacji w Kubernetes i przypisz wbudowane role usługi AKS (Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Admin i Azure Kubernetes Service RBAC Cluster Admin) na poziomie klastra lub przestrzeni nazw, aby przyznać dostęp zgodnie z zasadą najmniejszych uprawnień. Aby uzyskać więcej informacji, zobacz Pojęcia dotyczące autoryzacji klastra.
  • Wyłącz lokalne konta Kubernetes: wyłącz lokalne konta, aby cały dostęp do klastra odbywał się przez Microsoft Entra ID i nie można było ominąć autoryzacji opartej na Microsoft Entra za pomocą statycznych poświadczeń administratora klastra. Aby uzyskać więcej informacji, zobacz Manage local accounts with AKS-managed Microsoft Entra integration (Zarządzanie kontami lokalnymi przy użyciu integracji z usługą AKS Microsoft Entra).
  • Wymuś dostęp warunkowy dla administratorów klastra: Stosuj zasady dostępu warunkowego, które wymagają uwierzytelniania wieloskładnikowego i urządzeń zgodnych z zasadami dla tożsamości Entra, które mogą tworzyć, aktualizować lub usuwać klastry AKS oraz zarządzać ich pulami węzłów, konfiguracją sieci i przypisaniami ról. Więcej informacji można znaleźć w artykule Wymagaj MFA dla zarządzania Azure.

Ochrona danych

Usługa AKS domyślnie szyfruje dane magazynowane na dyskach zarządzanych. Skonfiguruj następujące mechanizmy kontrolne, aby chronić klucze tajne Kubernetes i używać własnych kluczy, jeśli wymagają tego wymogi zgodności.

  • Szyfruj klucze tajne platformy Kubernetes w etcd za pomocą usługi zarządzania kluczami: włącz szyfrowanie danych KMS, aby obiekty Secret platformy Kubernetes były szyfrowane w warstwie aplikacji przed zapisaniem w etcd przy użyciu kluczy zarządzanych przez platformę lub własnych kluczy zarządzanych przez klienta w usłudze Azure Key Vault. Aby uzyskać więcej informacji, zobacz Podstawy szyfrowania danych magazynowanych w usłudze AKS.
  • Przechowuj klucze tajne aplikacji w usłudze Azure Key Vault: Użyj dostawcy Azure Key Vault dla sterownika Secrets Store CSI Driver, aby zamontować klucze tajne, klucze i certyfikaty z usługi Key Vault zamiast przechowywać je jako klucze tajne Kubernetes w postaci zwykłego tekstu. Aby uzyskać więcej informacji, zobacz Używanie dostawcy Azure Key Vault dla sterownika Secrets Store CSI Driver w usłudze AKS.
  • Użyj kluczy zarządzanych przez klienta dla dysków węzłów i danych: Szyfrowanie dysków systemu operacyjnego i danych przy użyciu własnych kluczy w Key Vault, gdy potrzebujesz kontroli nad cyklem życia klucza szyfrowania. Aby uzyskać więcej informacji, zobacz Bring your own keys (BYOK) with Azure disks in AKS (Używanie własnych kluczy (BYOK) z dyskami Azure w usłudze AKS.
  • Włącz szyfrowanie oparte na hoście: włącz szyfrowanie oparte na hoście, aby dyski tymczasowe i pamięci podręczne dysku systemu operacyjnego/danych na maszynie wirtualnej węzła zostały zaszyfrowane na hoście. Aby uzyskać więcej informacji, zobacz Szyfrowanie oparte na hoście w usłudze AKS.

Rejestrowanie i monitorowanie

Zbieraj dane telemetryczne klastra, płaszczyzny sterowania i obciążeń roboczych, aby wykrywać i analizować zagrożenia dotyczące klastrów usługi AKS.

  • Monitorowanie klastrów za pomocą usługi Container Insights: włącz usługę Container Insights, aby zbierać metryki węzłów i kontenerów oraz dzienniki dla klastrów w obszarze roboczym Log Analytics. Aby uzyskać więcej informacji, zobacz Monitorowanie Azure Kubernetes Service (AKS).
  • Zbierz dzienniki inspekcji płaszczyzny sterowania przy użyciu ustawień diagnostycznych: skonfiguruj ustawienia diagnostyczne w celu wysyłania kategorii serwera interfejsu API Kubernetes i dzienników inspekcji (kube-audit, kube-audit-admini guard) do Log Analytics na potrzeby badania zabezpieczeń. Aby uzyskać więcej informacji, zobacz Informacje o danych monitorowania usługi AKS.
  • Włącz wykrywanie zagrożeń za pomocą Microsoft Defender dla kontenerów: włącz Defender dla kontenerów, aby otrzymywać alerty wykrywania zagrożeń środowiska uruchomieniowego dla węzłów klastra, obciążeń i płaszczyzny sterowania kubernetes. Aby uzyskać więcej informacji, zobacz Omówienie usługi Microsoft Defender for Containers.

Zgodność i ład

Użyj Azure Policy, aby wymusić spójne konfiguracje zabezpieczeń w klastrach usługi AKS i zapobiec wdrażaniu niezgodnych obciążeń.

  • Wymuszaj konfigurację klastra i obciążeń za pomocą Azure Policy dla usługi AKS: włącz dodatek usługi Azure Policy i przypisz wbudowaną inicjatywę policyjną usługi AKS w celu inspekcji i egzekwowania mechanizmów kontroli, takich jak zatwierdzone rejestry kontenerów, limity zasobów i blokowanie kontenerów uprzywilejowanych. Aby uzyskać więcej informacji, zobacz Zabezpieczanie klastrów usługi AKS za pomocą usługi Azure Policy.
  • Zastosuj zabezpieczenia wdrażania zgodnie z najlepszymi praktykami Kubernetes: Włącz zabezpieczenia wdrażania, aby weryfikować zasoby klastra pod kątem najlepszych praktyk AKS w trybie ostrzegania lub wymuszania. Aby uzyskać więcej informacji, zobacz Używanie zabezpieczeń wdrożenia w celu wymuszania najlepszych rozwiązań w usłudze AKS.
  • Przypisywanie wbudowanych definicji zasad usługi AKS w celu wymuszania określonych kontrolek: przypisywanie wbudowanych definicji Azure Policy dla usługi AKS w celu wymuszania poszczególnych kontrolek, takich jak wymaganie autoryzowanych zakresów adresów IP lub klastrów prywatnych, wyłączanie kontenerów uprzywilejowanych i wymuszanie wewnętrznych modułów równoważenia obciążenia. Aby uzyskać więcej informacji, zobacz wbudowane definicje usługi Azure Policy dla usługi AKS.

Kopia zapasowa i przywracanie

Chroń dane stanu klastra i aplikacji, aby można było odzyskać dane po przypadkowym usunięciu, uszkodzeniu lub nieudanym uaktualnieniu.

  • Tworzenie kopii zapasowych stanu klastra i woluminów trwałych za pomocą funkcji AKS Backup: użyj funkcji AKS Backup z magazynem usługi Backup do planowania tworzenia kopii zapasowych zasobów klastra i woluminów trwałych opartych na usługach Azure Disk i Azure Files (SMB) oraz do przywracania przestrzeni nazw lub całego klastra. Aby uzyskać więcej informacji, zobacz Co to jest Azure Kubernetes Service (AKS) kopia zapasowa?.
  • Udziel dostępu do kopii zapasowej za pomocą zaufanego dostępu zamiast szerokich uprawnień: Włącz zaufany dostęp, aby magazyn kopii zapasowych docierał do klastra z uprawnieniami o określonym zakresie, a nie wymagającym stałego dostępu administracyjnego. Aby uzyskać więcej informacji, zobacz Włączanie dostępu zasobów platformy Azure do klastrów usługi AKS przy użyciu zaufanego dostępu.

Następne kroki