Megosztás a következőn keresztül:


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?

  1. 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.

  2. 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.

  1. 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
    
  2. 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álja az aks show a tanúsítvány rotálását. Ha a fürt sikertelen állapotban van, futtassa az aks rotate-certs újra a tanúsítványokat újra.

  3. Ellenőrizze, hogy a régi tanúsítványok már nem érvényesek-e parancsokkal kubectl , például kubectl get nodes.

    kubectl get nodes
    

    Ha nem frissítette a használt kubectltanú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")
    
  4. Frissítse a parancs és a az aks get-credentials jelölő használatával használt kubectl tanúsítványt--overwrite-existing.

    az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --overwrite-existing
    
  5. 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.