Azure Arc tarafından etkinleştirilen AKS'de sertifika yönetimine genel bakış
Şunlar için geçerlidir: Azure Yerel 22H2'de AKS, Windows Server'da AKS
Azure Arc tarafından etkinleştirilen AKS, platformdaki farklı işlemlerden sorumlu hizmetler (veya aracılar) arasındaki iletişimin güvenliğini sağlamak için sertifika ve belirteç tabanlı kimlik doğrulamasının bir birleşimini kullanır. Sertifika tabanlı kimlik doğrulaması, bir kaynağa erişim vermeden önce bir varlığı (aracı, makine, kullanıcı veya cihaz) tanımlamak için dijital sertifika kullanır.
Bulut aracısı
Arc tarafından etkinleştirilen AKS'yi dağıttığınızda AKS, küme içinde çeşitli işlevleri gerçekleştirmek için kullanılan aracıları yükler. Bu aracılar şunlardır:
- Bulut aracısı: Temel alınan platform düzenlemeden sorumlu olan bir hizmettir.
- Düğüm aracısı: Sanal makine oluşturma, silme vb. fiili işlerini yerine getiren her düğümde bulunan bir hizmettir.
- Anahtar Yönetim Sistemi (KMS) podu: Anahtar yönetiminden sorumlu bir hizmet.
- Diğer hizmetler: bulut operatörü, sertifika yöneticisi vb.
AKS'deki bulut aracısı hizmeti, kümedeki Sanal Makineler (VM), Sanal Ağ Arabirimleri (VNIC) ve Sanal Ağ (VNET) gibi altyapı bileşenlerinin oluşturma, okuma, güncelleştirme ve silme (CRUD) işlemlerini yönetmekle sorumludur.
Bulut aracısı ile iletişim kurmak için istemciler, bu iletişimin güvenliğini sağlamak için sertifikaların sağlanmasını gerektirir. Her istemci, istemciyle ilişkili Rol Tabanlı Erişim Denetimi (RBAC) kurallarını tanımlayan bir kimlik gerektirir. Her kimlik iki varlık içerir:
- İlk kimlik doğrulaması için kullanılan ve bir sertifika döndüren bir belirteç ve
- Yukarıdaki oturum açma işleminden alınan ve herhangi bir iletişimde kimlik doğrulaması için kullanılan bir sertifika.
Her varlık, süresi dolan belirli bir süre (varsayılan değer 90 gündür) için geçerlidir. Bulut aracısına sürekli erişim için her istemci sertifikanın yenilenmesini ve belirtecin döndürülmüş olmasını gerektirir.
Sertifika türleri
ARC tarafından etkinleştirilen AKS'de kullanılan iki tür sertifika vardır:
- Bulut aracısı CA sertifikası: İstemci sertifikalarını imzalamak/doğrulamak için kullanılan sertifika. Bu sertifika 365 gün (1 yıl) geçerlidir.
- İstemci sertifikaları: istemcilerin bulut aracısı için kimlik doğrulaması için bulut aracısı CA sertifikası tarafından verilen sertifikalar. Bu sertifikalar genellikle 90 gün boyunca geçerlidir.
Microsoft, yalnızca iç sertifikaların ve belirteçlerin güncel tutulduğundan emin olmak için değil, aynı zamanda yeni özelliklere, hata düzeltmelerine erişebildiğinizden ve kritik güvenlik düzeltme ekleriyle güncel kaldığınızdan emin olmak için kümeleri yeni bir sürümden sonra 60 gün içinde güncelleştirmenizi önerir. Bu aylık güncelleştirmeler sırasında güncelleştirme işlemi, kümenin normal işlemleri sırasında otomatik olarak döndürülmeyecek belirteçleri döndürür. Sertifika ve belirteç geçerliliği, kümenin güncelleştirildiğinden itibaren varsayılan 90 güne sıfırlanır.
Arc tarafından etkinleştirilen AKS'de sertifikalarla güvenli iletişim
Sertifikalar, küme içi bileşenler arasında güvenli iletişim kurmak için kullanılır. AKS, yerleşik Kubernetes bileşenleri için sıfır dokunma, kullanıma hazır sağlama ve sertifika yönetimi sağlar. Bu makalede Arc tarafından etkinleştirilen AKS'de sertifikaları sağlamayı ve yönetmeyi öğreneceksiniz.
Sertifikalar ve CA'lar
AKS, aşağıdaki Sertifika Yetkilileri (CA) ve sertifikaları oluşturur ve kullanır.
Küme CA'sı
- API sunucusunda, API sunucusundan öğesine tek yönlü iletişim için sertifikaları imzalayan bir Küme
kubelet
CA'sı vardır. - Her
kubelet
biri, API sunucusundankubelet
iletişim için Küme CA'sı tarafından imzalanan bir Sertifika İmzalama İsteği (CSR) de oluşturur. - etcd anahtar değer deposu, ETCD'den API sunucusuna iletişim için Küme CA'sı tarafından imzalanmış bir sertifikaya sahiptir.
etcd CA
etcd anahtar değer deposu, kümedeki etcd çoğaltmaları arasında veri çoğaltmasını doğrulamak ve yetkilendirmek için sertifikaları imzalayan bir etcd CA'sına sahiptir.
Ön Proxy CA
Ön Proxy CA, API sunucusu ile uzantı API sunucusu arasındaki iletişimin güvenliğini sağlar.
Sertifika sağlama
için kubelet
sertifika sağlama IŞLEMI TLS önyüklemesi kullanılarak yapılır. Diğer tüm sertifikalar için YAML tabanlı anahtar ve sertifika oluşturma kullanın.
- Sertifikalar /etc/kubernetes/pki içinde depolanır.
- Anahtarlar RSA 4096, EcdsaCurve: P384
Not
Kök sertifikalar 10 yıl boyunca geçerlidir. Diğer tüm kök olmayan sertifikalar kısa sürelidir ve dört gün boyunca geçerlidir.
Sertifika yenileme ve yönetim
Kök olmayan sertifikalar otomatik olarak yenilenir. Aşağıdaki sertifikalar dışında Kubernetes için tüm denetim düzlemi sertifikaları yönetilir:
- Kubelet sunucu sertifikası
- Kubeconfig istemci sertifikası
En iyi güvenlik uygulaması olarak, kullanıcı kimlik doğrulaması için Active Directory çoklu oturum açma özelliğini kullanmanız gerekir.
Sertifika iptali
Sertifika iptali nadir olmalı ve sertifika yenileme sırasında yapılmalıdır.
İptal etmek istediğiniz sertifikanın seri numarasını aldıktan sonra iptal bilgilerini tanımlamak ve kalıcı hale getirmek için Kubernetes Özel Kaynağı'nı kullanın. Her iptal nesnesi bir veya daha fazla iptal girdisi içerebilir.
İptal işlemi gerçekleştirmek için aşağıdakilerden birini kullanın:
- Seri numarası
- Gruplandırma
- DNS adı
- IP Adresi
notBefore
Yalnızca belirli bir zaman damgası öncesinde verilen sertifikaları iptal etmek için bir zaman belirtilebilir. Bir notBefore
süre belirtilmezse, iptalle eşleşen tüm mevcut ve gelecekteki sertifikalar iptal edilir.
Not
Sunucu sertifikalarının kubelet
iptali şu anda kullanılamıyor.
İptal işlemi gerçekleştirirken bir seri numarası kullanırsanız, kümenizi çalışma durumuna almak için aşağıda açıklanan PowerShell komutunu kullanabilirsiniz Repair-AksHciClusterCerts
. Daha önce listelenen diğer alanlardan birini kullanıyorsanız, bir notBefore
saat belirttiğinizden emin olun.
apiVersion: certificates.microsoft.com/v1
kind: RenewRevocation
metadata:
name: my-renew-revocation
namespace: kube-system
spec:
description: My list of renew revocations
revocations:
- description: Revoked certificates by serial number
kind: serialnumber
notBefore: "2020-04-17T17:22:05Z"
serialNumber: 77fdf4b1033b387aaace6ce1c18710c2
- description: Revoked certificates by group
group: system:nodes
kind: Group
- description: Revoked certificates by DNS
dns: kubernetes.default.svc.
kind: DNS
- description: Revoked certificates by DNS Suffix
dns: .cluster.local
kind: DNS
- description: Revoked certificates by IP
ip: 170.63.128.124
kind: IP