Azure Arc tarafından etkinleştirilen AKS'de sertifika yönetimine genel bakış

Şunlar için geçerlidir: Azure Stack HCI 22H2 üzerinde 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 bileş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çindeki ç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 bir hizmettir.
  • Düğüm aracısı: Her düğümde bulunan ve sanal makine oluşturma, silme gibi gerçek işleri yerine getiren 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ğlar (VNETs) gibi altyapı bileşenlerinin oluşturma, okuma, güncelleştirme ve silme (CRUD) işlemlerini düzenlemeden 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ı Access Control (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 için geçerlidir (varsayılan değer 90 gündür). 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

AKS'de Arc tarafından etkinleştirilen iki tür sertifika kullanılı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ına 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 ve kritik güvenlik yamaları ile 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 ile tek yönlü iletişim için sertifikaları imzalayan bir Küme kubeletCA'sı vardır.
  • Her kubelet biri, 'den kubelet API sunucusuna 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 deposunun, kümedeki etcd çoğaltmaları arasında veri çoğaltmasını doğrulamak ve yetkilendirmek için sertifikaları imzalayan bir etcd CA'sı vardır.

Ön Ara Sunucu CA'sı

Ö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 gerçekleştirmek için aşağıdakilerden birini kullanın:

  • Seri numarası
  • Grup
  • 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 seri numarası kullanırsanız, kümenizi çalışma durumuna getirmek 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 

Sonraki adımlar