Tanúsítvány rotálása Azure Kubernetes Service (AKS)
Azure Kubernetes Service (AKS) tanúsítványokat használ számos összetevőjének hitelesítéséhez. A 2022 márciusa után létrehozott RBAC-kompatibilis fürtök a tanúsítvány automatikus rotálásával vannak engedélyezve. Előfordulhat, hogy biztonsági vagy szabályzati okokból időnként el kell forgatnia ezeket a tanúsítványokat. Előfordulhat például, hogy rendelkezik egy szabályzattal, amely 90 naponta elforgatja az összes tanúsítványt.
Megjegyzés
A tanúsítvány automatikus rotálása alapértelmezés szerint csak az RBAC-kompatibilis AKS-fürtök esetében engedélyezett.
Ez a cikk bemutatja, hogyan működik a tanúsítványrotáció az AKS-fürtön.
Előkészületek
Ehhez a cikkhez az Azure CLI 2.0.77-es vagy újabb verziója szükséges. A verzió azonosításához futtassa a következőt: az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.
AKS-tanúsítványok, hitelesítésszolgáltatók és szolgáltatásfiókok
Az AKS a következő tanúsítványokat, hitelesítésszolgáltatókat (CA) és szolgáltatásfiókokat (SA) hozza létre és használja:
- Az AKS API-kiszolgáló létrehoz egy fürt ca nevű hitelesítésszolgáltatót.
- Az API-kiszolgáló rendelkezik egy fürt hitelesítésszolgáltatóval, amely aláírja a tanúsítványokat az API-kiszolgáló és a kubelets közötti egyirányú kommunikációhoz.
- Minden kubelet létrehoz egy tanúsítvány-aláírási kérést (CSR), amelyet a fürt hitelesítésszolgáltatója aláír a kubelet és az API-kiszolgáló közötti kommunikációhoz.
- Az API-összesítő a fürt hitelesítésszolgáltatóját használja tanúsítványok kiállítására más API-kkal való kommunikációhoz. Az API-összesítő saját hitelesítésszolgáltatóval is rendelkezhet a tanúsítványok kiállításához, de jelenleg a fürt hitelesítésszolgáltatóját használja.
- Minden csomópont egy SA-jogkivonatot használ, amelyet a fürt hitelesítésszolgáltatója aláír.
- Az
kubectl
ügyfél rendelkezik egy tanúsítvánnyal az AKS-fürttel való kommunikációhoz.
A Microsoft az ebben a szakaszban említett összes tanúsítványt fenntartja, kivéve a fürttanúsítványt.
Megjegyzés
- A 2019 májusa előtt létrehozott AKS-fürtök tanúsítványai két év elteltével lejárnak.
- A 2019 májusa után létrehozott AKS-fürtök 30 év után lejárnak a fürt hitelesítésszolgáltatói tanúsítványai.
A fürt létrehozásának időpontjáról az kubectl get nodes
paranccsal ellenőrizheti, hogy a csomópontkészletek életkora látható-e.
Tanúsítvány lejárati dátumának ellenőrzése
Fürttanúsítvány lejárati dátumának ellenőrzése
Ellenőrizze a fürttanúsítvány lejárati dátumát az
kubectl config view
paranccsal.kubectl config view --raw -o jsonpath="{.clusters[?(@.name == '')].cluster.certificate-authority-data}" | base64 -d | openssl x509 -text | grep -A2 Validity
Az API-kiszolgáló tanúsítványának lejárati dátumának ellenőrzése
Ellenőrizze az API-kiszolgáló tanúsítványának lejárati dátumát a következő
curl
paranccsal.curl https://{apiserver-fqdn} -k -v 2>&1 | grep expire
A VMAS-ügynökcsomópont tanúsítványának lejárati dátumának ellenőrzése
Ellenőrizze a VMAS-ügynök csomóponttanúsítványának lejárati dátumát a
az vm run-command invoke
paranccsal.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"
A Virtuálisgép-méretezési csoport ügynökcsomópont tanúsítványának lejárati dátumának ellenőrzése
Ellenőrizze a Virtuálisgép-méretezési csoport ügynökcsomópont tanúsítványának lejárati dátumát a
az vm run-command invoke
paranccsal.az vmss run-command invoke --resource-group "MC_rg_myAKSCluster_region" --name "vmss-name" --command-id RunShellScript --instance-id 1 --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate" --query "value[0].message"
Tanúsítvány automatikus elforgatása
Ahhoz, hogy az AKS automatikusan forgassa el a nem hitelesítésszolgáltatói tanúsítványokat, a fürtnek TLS Bootstrapping protokollal kell rendelkeznie, amely alapértelmezés szerint engedélyezve van az összes Azure-régióban.
Megjegyzés
- Ha rendelkezik meglévő fürtel, frissítenie kell a fürtöt a tanúsítvány automatikus rotálásának engedélyezéséhez.
- Ne tiltsa le a Bootstrap szolgáltatást, hogy az automatikus elforgatás engedélyezve maradjon.
- Ha a fürt leállított állapotban van az automatikus tanúsítványrotálás során, csak a vezérlősík tanúsítványai lesznek elforgatva. Ebben az esetben újra létre kell hoznia a csomópontkészletet a tanúsítvány rotálása után a csomópontkészlet tanúsítványrotációjának elindításához.
A 2022 márciusa után létrehozott vagy frissített AKS-fürtök esetében Azure Kubernetes Service automatikusan elforgatja a nem ca-hitelesítésszolgáltatói tanúsítványokat a vezérlősíkon és az ügynökcsomópontokon is az ügyféltanúsítvány érvényes idejének 80%-ában, mielőtt lejáródnának, és a fürt leállása nélkül.
Hogyan ellenőrizhető, hogy az aktuális ügynökcsomópontkészlet engedélyezve van-e a TLS-rendszerindításban?
Ellenőrizze, hogy a fürtben engedélyezve van-e a TLS-rendszerindítás. Ehhez nyissa meg az egyiket az alábbi elérési utakon:
- Linux-csomóponton: /var/lib/kubelet/bootstrap-kubeconfig vagy /host/var/lib/kubelet/bootstrap-kubeconfig
- Windows-csomóponton : C:\k\bootstrap-config
További információ: Csatlakozás Azure Kubernetes Service fürtcsomópontokhoz karbantartás vagy hibaelhárítás céljából.
Megjegyzés
A fájl elérési útja megváltozhat a Kubernetes-verziók fejlődésével.
A régió konfigurálása után hozzon létre egy új fürtöt, vagy frissítsen egy meglévő fürtöt a fürttanúsítvány automatikus rotálásának beállításához. A funkció engedélyezéséhez frissítenie kell a vezérlősíkot és a csomópontkészletet.
Fürttanúsítványok manuális elforgatása
Figyelmeztetés
A tanúsítványok a használatával az aks rotate-certs
történő rotálása újra létrehozza az összes csomópontot, Virtual Machine Scale Sets és lemezt, és akár 30 perces állásidőt is okozhat az AKS-fürt számára.
Csatlakozzon a fürthöz az
az aks get-credentials
paranccsal.az aks get-credentials -g $RESOURCE_GROUP_NAME -n $CLUSTER_NAME
A paranccsal forgassa el a fürt összes tanúsítványát, hitelesítésszolgáltatóját és szolgáltatóját
az aks rotate-certs
.az aks rotate-certs -g $RESOURCE_GROUP_NAME -n $CLUSTER_NAME
Fontos
A befejezés akár 30 percet
az aks rotate-certs
is igénybe vehet. Ha a parancs végrehajtása előtt sikertelen, a paranccsalaz aks show
ellenőrizze, hogy a fürt állapota Tanúsítvány rotálása-e. Ha a fürt hibás állapotban van, futtassa újra a parancsotaz aks rotate-certs
a tanúsítványok újbóli rotálásához.Ellenőrizze, hogy a régi tanúsítványok már nem érvényesek-e a
kubectl
következő paranccsal: .kubectl get nodes
kubectl get nodes
Ha nem frissítette a által
kubectl
használt tanúsítványokat, a következő példakimenethez hasonló hibaüzenet jelenik meg: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")
Frissítse a használt
kubectl
tanúsítványt aaz aks get-credentials
paranccsal a--overwrite-existing
jelzővel.az aks get-credentials -g $RESOURCE_GROUP_NAME -n $CLUSTER_NAME --overwrite-existing
Ellenőrizze, hogy a tanúsítványok frissültek-e az
kubectl get
paranccsal.kubectl get nodes
Megjegyzés
Ha rendelkezik olyan szolgáltatásokkal, amelyek az AKS-en futnak, előfordulhat, hogy frissítenie kell a tanúsítványaikat.
Következő lépések
Ez a cikk bemutatta, hogyan forgathatja automatikusan a fürttanúsítványokat, a hitelesítésszolgáltatókat és a hitelesítésszolgáltatókat. További információ: Ajánlott eljárások a Azure Kubernetes Service (AKS) fürtbiztonságához és frissítéséhez.