Aracılığıyla paylaş


Azure Kubernetes Service'te (AKS) sertifika döndürme

Birçok Azure Kubernetes Service (AKS) bileşeninde kimlik doğrulaması için sertifikalar kullanılır. Mart 2022'de oluşturulan Azure rol tabanlı erişim denetimine (Azure RBAC) sahip kümeler sertifika otomatik döndürme özelliğiyle etkinleştirilir. Güvenlik veya ilke nedenleriyle bu sertifikaları düzenli aralıklarla döndürmeniz gerekebilir. Örneğin, tüm sertifikalarınızı 90 günde bir döndürmek için bir ilkeniz olabilir.

Not

Sertifika otomatik döndürme yalnızca RBAC özellikli AKS kümeleri için varsayılan olarak etkindir.

Bu makalede AKS kümenizde sertifika döndürmenin nasıl çalıştığı gösterilmektedir.

Başlamadan önce

Bu makale, Azure CLI 2.0.77 veya sonraki bir sürümünü gerektirir. 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 (CA) ve Hizmet Hesaplarını (SA) oluşturur ve kullanır:

  • AKS API sunucusu, Küme CA'sı adlı bir CA oluşturur.
  • API sunucusunda, API sunucusundan kubelet'lere tek yönlü iletişim için sertifikaları imzalayan bir Küme CA'sı vardır.
  • Her kubelet, kubelet'ten API sunucusuna iletişim için Küme CA'sının imzaladığı bir Sertifika İmzalama İsteğ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ı, bu sertifikaların verilmesi için kendi CA'sına da sahip olabilir, ancak şu anda Küme CA'sını kullanır.
  • Her düğüm, Küme CA'sının imzaladığı bir SA belirteci kullanır.
  • İstemcinin kubectl AKS kümesiyle iletişim kurmak için bir sertifikası vardır.

Microsoft, küme sertifikası dışında bu bölümde belirtilen tüm sertifikaları korur.

Not

  • Mayıs 2019'da oluşturulan AKS kümelerinin sertifikaları iki yıl sonra sona erer.
  • Mayıs 2019'da oluşturulan AKS kümelerinde 30 yıl sonra süresi dolan Küme CA sertifikaları vardır.

Düğüm havuzlarınızın Yaşını gösteren komutunu kullanarak kubectl get nodes kümenizin ne zaman oluşturulduğunu doğrulayabilirsiniz.

Sertifika süre sonu tarihlerini denetleme

Küme sertifikası sona erme tarihini denetleme

  • komutunu kullanarak kubectl config view küme sertifikasının son kullanma tarihini denetleyin.

    kubectl config view --raw -o jsonpath="{.clusters[?(@.name == '')].cluster.certificate-authority-data}" | base64 -d | openssl x509 -text | grep -A2 Validity
    

API sunucusu sertifikası sona erme tarihini denetleme

  • Aşağıdaki curl komutu kullanarak API sunucusu sertifikasının sona erme tarihini denetleyin.

    curl https://{apiserver-fqdn} -k -v 2>&1 | grep expire
    

VMAS aracısı düğümü sertifikasının sona erme tarihini denetleme

  • komutunu kullanarak az vm run-command invoke VMAS aracı düğümü sertifikasının sona erme tarihini denetleyin.

    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"
    

Sanal makine ölçek kümesi aracı düğümü için sertifika süre sonunu denetleme

  • komutunu kullanarak sanal makine ölçek kümesi aracı düğümü sertifikasının az vmss run-command invoke sona erme tarihini denetleyin.

    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"
    

Sertifika otomatik döndürme

AKS'nin CA dışı sertifikaları otomatik olarak döndürmesi için, kümenin tüm Azure bölgelerinde varsayılan olarak etkin olan TLS Bootstrapping'e sahip olması gerekir.

Not

  • Mevcut bir kümeniz varsa, Sertifika Otomatik Döndürme'yi etkinleştirmek için bu kümeyi yükseltmeniz gerekir.
  • Otomatik döndürmeyi etkin tutmak için Bootstrap'ı devre dışı bırakma.
  • Küme otomatik sertifika döndürme sırasında durdurulmuş durumdaysa, yalnızca denetim düzlemi sertifikaları döndürülür. Bu durumda, düğüm havuzu sertifika döndürmesini başlatmak için sertifika döndürmeden sonra düğüm havuzunu yeniden oluşturmanız gerekir.

Mart 2022'den sonra oluşturulan veya yükseltilen aks kümeleri için Azure Kubernetes Service, hem denetim düzlemi hem de aracı düğümlerindeki CA dışı sertifikaları, küme için kapalı kalma süresi olmadan süresi dolmadan önce istemci sertifikası geçerli süresinin %80'i içinde otomatik olarak döndürür.

Geçerli aracı düğümü havuzunun TLS Bootstrapping'in etkin olup olmadığını denetleme

  1. Aşağıdaki yollardan birine göz atarak kümenizde TLS Bootstrapping'in etkinleştirilip etkinleştirilmediğini doğrulayın:

    • Linux düğümünde: /var/lib/kubelet/bootstrap-kubeconfig veya /host/var/lib/kubelet/bootstrap-kubeconfig
    • Windows düğümünde: C:\k\bootstrap-config

    Daha fazla bilgi için bkz . Bakım veya sorun giderme için Azure Kubernetes Service küme düğümlerine bağlanma.

    Not

    Kubernetes sürümleri geliştikçe dosya yolu değişebilir.

  2. Bir bölge yapılandırıldıktan sonra yeni bir küme oluşturun veya küme sertifikası için otomatik döndürmeyi ayarlamak üzere mevcut bir kümeyi yükseltin. Bu özelliği etkinleştirmek için denetim düzlemini ve düğüm havuzunu yükseltmeniz gerekir.

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

Uyarı

Sertifikalarınızı kullanarak az aks rotate-certs döndürmek tüm düğümlerinizi, sanal makine ölçek kümelerinizi ve disklerinizi yeniden oluşturur ve AKS kümenizde 30 dakikaya kadar kapalı kalma süresine neden olabilir.

  1. komutunu kullanarak kümenize bağlanın az aks get-credentials .

    az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
    
  2. komutunu kullanarak kümenizdeki tüm sertifikaları, CA'ları ve SA'ları döndürün az aks rotate-certs .

    az aks rotate-certs --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
    

    Önemli

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

  3. Gibi kubectl get nodesherhangi bir kubectl komut kullanarak eski sertifikaların artık geçerli olmadığını doğrulayın.

    kubectl get nodes
    

    tarafından kubectlkullanılan sertifikaları güncelleştirmediyseniz aşağıdaki örnek çıktıya benzer bir hata görürsünüz:

    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. bayrağıyla komutunu kullanarak az aks get-credentials kullanılan kubectl sertifikayı güncelleştirin--overwrite-existing.

    az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --overwrite-existing
    
  5. komutunu kullanarak sertifikaların kubectl get güncelleştirildiğini doğrulayın.

    kubectl get nodes
    

    Not

    AKS üzerinde çalışan herhangi bir hizmetiniz varsa, sertifikalarını güncelleştirmeniz gerekebilir.

Sonraki adımlar

Bu makalede, küme sertifikalarınızı, CA'larınızı ve SA'larınızı el ile ve otomatik olarak nasıl döndürdüğünüz gösterildi. Daha fazla bilgi için bkz . Azure Kubernetes Service'te (AKS) küme güvenliği ve yükseltmeleri için en iyi yöntemler.