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?

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

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

  1. Csatlakozzon a fürthöz az az aks get-credentials paranccsal.

    az aks get-credentials -g $RESOURCE_GROUP_NAME -n $CLUSTER_NAME
    
  2. 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 paranccsal az 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 parancsot az aks rotate-certs a tanúsítványok újbóli rotálásához.

  3. 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 kubectlhaszná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")
    
  4. Frissítse a használt kubectl tanúsítványt a az aks get-credentials paranccsal a --overwrite-existing jelzővel.

    az aks get-credentials -g $RESOURCE_GROUP_NAME -n $CLUSTER_NAME --overwrite-existing
    
  5. 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.