Metodtips för klustersäkerhet och uppgraderingar i Azure Kubernetes Service (AKS)

Gäller för: ✔️ AKS Automatic ✔️ AKS Standard

När du hanterar kluster i Azure Kubernetes Service (AKS) är arbetsbelastning och datasäkerhet en viktig faktor. När du kör kluster för flera klientorganisationer med logisk isolering behöver du särskilt skydda åtkomsten till resurser och arbetsbelastningar. Minimera risken för angrepp genom att tillämpa de senaste säkerhetsuppdateringarna för Kubernetes och nodens operativsystem.

Den här artikeln fokuserar på hur du skyddar ditt AKS-kluster. Du lär dig att:

  • Använd Microsoft Entra ID och rollbaserad Kubernetes-åtkomstkontroll (Kubernetes RBAC) för att skydda API-serveråtkomst.
  • Skydda containeråtkomst till nodresurser.
  • Uppgradera ett AKS-kluster till den senaste Kubernetes-versionen.
  • Håll noderna uppdaterade och tillämpa säkerhetskorrigeringar automatiskt.

Du kan också läsa metodtipsen för hantering av containeravbildningar och för poddsäkerhet.

Säkerhetsansvar för AKS-klusterläge

AKS stöder två klusterlägen: AKS Automatic och AKS Standard. Säkerhetsmålen är desamma i båda lägena, men implementeringsansvaret skiljer sig åt.

AKS Automatic innehåller en härdad baslinje med fler förkonfigurerade kontroller i konfigurationer som stöds. AKS Standard ger bredare direktkonfigurationskontroll, vilket ökar operatörsansvaret för baslinjekonfiguration och pågående åtgärder.

Area AKS Automatisk AKS Standard
Klusterautentisering och auktoriseringsbaslinje Fler förkonfigurerade standardvärden i konfigurationer som stöds Konfigureras ofta explicit av operatorer
API-servernätverkshärdning Mer förkonfigurerat baslinjebeteende i konfigurationer som stöds Uttryckliga härdningsalternativ för driftansvariga
Säkerhetskontroller för policy och grundläggande nivå Fler förkonfigurerade standardvärden i konfigurationer som stöds Explicit aktivering av policy och val av läge
Kontroller för bildhygien Baslinjekontroller som är tillgängliga i konfigurationer som stöds Uttrycklig aktivering och ägarskap för livscykeln
Åtgärder för systemnodpooler Mer tjänsthanterat beteende Mer operatorhanterat beteende
Uppgradera ägarskapet Fler standardinställningar för hanterade uppgraderingar Operatörsvald strategi och distributionsstyrning

Aktivera skydd mot hot

Vägledning för bästa praxis

Du kan aktivera Defender for Containers för att skydda dina containrar. Defender for Containers kan utvärdera klusterkonfigurationer och tillhandahålla säkerhetsrekommendationer, köra sårbarhetsgenomsökningar och tillhandahålla realtidsskydd och aviseringar för Kubernetes-noder och kluster.

Den här vägledningen gäller för båda lägena. Även om AKS Automatic tillhandahåller förkonfigurerade standardinställningar för säkerhet förblir arbetsflöden för hotskyddsregistrering och arbetsflöden för aviseringssvar operativa ansvarsområden för ditt team.

Säker åtkomst till API-servern och klusternoderna

Vägledning för bästa praxis

Ett av de viktigaste sätten att skydda klustret är att skydda åtkomsten till Kubernetes API-servern. Om du vill styra åtkomsten till API-servern integrerar du Kubernetes RBAC med Microsoft Entra-ID. Med dessa kontroller skyddar du AKS på samma sätt som du skyddar åtkomsten till dina Azure-prenumerationer.

Kubernetes API-servern tillhandahåller en enda anslutningspunkt för begäranden om att utföra åtgärder i ett kluster. För att skydda och granska åtkomsten till API-servern begränsar du åtkomsten och ger lägsta möjliga behörighetsnivåer. Även om den här metoden inte är unik för Kubernetes är det särskilt viktigt när du logiskt har isolerat DITT AKS-kluster för användning med flera klientorganisationer.

Microsoft Entra ID tillhandahåller en företagsklar identitetshanteringslösning som integreras med AKS-kluster. Eftersom Kubernetes inte tillhandahåller någon identitetshanteringslösning kan du vara hårt pressad att detaljerad begränsa åtkomsten till API-servern. Med Microsoft Entra-integrerade kluster i AKS använder du dina befintliga användar- och gruppkonton för att autentisera användare till API-servern.

Microsoft Entra-integrering för AKS-kluster

Med Kubernetes RBAC och Microsoft Entra ID-integrering kan du skydda API-servern och ange de minsta behörigheter som krävs för en begränsad resursuppsättning, till exempel ett enda namnområde. Du kan bevilja olika Microsoft Entra-användare eller grupper olika Kubernetes-roller. Med detaljerade behörigheter kan du begränsa åtkomsten till API-servern och tillhandahålla en tydlig spårningslogg med åtgärder som utförs.

I AKS Automatic är auktoriserings- och säkerhetsbaslinjer mer förkonfigurerade i konfigurationer som stöds, så operatörerna fokuserar på validering, styrning och undantagshantering. I AKS Standard konfigurerar driftansvariga ofta de här kontrollerna direkt och upprätthåller deras livscykelhantering.

Mer information om Microsoft Entra-integrering, Kubernetes RBAC och Azure RBAC finns i Metodtips för autentisering och auktorisering i AKS.

Begränsa åtkomsten till API för instansmetadata

Vägledning för bästa praxis

Lägg till en nätverksprincip i alla användarnamnrymder för att blockera poddutgåendet till metadataslutpunkten.

Kommentar

Om du vill implementera nätverksprincip tar du med attributet --network-policy azure när du skapar AKS-klustret. Använd följande kommando för att skapa klustret: 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

I AKS Standard kontrollerar du att den valda nätverksmodellen och principmotorn stöder den här principsökvägen. I AKS Automatic använder du motsvarande utgående begränsningar på namnområdesnivå där det stöds i klusterkonfigurationen.

Skydda containeråtkomst till resurser

Vägledning för bästa praxis

Begränsa åtkomsten till åtgärder som containrar kan utföra. Ange minst antal behörigheter och undvik att använda rotåtkomst eller privilegierad eskalering.

På samma sätt som du bör ge användare eller grupper de minsta behörigheter som krävs bör du också begränsa containrar till endast nödvändiga åtgärder och processer. Undvik att konfigurera program och containrar som kräver eskalerade privilegier eller rotåtkomst för att minimera risken för angrepp.

Med hjälp av användarnamnrymder kan du förbättra värdisoleringen och begränsa den laterala förflyttningen vid containerutbrott. Dessa förbättringar är betydande oavsett om podden körs med root-behörighet eller inte.

Om du vill ha ännu mer detaljerad kontroll över containeråtgärder kan du också använda inbyggda Linux-säkerhetsfunktioner som AppArmor och seccomp.

Även när AKS Automatic tillhandahåller härdade standardvärden förblir säkerhetskontroller på arbetsbelastningsnivå program- och plattformsteamets ansvarsområden.

Mer information finns i Skydda containeråtkomst till resurser.

Uppdatera regelbundet till den senaste versionen av Kubernetes

Vägledning för bästa praxis

Om du vill hålla dig uppdaterad om nya funktioner och felkorrigeringar uppgraderar du regelbundet Kubernetes-versionen i AKS-klustret.

Kubernetes släpper nya funktioner i snabbare takt än mer traditionella infrastrukturplattformar. Kubernetes-uppdateringar inkluderar:

  • Nya funktioner
  • Bugg- eller säkerhetskorrigeringar

Nya funktioner går vanligtvis igenom alfa- och betastatus innan de blir stabila. När de är stabila är de allmänt tillgängliga och rekommenderas för produktionsanvändning. Kubernetes nya lanseringscykel för funktioner gör det möjligt att uppdatera Kubernetes utan att regelbundet stöta på icke bakåtkompatibla ändringar eller behöva justera dina driftsättningar och mallar.

AKS stöder tre mindre versioner av Kubernetes. När en ny delkorrigeringsversion introduceras dras den äldsta delversionen och korrigeringsversionerna som stöds tillbaka. Mindre Kubernetes-uppdateringar sker regelbundet. Se till att du har en styrningsprocess för att söka efter nödvändiga uppgraderingar för att hålla dig inom supporten. Mer information finns i Kubernetes-versioner som stöds AKS.

I AKS Automatic är uppgraderingsrelaterat beteende mer förkonfigurerat i konfigurationer som stöds, och operatörerna bör fokusera på validering av arbetsbelastningsberedskap och versionsstyrning. I AKS Standard väljer och styr operatörer uppgraderingsstrategin och distributionstidpunkten mer direkt.

Om du vill kontrollera vilka versioner som är tillgängliga för klustret använder du az aks get-upgrades kommandot enligt följande exempel:

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

Du kan sedan uppgradera ditt AKS-kluster med hjälp av az aks upgrade kommandot . Uppgraderingsprocessen på ett säkert sätt:

  • Spärrar och tömmer en nod i taget.
  • Schemalägger poddar på återstående noder.
  • Distribuerar en ny nod som kör de senaste versionerna av operativsystemet och Kubernetes.

Viktigt!

Testa nya delversioner i en utvecklingstestmiljö och kontrollera att din arbetsbelastning förblir felfri med den nya Kubernetes-versionen.

Kubernetes kan fasa ut API:er (som i version 1.16) som dina arbetslaster är beroende av. När du tar nya versioner till produktion bör du överväga att använda flera nodpooler i separata versioner och uppgradera enskilda pooler en i taget för att successivt rulla uppdateringen över ett kluster. Om du kör flera kluster uppgraderar du ett kluster i taget för att progressivt övervaka påverkan eller ändringar.

Mer information om uppgraderingar i AKS finns i Kubernetes-versioner som stöds i AKS och Uppgradera ett AKS-kluster.

Bearbeta linux-noduppdateringar

Varje kväll får Linux-noder i AKS säkerhetskorrigeringar via distributionsuppdateringskanalen. Det här beteendet konfigureras automatiskt när noderna distribueras i ett AKS-kluster. För att minimera störningar och potentiell påverkan på arbetsbelastningar som körs startas noder inte automatiskt om en säkerhetskorrigering eller kerneluppdatering kräver det. Mer information om hur du hanterar nodomstarter finns i Tillämpa säkerhets- och kerneluppdateringar på noder i AKS.

I AKS Automatic är noduppdateringsbeteendet mer förkonfigurerat i konfigurationer som stöds. I AKS Standard definierar operatörer ofta uppdaterings- och omstartsstyrning med explicita driftkontroller.

Uppgraderingar av nodbild

Obevakade uppgraderingar tillämpar uppdateringar på Linux-nodoperativsystemet, men avbildningen som används för att skapa noder för klustret förblir oförändrad. Om en ny Linux-nod läggs till i klustret används den ursprungliga avbildningen för att skapa noden. Den här nya noden får alla säkerhets- och kerneluppdateringar som är tillgängliga under den automatiska kontrollen varje natt, men förblir okopplade tills alla kontroller och omstarter har slutförts. Du kan använda nodavbildningsuppgradering för att söka efter och uppdatera nodavbildningar som används av klustret. Mer information om uppgradering av nodbild finns i Azure Kubernetes Service (AKS) nodbilduppgradering.

Bearbeta windows server-noduppdateringar

För Windows Server-noder utför du regelbundet en uppgraderingsåtgärd för nodavbildning för att på ett säkert sätt spärra och tömma poddar och distribuera uppdaterade noder.

Mer information om AKS och hur du skyddar ditt AKS-kluster finns i följande artiklar: