Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Kubernetes Service (AKS) kluster använder certifikat för autentisering mellan olika komponenter, inklusive AKS-hanterade kontrollplanskomponenter och dataplanskomponenter. Den här artikeln innehåller en översikt över certifikathantering och rotation i AKS.
Viktigt!
Från och med den 1 april 2027 stöder Azure Kubernetes Service (AKS) inte längre taggen för nodpoolen aks-disable-kubelet-serving-certificate-rotation=true för att inaktivera Kubelet Serving Certificate Rotation (KSCR). Du kan skapa nya nodpooler med den här taggen, men AKS respekterar den inte. Det här beteendet innebär att nodpoolerna skapas med KSCR aktiverat. För befintliga nodpooler aktiveras KSCR automatiskt vid nästa återimeringsåtgärd. Innan det här datumet kan du uppdatera nodpoolerna med hjälp av az aks nodepool update kommandot med taggen aks-disable-kubelet-serving-certificate-rotation=true . För att förbereda för borttagningen bör du uppdatera dina arbetsuppgifter med rätt certifikatsökväg. Mer information finns i GitHub-problemet för pensionering. Om du vill hålla dig informerad om meddelanden och uppdateringar följer du AKS-versionsinformation.
Anteckning
Autorotation av certifikat för nodklient och servercertifikat aktiveras som standard för kluster som aktiverar Kubernetes RBAC.
- AKS-kluster som skapades före maj 2019 har klustrets CA-certifikat som upphör att gälla efter två år.
- AKS-kluster som skapats efter maj 2019 har klustrets CA-certifikat som löper ut efter 30 år.
Vad är certifikatrotation?
Certifikatrotation är processen att ersätta digitala certifikat med nya för att upprätthålla säkerhet och förhindra störningar. Det är en viktig säkerhetspraxis som utförs för att ersätta utgångna certifikat, minimera risker från komprometterade nycklar och svara på nya säkerhetskrav. Den här processen kan innebära att certifikat förnyas automatiskt eller att de ersätts manuellt. Ofta krävs en planerad underhållsperiod vid komplexa byten, särskilt när ett rotcertifikat ingår.
Certifikat, certifikatutfärdare och tjänstkontotoken i AKS
AKS genererar och använder följande certifikat, certifikatutfärdare (CA) och token för tjänstkonton (SA):
| Certificate | Description | Rotationsmetod |
|---|---|---|
| Utfärdare av klustercertifikat | Skapad av AKS för din räkning och är unik för klustret. Det här CA-certifikatet används för att utfärda både klient- och servercertifikat för de kubelets som körs i ditt dataplan samt det certifikat som används av API-servern. | Manual |
| Tjänstkontotoken | JSON-webbtokenar (JWT) signerade av klustrets CA-certifikat. De kubelets som körs på dina agentnoder begär och förnyar automatiskt dessa tokenar. Mer information finns i Starta en podd med tokenprojektion för servicekonton. | Uppdateras automatiskt som en del av manuell ca-rotation för kluster |
| API-servercertifikat | Signerad och utfärdad av klustrets CA-certifikat. Det här certifikatet används när du upprättar TLS-baserade anslutningar med API-servern, till exempel med kubectl. |
Uppdateras automatiskt som en del av manuell ca-rotation för kluster |
| Kubelet-serveringscertifikat | I kluster som har rotation av kubelets servercertifikat aktiverad är det klustrets CA-certifikat som utfärdar och signerar detta certifikat. Annars genererar och signerar agentnoden certifikatet själv. Det här certifikatet upprättar TLS-baserade anslutningar med komponenter som behöver ansluta till någon av kubelet-serverslutpunkterna, till exempel metrics-server. | Automatiskt för kluster med aktiverad rotation av kubelets servercertifikat |
| Kubelet-klientcertifikat | Signerad och utfärdad av klustrets CA-certifikat. Det här certifikatet använder ett AKS-specifikt TLS-bootstrappingprotokoll som tillhandahåller kubelet-klientcertifikatet och motsvarande kubeconfig innan kubelet startar. AKS TLS-protokollet är endast aktiverat på Kubernetes-kluster version 1.32 eller senare. | Uppdateras automatiskt som standard med hjälp av vanilj-TLS-bootstrapping och som en del av manuell kluster-CA-rotation |
kubectl klientcertifikat |
Används för certifikatbaserad autentisering med API-servern. | Rotera manuellt efter manuell rotation av kluster-CA |
Anteckning
AKS hanterar inte något certifikat som skapats för eller som är specifikt för en kunds arbetsbelastning.
Automatisk rotation av certifikat i AKS
AKS roterar automatiskt följande certifikat:
- Kluster som skapats efter mars 2022 med Kubernetes RBAC aktiverat aktiverar autorotering av kubelet-klientcertifikat som standard.
Anteckning
Du kan behöva rotera dessa certifikat manuellt av säkerhetsskäl. Du kan till exempel ha en princip för att rotera alla dina certifikat var 90:e dag. Som standard sker autorotering av kubelet-klientcertifikat manuellt.
Begränsningar för autorotation av certifikat
Följande begränsningar gäller för autorotation av certifikat:
- Klustret måste använda vanilj-TLS-bootstrapping eller AKS-säker TLS-bootstrapping, som distribueras som standard till alla Azure regioner.
- För befintliga kluster måste du uppgradera klustret för att aktivera autorotation av certifikat.
Manuell certifikatrotation i AKS
Du måste rotera följande certifikat manuellt:
- Klustrade CA-certifikat med hjälp av
az aks rotate-certs. -
kubectlklientcertifikat med kommandotaz aks get-credentials(efter manuell rotation av klustrets CA-certifikat).
När du byter ut klustrets CA-certifikat uppdateras även följande underliggande certifikat:
- Tjänstkontotoken (SA)
- API-servercertifikat
- Kubelet-klientcertifikat
- Kubelet-servercertifikat (om kubelet som hanterar certifikatrotation är aktiverat i klustret)
När du har roterat klustrets CA-certifikat måste du också manuellt rotera kubectl-klientcertifikaten för att säkerställa fortsatt åtkomst till API-servern.
TLS-start för kubelet-klientcertifikatet
Kubelet använder ett AKS-specifikt TLS-bootstrappingprotokoll och förlitar sig på nodens identitet inom Entra ID. Den här identiteten tillhandahåller kubelet sitt klientcertifikat och motsvarande kubeconfig innan kubelet startar. Den här ändringen syftar till att förstärka AKS-nodens säkerhetsstatus genom att eliminera Kubelets beroende av en statisk bootstrap-tokenhemlighet för att registrera sig med API-servern. Om det säkra TLS-bootstrapping-protokollet av någon anledning misslyckas kan kubelet fortfarande registrera sig själv med API-servern med hjälp av en bootstrap-token och noden blir så småningom redo. Du ser aksService (i stället för system:bootstrap:<>) som fältet för begärande på objekten för certifikatsigneringsbegäran (CSR) som skapats av protokollet.
Kubelet-klientcertifikatet finns fortfarande i /var/lib/kubelet/pki/kubelet-client-current.pem på Linux-noder och C:\k\pki\kubelet-client-current.pem på Windows noder. Bootstrap-kubeconfig finns fortfarande på samma plats. AKS fortsätter att rotera det här certifikatet automatiskt som en del av certifikatrotationsprocessen.
Kubelet som betjänar certifikatrotation
Rotation av kubelets servercertifikat gör det möjligt för AKS att använda kubelets TLS-bootstrap för servercertifikat både för initial bootstrap och för rotation av servercertifikat som signeras av klustrets CA.
Mer information finns i Hantera och rotera certifikat i Azure Kubernetes Service (AKS).
Begränsningar för rotation av Kubelets servercertifikat
- Stöds i Kubernetes version 1.27 och senare.
- Stöds inte när nodpoolen använder en ögonblicksbild av nodpoolen baserat på en nodbild som är äldre än
202501.12.0. - Du kan inte aktivera den här funktionen manuellt. Befintliga nodpooler har kubelet som betjänar certifikatrotation aktiverat som standard när de har slutfört sin första uppgradering till kubernetes version 1.27 eller senare. Nya nodpooler i Kubernetes version 1.27 eller senare har kubelet som hanterar certifikatrotation aktiverat som standard. Om du vill se om rotation av kubelet-servercertifikat är aktiverad i din region, se AKS-versioner.
- Kubernetes RBAC måste vara aktiverat i klustret för att kubelet som hanterar certifikatrotation ska aktiveras. Om du har ett befintligt kluster måste du uppgradera klustret för att aktivera Kubernetes RBAC.