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
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.
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.
komutunu kullanarak kümenize bağlanın
az aks get-credentials
.az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
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ınaz aks rotate-certs
.Gibi
kubectl get nodes
herhangi birkubectl
komut kullanarak eski sertifikaların artık geçerli olmadığını doğrulayın.kubectl get nodes
tarafından
kubectl
kullanı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")
bayrağıyla komutunu kullanarak
az aks get-credentials
kullanılankubectl
sertifikayı güncelleştirin--overwrite-existing
.az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --overwrite-existing
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.
Azure Kubernetes Service