Azure Kubernetes Service (AKS) içinde sertifikaları döndürme

Azure Kubernetes hizmeti (AKS), birçok bileşeni ile kimlik doğrulaması için sertifikalar kullanır. Düzenli olarak, güvenlik veya ilke nedenleriyle bu sertifikaları döndürmeniz gerekebilir. Örneğin, tüm sertifikalarınızı her 90 günde bir döndürebilmeniz için bir ilkeniz olabilir.

Bu makalede, AKS kümenizdeki sertifikaların nasıl döndürübir gösterilmektedir.

Başlamadan önce

Bu makalede, Azure CLı sürüm 2.0.77 veya üstünü çalıştırıyor olmanız gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

AKS sertifikaları, sertifika yetkilileri ve hizmet hesapları

AKS aşağıdaki sertifikaları, sertifika yetkililerini ve hizmet hesaplarını oluşturur ve kullanır:

  • AKS API sunucusu, küme CA 'sı adlı bir sertifika yetkilisi (CA) oluşturur.
  • API sunucusunda, API sunucusundan kubeyalar 'a tek yönlü iletişim için sertifikalar imzalayan bir küme CA 'sı vardır.
  • Her kubelet aynı zamanda, API sunucusuna kubelet 'ten iletişim sağlamak için, küme CA 'sı tarafından imzalanan bir sertifika Imzalama Isteği (CSR) oluşturur.
  • API toplayıcısı, diğer API 'lerle iletişim için sertifikalar vermek üzere Küme CA 'sını kullanır. API toplayıcısı 'nın bu sertifikaları vermek için kendi CA 'sı da olabilir, ancak şu anda küme CA 'sını kullanır.
  • Her düğüm, küme CA 'sı tarafından imzalanmış bir hizmet hesabı (SA) belirteci kullanır.
  • kubectlİstemcinin AKS kümesiyle iletişim kurmak için bir sertifikası vardır.

Not

2019 Mayıs 'tan önce oluşturulan AKS kümelerinin iki yıl sonra sona ereceği sertifikalar vardır. 2019 Mayıs 'tan sonra oluşturulan herhangi bir küme veya sertifikaları döndürülen herhangi bir küme, 30 yıl sonra süresi dolan küme CA sertifikalardır. Diğer tüm sertifikaların süreleri iki yıl sonra doluyor. Kümenizin oluşturulduğunu doğrulamak için, kubectl get nodes düğüm havuzlarınızın yaşını görmek üzere kullanın.

Ayrıca, kümenizin sertifikasının sona erme tarihini kontrol edebilirsiniz. Örneğin, aşağıdaki Bash komutu, kaynak grubundaki Myakscluster kümesi için istemci sertifikası ayrıntılarını görüntüler.

kubectl config view --raw -o jsonpath="{.users[?(@.name == 'clusterUser_rg_myAKSCluster')].user.client-certificate-data}" | base64 -d | openssl x509 -text | grep -A2 Validity
  • Apıver sertifikasının sona erme tarihini denetle
curl https://{apiserver-fqdn} -k -v 2>&1 |grep expire
  • VMAS aracı düğümündeki sertifikanın sona erme tarihini denetle
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"
  • Bir VMSS aracı düğümündeki sertifikanın sona erme tarihini denetle
az vmss run-command invoke -g MC_rg_myAKSCluster_region -n vmss-name --instance-id 0 --command-id RunShellScript --query 'value[0].message' -otsv --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"

Küme sertifikalarınızı döndürme

Uyarı

Kullanarak sertifikalarınızı döndürme az aks rotate-certs , AKS kümeniz için 30 dakikalık kapalı kalma süresine kadar zaman alabilir.

AKS kümenizde oturum açmak için az aks Get-Credentials kullanın. Bu komut ayrıca kubectl Yerel makinenizde istemci sertifikasını indirir ve yapılandırır.

az aks get-credentials -g $RESOURCE_GROUP_NAME -n $CLUSTER_NAME

az aks rotate-certsKümenizdeki tüm sertifikaları, CA 'ları ve SAS 'yi döndürmek için kullanın.

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

Önemli

Tamamlanması 30 dakika sürebilir az aks rotate-certs . Komut tamamlanmadan önce başarısız olursa, az aks show kümenin durumunun sertifika döndürme olduğunu doğrulamak için kullanın. Küme başarısız durumdaysa, az aks rotate-certs sertifikalarınızı yeniden döndürmek için yeniden çalıştırın.

Bir komut çalıştırarak eski sertifikaların artık geçerli olmadığını doğrulayın kubectl . Tarafından kullanılan sertifikaları güncelleştirmediyseniz kubectl bir hata görürsünüz. Örnek:

$ 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")

Çalıştırarak tarafından kullanılan sertifikayı güncelleştirin kubectl az aks get-credentials .

az aks get-credentials -g $RESOURCE_GROUP_NAME -n $CLUSTER_NAME --overwrite-existing

Bir komut çalıştırarak sertifikaların güncelleştirildiğini doğrulayın kubectl , şimdi başarılı olur. Örnek:

kubectl get no

Not

AKS üzerinde çalışan bir hizmetleriniz varsa, bu hizmetlerle ilgili sertifikaları da güncelleştirmeniz gerekebilir.

Sonraki adımlar

Bu makalede, kümenizin sertifikalarını, CA 'Ları ve SAs 'yi otomatik olarak döndürme konusu gösterilmektedir. AKS güvenlik en iyi uygulamaları hakkında daha fazla bilgi için Azure Kubernetes Service 'te (aks) küme güvenliği ve yükseltmeleri Için en iyi uygulamaları görebilirsiniz.