Azure Kubernetes Service'te (AKS) küme güvenliği ve yükseltmeleri için en iyi yöntemler

Azure Kubernetes Service'te (AKS) kümeleri yönetirken iş yükü ve veri güvenliği önemli bir noktadır. Mantıksal yalıtım kullanarak çok kiracılı kümeleri çalıştırdığınızda, özellikle kaynak ve iş yükü erişiminin güvenliğini sağlamanız gerekir. En son Kubernetes ve düğüm işletim sistemi güvenlik güncelleştirmelerini uygulayarak saldırı riskini en aza indirin.

Bu makalede AKS kümenizin güvenliğini sağlama konusuna odaklanmaktadır. Şunları yapmayı öğreneceksiniz:

  • API sunucusu erişiminin güvenliğini sağlamak için Microsoft Entra Id ve Kubernetes rol tabanlı erişim denetimini (Kubernetes RBAC) kullanın.
  • Düğüm kaynaklarına kapsayıcı erişiminin güvenliğini sağlama.
  • AKS kümesini en son Kubernetes sürümüne yükseltin.
  • Düğümleri güncel tutun ve güvenlik düzeltme eklerini otomatik olarak uygulayın.

Kapsayıcı görüntüsü yönetimi ve pod güvenliği için en iyi yöntemleri de okuyabilirsiniz.

Tehdit korumasını etkinleştirme

En iyi yöntem kılavuzu

Kapsayıcılarınızın güvenliğini sağlamaya yardımcı olması için Kapsayıcılar için Defender'ı etkinleştirebilirsiniz. Kapsayıcılar için Defender küme yapılandırmalarını değerlendirebilir ve güvenlik önerileri sağlayabilir, güvenlik açığı taramaları çalıştırabilir ve Kubernetes düğümleri ve kümeleri için gerçek zamanlı koruma ve uyarı sağlayabilir.

API sunucusuna ve küme düğümlerine güvenli erişim

En iyi yöntem kılavuzu

Kümenizin güvenliğini sağlamanın en önemli yollarından biri, Kubernetes API sunucusuna erişimin güvenliğini sağlamaktır. API sunucusuna erişimi denetlemek için Kubernetes RBAC'yi Microsoft Entra Id ile tümleştirin. Bu denetimlerle AKS'nin güvenliğini, Azure aboneliklerinize erişimi güvenli hale getirmekle aynı şekilde sağlarsınız.

Kubernetes API sunucusu, isteklerin bir küme içinde eylem gerçekleştirmesi için tek bir bağlantı noktası sağlar. API sunucusuna erişimi güvenli hale getirmek ve denetlemek için erişimi sınırlayın ve mümkün olan en düşük izin düzeylerini sağlayın. Bu yaklaşım Kubernetes için benzersiz olmasa da, AKS kümenizi çok kiracılı kullanım için mantıksal olarak yalıttığınızda özellikle önemlidir.

Microsoft Entra ID, AKS kümeleriyle tümleşen kurumsal kullanıma hazır bir kimlik yönetimi çözümü sağlar. Kubernetes bir kimlik yönetimi çözümü sağlamadığından, API sunucusuna erişimi ayrıntılı olarak kısıtlamak için zorlanabilirsiniz. AKS'deki Microsoft Entra tümleşik kümeleriyle, API sunucusunda kullanıcıların kimliğini doğrulamak için mevcut kullanıcı ve grup hesaplarınızı kullanırsınız.

AKS kümeleri için Microsoft Entra tümleştirmesi

Kubernetes RBAC ve Microsoft Entra ID tümleştirmesini kullanarak API sunucusunun güvenliğini sağlayabilir ve tek bir ad alanı gibi kapsamlı bir kaynak kümesi için gereken en düşük izinleri sağlayabilirsiniz. Farklı Microsoft Entra kullanıcılarına veya gruplarına farklı Kubernetes rolleri vekleyebilirsiniz. Ayrıntılı izinlerle API sunucusuna erişimi kısıtlayabilir ve gerçekleştirilen eylemlerin net bir denetim kaydını sağlayabilirsiniz.

Önerilen en iyi yöntem, tek tek kimlikler yerine dosyalara ve klasörlere erişim sağlamak için grupları kullanmaktır. Örneğin, kullanıcıları tek tek kullanıcılar yerine Kubernetes rollerine bağlamak için bir Microsoft Entra ID grup üyeliği kullanın. Kullanıcının grup üyeliği değiştikçe AKS kümesindeki erişim izinleri de buna göre değişir.

Bu arada, tek tek kullanıcıyı doğrudan bir role bağladığınız ve iş işlevinde değişiklik yaptığınız varsayalım. Microsoft Entra grup üyelikleri güncellenirken, AKS kümesindeki izinleri güncellenmeyecek. Bu senaryoda, kullanıcı ihtiyaç duyduklarından daha fazla izinle sonuçlanır.

Microsoft Entra tümleştirmesi, Kubernetes RBAC ve Azure RBAC hakkında daha fazla bilgi için bkz . AKS'de kimlik doğrulaması ve yetkilendirme için en iyi yöntemler.

Örnek Meta Veri API'sine erişimi kısıtlama

En iyi yöntem kılavuzu

Meta veri uç noktasına pod çıkışını engellemek için tüm kullanıcı ad alanlarına bir ağ ilkesi ekleyin.

Not

Ağ İlkesi'ni uygulamak için AKS kümesini oluştururken özniteliğini --network-policy azure ekleyin. Kümeyi oluşturmak için aşağıdaki komutu kullanın: az aks create -g myResourceGroup -n myManagedCluster --network-plugin azure --network-policy azure --generate-ssh-keys

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: restrict-instance-metadata
spec:
  podSelector:
    matchLabels: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 10.10.0.0/0#example
        except:
        - 169.254.169.254/32

Kaynaklara kapsayıcı erişiminin güvenliğini sağlama

En iyi yöntem kılavuzu

Kapsayıcıların gerçekleştirebileceği eylemlere erişimi sınırlayın. En az sayıda izin sağlayın ve kök erişim veya ayrıcalıklı yükseltme kullanımından kaçının.

Kullanıcılara veya gruplara gereken en düşük ayrıcalıkları vermeniz gerektiği gibi, kapsayıcıları yalnızca gerekli eylem ve işlemlerle de sınırlamanız gerekir. Saldırı riskini en aza indirmek için, yükseltilmiş ayrıcalıklar veya kök erişim gerektiren uygulamaları ve kapsayıcıları yapılandırmaktan kaçının.

Kullanıcı ad alanlarını kullanarak konak yalıtımını geliştirir ve kapsayıcı kopmalarında yanal hareketi sınırlandırırsınız. Bu geliştirmeler, pod'un kök olarak çalışıp çalışmadığı açısından önemlidir.

Kapsayıcı eylemlerinin daha ayrıntılı denetimi için AppArmor ve seccomp gibi yerleşik Linux güvenlik özelliklerini de kullanabilirsiniz.

Daha fazla bilgi için bkz Kaynaklara Kapsayıcı Erişimin Güvenliğini Sağlama.

Kubernetes'in en son sürümüne düzenli olarak güncelleştirme

En iyi yöntem kılavuzu

Yeni özelliklerden ve hata düzeltmelerinden haberdar olmak için AKS kümenizdeki Kubernetes sürümünü düzenli olarak yükseltin.

Kubernetes, yeni özellikleri geleneksel altyapı platformlarından daha hızlı bir şekilde yayınlar. Kubernetes güncelleştirmeleri şunlardır:

  • Yeni özellikler
  • Hata veya güvenlik düzeltmeleri

Yeni özellikler genellikle kararlı hale gelmeden önce alfa ve beta durumunda hareket eder. Kararlı olduktan sonra, genel olarak kullanılabilir ve üretim kullanımı için önerilir. Kubernetes yeni özellik yayın döngüsü, kubernetes'i düzenli olarak hataya neden olan değişikliklerle karşılaşmadan veya dağıtımlarınızı ve şablonlarınızı ayarlamadan güncelleştirmenizi sağlar.

AKS, Kubernetes'in üç alt sürümünü destekler. Yeni bir ikincil yama sürümü kullanıma sunulduğunda, desteklenen en eski ikincil sürüm ve düzeltme eki sürümleri kullanımdan kaldırılır. Küçük Kubernetes güncelleştirmeleri düzenli aralıklarla gerçekleşir. Destek kapsamında kalmak için gerekli yükseltmeleri denetleyebilmek için bir idare sürecine sahip olduğunuzdan emin olun. Daha fazla bilgi için bkz . Desteklenen Kubernetes sürümleri AKS.

Kümenizde kullanılabilen sürümleri denetlemek için aşağıdaki örnekte gösterildiği gibi az aks get-upgrades komutunu kullanın:

az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster --output table

Ardından az aks upgrade komutunu kullanarak AKS kümenizi yükseltebilirsiniz . Yükseltme işlemi güvenli bir şekilde:

  • Kordonlar ve düğümler bir defada bir boşaltılır.
  • Kalan düğümlerde podları zamanlar.
  • En son işletim sistemi ve Kubernetes sürümlerini çalıştıran yeni bir düğüm dağıtır.

Önemli

Geliştirme testi ortamında yeni ikincil sürümleri test edin ve yeni Kubernetes sürümüyle iş yükünüzün iyi durumda kaldığını doğrulayın.

Kubernetes, iş yüklerinizin güvendiği API'leri (sürüm 1.16 gibi) kullanımdan kaldırabilir. Yeni sürümleri üretime getirirken, ayrı sürümlerde birden çok düğüm havuzu kullanmayı ve tek tek havuzları tek tek yükselterek güncelleştirmeyi bir kümede aşamalı olarak dağıtmayı göz önünde bulundurun. Birden çok küme çalıştırıyorsanız, etkiyi veya değişiklikleri aşamalı olarak izlemek için bir kerede bir kümeyi yükseltin.

az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version KUBERNETES_VERSION

AKS'deki yükseltmeler hakkında daha fazla bilgi için bkz. AKS'de desteklenen Kubernetes sürümleri ve AKS kümesini yükseltme.

Linux düğümü güncelleştirmelerini işleme

Aks'deki Linux düğümleri her akşam dağıtım güncelleştirme kanalı aracılığıyla güvenlik yamaları alır. Bu davranış, düğümler AKS kümesinde dağıtıldığından otomatik olarak yapılandırılır. Kesintiyi ve çalışan iş yüklerinin olası etkisini en aza indirmek için, bir güvenlik düzeltme eki veya çekirdek güncelleştirmesi gerekiyorsa düğümler otomatik olarak yeniden başlatılmaz. Düğüm yeniden başlatma işlemlerini işleme hakkında daha fazla bilgi için bkz . AKS'de düğümlere güvenlik ve çekirdek güncelleştirmelerini uygulama.

Düğüm görüntüsü yükseltmeleri

Katılımsız yükseltmeler Linux düğümü işletim sistemine güncelleştirmeler uygular, ancak kümeniz için düğüm oluşturmak için kullanılan görüntü değişmeden kalır. Kümenize yeni bir Linux düğümü eklenirse, düğümü oluşturmak için özgün görüntü kullanılır. Bu yeni düğüm, her gece yapılan otomatik kontrol sırasında mevcut olan tüm güvenlik ve çekirdek güncellemelerini alır fakat tüm kontroller ve yeniden başlatmalar tamamlanana kadar yama uygulanmamış kalır. Kümeniz tarafından kullanılan düğüm görüntülerini denetlemek ve güncelleştirmek için düğüm görüntüsü yükseltmeyi kullanabilirsiniz. Düğüm görüntüsü yükseltme hakkında daha fazla bilgi için bkz . Azure Kubernetes Service (AKS) düğüm görüntüsü yükseltme.

Windows Server düğüm güncelleştirmelerini işleme

Windows Server düğümleri için, podları güvenli bir şekilde kordon altına alıp tahliye etmek ve güncellenmiş düğümleri dağıtmak amacıyla düzenli olarak bir düğüm görüntüsü yükseltme işlemi gerçekleştirin.