Otočení certifikátů ve službě Azure Kubernetes (AKS)

Služba Azure Kubernetes Service (AKS) používá certifikáty pro ověřování s mnoha jeho součástmi. V pravidelných intervalech může být nutné tyto certifikáty otočit z důvodů zabezpečení nebo zásad. Můžete mít například zásadu pro otočení všech certifikátů každých 90 dní.

V tomto článku se dozvíte, jak otočit certifikáty v clusteru AKS.

Než začnete

Tento článek vyžaduje, abyste spustili 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.

AKS certifikáty, 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 AKS API vytvoří certifikační autoritu (CA), která se nazývá certifikační autorita clusteru.
  • Server API má Clusterovou certifikační autoritu, která podepisuje certifikáty pro jednosměrnou komunikaci ze serveru rozhraní API do kubelets.
  • Každý kubelet také vytvoří žádost o podepsání certifikátu (CSR), která je podepsána certifikační autoritou clusteru, pro komunikaci z kubelet na server rozhraní API.
  • Agregátor rozhraní API používá certifikační autoritu clusteru k vystavová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 vydávání certifikátů, ale aktuálně používá certifikační autoritu clusteru.
  • Každý uzel používá token účtu služby (SA), který je podepsaný certifikační autoritou clusteru.
  • kubectlKlient nástroje má certifikát pro komunikaci s clusterem AKS.

Poznámka

Clustery AKS vytvořené před vydáním března 2019 obsahují certifikáty, jejichž platnost vyprší po dvou letech. Každý cluster vytvořený po březnu 2019 nebo jakémkoli clusteru, který má jeho certifikáty otočený, má certifikáty certifikační autority clusteru, jejichž platnost vyprší po 30 letech. Platnost všech ostatních certifikátů vyprší po dvou letech. Pokud chcete ověřit, kdy byl cluster vytvořen, použijte kubectl get nodes k zobrazení stáří fondů uzlů.

Navíc můžete kontrolovat datum vypršení platnosti certifikátu vašeho clusteru. Například následující příkaz bash zobrazí podrobnosti o certifikátu pro cluster myAKSCluster .

kubectl config view --raw -o jsonpath="{.clusters[?(@.name == 'myAKSCluster')].cluster.certificate-authority-data}" | base64 -d | openssl x509 -text | grep -A2 Validity

Otočení certifikátů clusteru

Upozornění

Otáčení certifikátů pomocí az aks rotate-certs může způsobit až 30 minut výpadků clusteru AKS.

Přihlaste se ke svému clusteru AKS pomocí AZ AKS Get-Credentials . 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

Použijte az aks rotate-certs k otočení všech certifikátů, certifikačních autorit a SAS v clusteru.

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

Důležité

Dokončení může trvat až 30 minut az aks rotate-certs . Pokud příkaz před dokončením skončí, použijte az aks show k ověření stavu clusteru otočení certifikátu. Pokud je cluster ve stavu selhání, znovu ho znovu az aks rotate-certs natočit.

Spuštěním příkazu ověřte, že staré certifikáty již nejsou platné kubectl . Vzhledem k tomu, že jste neaktualizovali certifikáty používané v kubectl , zobrazí se chyba. Napří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ý. Například:

kubectl get no

Poznámka

Pokud máte nějaké služby, které běží na AKS, například Azure dev Spaces, možná budete muset aktualizovat i certifikáty související s těmito službami .

Další kroky

Tento článek ukazuje, jak automaticky střídat certifikáty, certifikační autority a SAs v clusteru. Osvědčené postupy pro zabezpečení a upgrady clusterů najdete v tématu Azure Kubernetes Service (AKS) , kde najdete další informace o osvědčených postupech zabezpečení AKS.