Obměně certifikátů Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) používá certifikáty pro ověřování u mnoha jeho komponent. Pravidelně může být nutné tyto certifikáty obměnět z důvodů zabezpečení nebo zásad. Můžete mít například zásadu obměně všech certifikátů každých 90 dní.

Tento článek ukazuje, jak obměně certifikátů v clusteru AKS.

Než začnete

Tento článek vyžaduje použití Azure CLI verze 2.0.77 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Certifikáty AKS, certifikační autority a účty služeb

AKS generuje a používá následující certifikáty, certifikační autority a účty služeb:

  • Server rozhraní API AKS vytvoří certifikační autoritu nazývanou certifikační autorita clusteru.
  • Server rozhraní API má certifikační autoritu clusteru, která podepisuje certifikáty pro jednosměnné komunikace ze serveru rozhraní API do kubelets.
  • Každý kubelet také vytvoří žádost o podepsání certifikátu (CSR), která je podepsaná certifikační autoritou clusteru pro komunikaci z kubeletu na server rozhraní API.
  • Agregátor rozhraní API používá certifikační autoritu clusteru k vydávání certifikátů pro komunikaci s jinými rozhraními API. Agregátor rozhraní API může mít také vlastní certifikační autoritu pro vystavování těchto certifikátů, ale v současné době používá certifikační autoritu clusteru.
  • Každý uzel používá token účtu služby (SA), který je podepsaný certifikační autoritou clusteru.
  • Klient kubectl má certifikát pro komunikaci s clusterem AKS.

Poznámka

Clustery AKS vytvořené před květnem 2019 mají certifikáty, které po dvou letech vyprší. Každý cluster vytvořený po květnu 2019 nebo jakýkoli cluster, který má obměna certifikátů, má certifikáty certifikační autority clusteru, které po 30 letech vyprší. Platnost všech ostatních certifikátů AKS, které k podepisování používají certifikační autoritu clusteru, vyprší po dvou letech a během upgradu verze AKS se automaticky obměna. Pokud chcete ověřit, kdy byl cluster vytvořen, pomocí zobrazte kubectl get nodes věk fondů uzlů.

Kromě toho můžete zkontrolovat datum vypršení platnosti certifikátu clusteru. Například následující příkaz Bash zobrazí podrobnosti o klientském certifikátu pro cluster myAKSCluster ve skupině prostředků rg.

kubectl config view --raw -o jsonpath="{.users[?(@.name == 'clusterUser_rg_myAKSCluster')].user.client-certificate-data}" | base64 -d | openssl x509 -text | grep -A2 Validity
  • Kontrola data vypršení platnosti certifikátu apiserver
curl https://{apiserver-fqdn} -k -v 2>&1 |grep expire
  • Kontrola data vypršení platnosti certifikátu na uzlu agenta VMAS
az vm run-command invoke -g MC_rg_myAKSCluster_region -n vm-name --command-id RunShellScript --query 'value[0].message' -otsv --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"
  • Kontrola data vypršení platnosti certifikátu na jednom uzlu agenta VMSS
az vmss run-command invoke -g MC_rg_myAKSCluster_region -n vmss-name --instance-id 0 --command-id RunShellScript --query 'value[0].message' -otsv --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"

Automatická rotace certifikátů

Azure Kubernetes Service automaticky obměnou certifikátů ne ca v řídicí rovině i na uzlech agentů, než jejich platnost vyprší bez výpadků clusteru.

Aby služba AKS automaticky obměně certifikátů jiných certifikačních autorit než certifikační autority, musí mít cluster metody bootstrap protokolu TLS. Bootstrap protokolu TLS je v současné době k dispozici v následujících oblastech:

  • eastus2euap
  • centraluseuap
  • Středozápadní USA
  • uksouth
  • eastus
  • australiacentral
  • australiaest (austrálie)

Jak zkontrolovat, jestli je v aktuálním fondu uzlů agenta povolené bootstrap tls?

Pokud chcete ověřit, jestli je ve vašem clusteru povolené spuštění protokolu TLS, přejděte k následujícím cestám. Na linuxovém uzlu: /var/lib/kubelet/bootstrap-kubeconfig, na uzlu Windows je to c:\k\bootstrap-config.

[Poznámka] Cesta k souboru se může v budoucnu změnit s vývojem verze K8s.

Důležité

Po nakonfigurování oblasti vytvořte nový cluster nebo upgradujte existující cluster pomocí příkazu az aks upgrade -g $RESOURCE_GROUP_NAME -n $CLUSTER_NAME a nastavte tak tento cluster pro automatickou rotaci certifikátu.

Omezení

V clusteru bez řízení přístupu na základě role nebude povolená automatická rotace certifikátu.

Obměně certifikátů clusteru

Upozornění

Obměnou certifikátů pomocí příkazu se znovu vytvoří všechny uzly a jejich disky s operačním systémem a v clusteru AKS může dojít až k az aks rotate-certs 30minutovému výpadku.

Pomocí příkazu az aks get-credentials se přihlaste ke clusteru AKS. Tento příkaz také stáhne a nakonfiguruje kubectl klientský certifikát na místním počítači.

az aks get-credentials -g $RESOURCE_GROUP_NAME -n $CLUSTER_NAME

Slouží az aks rotate-certs k obměně všech certifikátů, certifikačních autorit a certifikačních autorit ve vašem clusteru.

az aks rotate-certs -g $RESOURCE_GROUP_NAME -n $CLUSTER_NAME

Důležité

Dokončení může trvat až 30 az aks rotate-certs minut. Pokud příkaz před dokončením selže, pomocí příkazu ověřte stav clusteru Jako obměnou az aks show certifikátu. Pokud je cluster ve stavu selhání, znovu spusťte a az aks rotate-certs znovu obměna certifikátů.

Spuštěním příkazu ověřte, že staré certifikáty už nejsou kubectl platné. Vzhledem k tomu, že jste ne aktualizovali certifikáty používané v kubectl , zobrazí se chyba. Příklad:

$ kubectl get no
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "ca")

Aktualizujte certifikát používaný spuštěním kubectl . az aks get-credentials

az aks get-credentials -g $RESOURCE_GROUP_NAME -n $CLUSTER_NAME --overwrite-existing

Ověřte, že se certifikáty aktualizovaly spuštěním kubectl příkazu , který teď bude úspěšný. Příklad:

kubectl get no

Poznámka

Pokud máte nějaké služby, které běží nad AKS, možná budete muset aktualizovat i certifikáty související s těmito službami.

Další kroky

Tento článek vám ukázal, jak automaticky obměně certifikátů, certifikačních autorit a certifikačních autorit clusteru. Další informace o osvědčených postupech zabezpečení AKS najdete v tématu Osvědčené postupy pro zabezpečení clusteru a upgrady v Azure Kubernetes Service (AKS).