Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Varsayılan olarak, Azure Kubernetes Service (AKS) kümesinde çalışan tüm podlar Azure Örnek Meta Veri Hizmeti (IMDS) uç noktasına erişebilir. Artık güvenliği (önizleme) geliştirmek için isteğe bağlı olarak Azure Kubernetes Service (AKS) kümelerinizden IMDS uç noktasına erişimi kısıtlayabilirsiniz.
Önemli
AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "kullanılabilir" olarak sağlanır ve hizmet düzeyi sözleşmelerinin ve sınırlı garantinin dışında tutulur. AKS önizlemeleri, müşteri desteği tarafından mümkün olan en iyi şekilde kısmen ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:
AKS kümeleri için IMDS kısıtlaması hakkında
Azure IMDS, şu anda çalışan sanal makine örnekleri hakkında bilgi sağlayan bir REST API'dir. Bu bilgiler, SKU, depolama, ağ yapılandırmaları ve yaklaşan bakım olaylarını içerir.
IMDS REST API, AKS kümesinde çalışan tüm podlardan varsayılan olarak erişilebilen bilinen, yönlendirilemeyen bir IP adresinde (169.254.169.254) mevcuttur. Bu varsayılan erişim, AKS kümesi için belirli güvenlik risklerini getirir:
- Kötü amaçlı kullanıcılar, belirteçler ve diğer platform bilgileri gibi hassas bilgileri almak için hizmetlerden yararlanabilir ve bu da bilgi sızıntısına neden olabilir.
- Uygulamalar bu kimlik bilgilerini kötüye kullanabileceğinden olası kimlik doğrulama güvenlik açıkları ortaya çıkar.
Artık kümenizde çalışan konak dışı ağ podları için IMDS uç noktasına erişimi kısıtlamayı tercih edebilirsiniz. Ana bilgisayar olmayan ağ podlarıhostNetwork, belirtimlerinde false olarak ayarlanmıştır. IMDS kısıtlaması etkinleştirildiğinde, konak olmayan ağ podları IMDS uç noktasına erişemez veya yönetilen kimlik tarafından yetkilendirme için OAuth 2.0 belirteçleri alamaz. IMDS kısıtlaması etkinleştirildikten sonra host olmayan ağ podları Microsoft Entra İş Yükü Kimliği'ne güvenmelidir.
Ana bilgisayar ağ kapsüllerinde hostNetwork belirtimlerde true olarak ayarlanmıştır. Ana bilgisayar ağı podları, ana bilgisayar işlemleriyle aynı ağ ad alanını paylaştığından, IMDS kısıtlaması etkinleştirildikten sonra IMDS uç noktasına erişmeye devam edebilir. Düğümlerdeki yerel işlemler örnek meta verilerini almak için IMDS uç noktasını kullanabilir, böylece IMDS kısıtlaması etkinleştirildikten sonra uç noktaya erişmelerine izin verilir.
Başlamadan önce
Azure CLI sürüm 2.61.0 veya üzerinin yüklü olduğundan emin olun. Sürümü bulmak için
az --versionkomutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.aks-previewAzure CLI uzantısı sürüm 7.0.0b2 veya üzerini yükleyin.Eğer
aks-previewuzantısına henüz sahip değilseniz,az extension addkomutunu kullanarak yükleyin.az extension add --name aks-previewUzantıya
aks-previewzaten sahipseniz, komutunu kullanarak en son sürüme sahip olduğunuzdan emin olmak için uzantıyı güncelleştirinaz extension update.az extension update --name aks-preview
IMDSRestrictionPreviewaz feature register komutunu kullanarak özellik bayrağını kaydedin.az feature register --namespace Microsoft.ContainerService --name IMDSRestrictionPreviewaz feature show komutunu kullanarak kayıt durumunu doğrulayın. Durumun Kayıtlı olarak gösterilmesi birkaç dakika sürer:
az feature show --namespace Microsoft.ContainerService --name IMDSRestrictionPreviewDurum Kayıtlı olarak gösterildiğinde, az provider register komutunu kullanarak Microsoft.ContainerService kaynak sağlayıcısının kaydını yenileyin.
az provider register --namespace Microsoft.ContainerServiceAKS kümenizde OIDC Veren'i etkinleştirin. Yeni bir küme oluşturmak veya mevcut bir kümeyi güncelleştirmek için bkz. OIDC Issuer ile bir AKS kümesini yapılandırma.
Sınırlamalar
IMDS uç noktasına erişmesi gereken bazı eklentiler IMDS kısıtlaması ile desteklenmez. Kümenizde bu eklentiler yüklüyse IMDS kısıtlamasını etkinleştiremezsiniz. Buna karşılık, IMDS kısıtlaması etkinse bu eklentileri yükleyemezsiniz. Desteklenmeyen eklentiler şunlardır:
- Uygulama ağ geçidi giriş denetleyicisi
- Kapsayıcılar için Azure İzleyici (Kapsayıcı İçgörüleri)
- Sanal düğümler
- Azure İlkesi
- Küme uzantıları: Flux (GitOps), Dapr, Azure Uygulaması Yapılandırması, Azure Machine Learning, Azure Container Storage, Azure Backup
- Yapay zeka araç zinciri operatörü (önizleme)
- Başvuru rotası
- HTTP uygulaması yönlendirme
- Web uygulaması yönlendirme
- Azure maliyet analizi
Azure Key Vault sağlayıcısı, Gizli Dizi Mağazası Kapsayıcı Depolama Arabirimi (CSI) sürücüsü için artık iş yükü kimliği kimlik doğrulama modunu destekliyor ve bu nedenle IMDS kısıtlaması etkinleştirildiğinde çalışabiliyor.
Ayrıca, Windows düğüm havuzları şu anda IMDS kısıtlaması ile desteklenmemektedir.
Dikkat
Desteklenmeyen eklentiler kullanan bir küme için IMDS kısıtlamalarının etkinleştirilmesi hatayla sonuçlanır.
Dikkat edilmesi gereken önemli hususlar
IMDS kısıtlaması etkinleştirildiğinde AKS düğümdeki iptables kurallarını yönetir. Iptables kurallarının yanlışlıkla kaldırılmasını veya üzerinde oynanmasını önlemek için aşağıdaki noktaları aklınızda bulundurun:
- Iptables kuralları SSH veya node-shell ile değiştirilebilir, bu yüzden SSH'yi devre dışı bırak veya ayrıcalıklı podları devre dışı bırakacak bir ilke kullanmanızı öneririz.
- Düğüm yeniden görüntülendiğinde veya yeniden başlatıldığında, IMDS'ye erişimi kısıtlayan iptables kuralları geri yüklenir.
Yeni kümede IMDS kısıtlamasını etkinleştirme
Yeni bir kümede IMDS kısıtlamasını etkinleştirmek ve konak ağı dışında kalan ağ podlarından IMDS uç noktasına gelen tüm trafiği engellemek için, az aks create komutunu --enable-imds-restriction parametresiyle çalıştırın.
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--enable-imds-restriction
Mevcut kümede IMDS kısıtlamasını etkinleştirme
Mevcut bir kümede IMDS kısıtlamasını etkinleştirmek ve konak olmayan ağ podlarından IMDS uç noktasına gelen tüm trafiği engellemek için komutunu parametresiyle az aks update çalıştırın--enable-imds-restriction.
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--enable-imds-restriction
Kümeyi güncelleştirdikten sonra, kümenin podlarına gelen trafiği engellemeye başlamak için ile kümenizdeki düğümleri yenidenaz aks upgrade --node-image-only.
IMDS kısıtlaması etkin bir kümedeki trafiği doğrulama
IMDS kısıtlamasının geçerli olduğunu doğrulamak için hem konak hem de konak olmayan ağ podlarına yönelik trafiği test edin.
Ana bilgisayar ağına bağlı olmayan bir ağ podunun trafiğini doğrula
ile
hostNetwork: falsebir pod oluşturun. ilehostNetwork: falsebir test pod'nuz yoksa aşağıdaki komutu çalıştırarak bir tane oluşturabilirsiniz.cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: non-host-nw spec: hostNetwork: false containers: - name: non-host-nw image: mcr.microsoft.com/azurelinux/base/nginx:1 command: ["sleep", "infinity"] EOFkubectl execile poddaki kabuğa bağlanın.kubectl exec -it non-host-nw -- /bin/bashPoddan IMDS uç noktasına gelen trafiği test edin.
curl -s -H Metadata:true --connect-timeout 10 --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2023-11-15"
Yaklaşık 10 saniye bekleyin ve komutun hiçbir şey döndürmediğini gözlemleyin; bu da bağlantının zaman aşımına uğradı ve pod'un IMDS uç noktasına erişemediği anlamına gelir.
Bundan sonra kubectl delete pod non-host-nw ile podu temizleyin.
Ana bilgisayar ağ podundaki trafiği doğrula
ile
hostNetwork: truebir pod oluşturun. ilehostNetwork: truebir test pod'nuz yoksa aşağıdaki komutu çalıştırarak bir tane oluşturabilirsiniz.cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: host-nw spec: hostNetwork: true containers: - name: host-nw image: mcr.microsoft.com/azurelinux/base/nginx:1 command: ["sleep", "infinity"] EOFkubectl execile poddaki kabuğa bağlanın.kubectl exec -it host-nw -- /bin/bashPoddan IMDS uç noktasına gelen trafiği test etme
curl -s -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2023-11-15"
Komutun sonuçları döndürdüğünü, yani pod'un IMDS uç noktalarına beklendiği gibi erişebildiğini gözlemleyin.
Bundan sonra kubectl delete pod host-nw ile podu temizleyin.
Küme için IMDS kısıtlamasını devre dışı bırakma
Mevcut bir kümede IMDS kısıtlamasını devre dışı bırakmak ve herhangi bir poddan IMDS uç noktasına giden tüm trafiğe izin vermek için parametresiyle az aks update komutunu çalıştırın--disable-imds-restriction.
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--disable-imds-restriction
Kümeyi güncelleştirdikten sonra kümenin podlarına giden tüm trafiğe izin vermek için kümenizdeki düğümleri yeniden oluşturmanız gerekir.