Tanúsítványváltás az Azure Kubernetes Service-ben (AKS)
Az Azure Kubernetes Service (AKS) számos összetevőjében tanúsítványokat használ a hitelesítéshez. A 2022 márciusa után létrehozott Azure-beli szerepköralapú hozzáférés-vezérléssel (Azure RBAC) rendelkező fürtök automatikusan váltják a tanúsítványokat. Előfordulhat, hogy biztonsági vagy szabályzati okokból rendszeresen 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.
Feljegyzés
A tanúsítvány automatikus elforgatá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ányok rotálása az AKS-fürtön.
Mielőtt elkezdené
Ez a cikk az Azure CLI 2.0.77-es vagy újabb verzióját igényli. 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 tanúsítványokat ír alá 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érelmet (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 ca-jával állít ki tanúsítványokat 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 a fürttanúsítvány kivételével fenntartja az ebben a szakaszban említett összes tanúsítványt.
Feljegyzés
- A 2019 májusa előtt létrehozott AKS-fürtök két év után lejáró tanúsítványokkal rendelkeznek.
- A 2019 májusa után létrehozott AKS-fürtök 30 év után lejáró fürt ca-tanúsítványokkal rendelkeznek.
A fürt létrehozásának időpontjáról a kubectl get nodes
parancs segítségével 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 a
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 az alábbi
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 --resource-group MC_rg_myAKSCluster_region --name 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áratá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 vmss 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 /var/lib/kubelet/pki/kubelet-client-current.pem -noout -enddate" --query "value[0].message"
Tanúsítvány automatikus elforgatása
Ahhoz, hogy az AKS automatikusan elforgathassa a nem ca-hitelesítésszolgáltatói tanúsítványokat, a fürtnek TLS Bootstrapping szolgáltatással kell rendelkeznie, amely alapértelmezés szerint minden Azure-régióban engedélyezve van.
Feljegyzés
- Ha már rendelkezik fürtel, frissítenie kell a fürtöt a tanúsítvány automatikus elforgatásának engedélyezéséhez.
- Az automatikus elforgatás engedélyezéséhez ne tiltsa le a Bootstrap funkciót.
- Ha a fürt leállt állapotban van az automatikus tanúsítvány elforgatása 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ányváltás után a csomópontkészlet tanúsítványváltásának elindításához.
A 2022 márciusa után létrehozott vagy frissített AKS-fürtök esetében az 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 az ügyféltanúsítvány érvényes idejének 80%-án belül, mielőtt leállnának a fürt számára.
Hogyan ellenőrizheti, hogy az aktuális ügynökcsomópontkészlet engedélyezve van-e a TLS Bootstrapping szolgáltatásban?
Ellenőrizze, hogy a fürtön engedélyezve van-e a TLS Bootstrapping, ha az alábbi elérési utak egyikére böngész:
- 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 az Azure Kubernetes Service-fürtcsomópontokhoz karbantartáshoz vagy hibaelhárításhoz.
Feljegyzés
A fájl elérési útja a Kubernetes-verziók fejlődésével változhat.
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 elforgatá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 az aks rotate-certs
elforgatása újra létrehozza az összes csomópontot, virtuálisgép-méretezési csoportot és lemezt, és akár 30 perc állásidőt is okozhat az AKS-fürt számára.
Csatlakozzon a fürthöz a
az aks get-credentials
parancs használatával.az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
A paranccsal forgassa el a fürt összes tanúsítványát, hitelesítésszolgáltatóját és SA-ját
az aks rotate-certs
.az aks rotate-certs --resource-group $RESOURCE_GROUP_NAME --name $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 lesz, a fürt állapotának ellenőrzéséhez használjaaz aks show
a tanúsítvány rotálását. Ha a fürt sikertelen állapotban van, futtassaaz aks rotate-certs
újra a tanúsítványokat újra.Ellenőrizze, hogy a régi tanúsítványok már nem érvényesek-e parancsokkal
kubectl
, példáulkubectl get nodes
.kubectl get nodes
Ha nem frissítette a használt
kubectl
tanúsítványokat, az alábbi 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 parancs és a
az aks get-credentials
jelölő használatával használtkubectl
tanúsítványt--overwrite-existing
.az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --overwrite-existing
Ellenőrizze, hogy a tanúsítványok frissültek-e a
kubectl get
paranccsal.kubectl get nodes
Feljegyzé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 manuálisan és automatikusan a fürttanúsítványokat, a hitelesítésszolgáltatókat és a hitelesítésszolgáltatókat. További információkért tekintse meg az Azure Kubernetes Service (AKS) fürtbiztonságának és frissítéseinek ajánlott eljárásait.
Azure Kubernetes Service