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.
Azure Kubernetes Service (AKS) kümeleri, yük dengeleyiciler ve yönetilen diskler gibi Azure kaynaklarına erişmek için bir Microsoft Entra kimliği gerektirir. Azure kaynakları için yönetilen kimlikler, AKS kümesinden diğer Azure hizmetlerine erişimi yetkilendirmenin önerilen yoludur.
Kimlik bilgilerini yönetmeye veya bunları kodunuza eklemeye gerek kalmadan, AKS kümesinden Microsoft Entra yetkilendirmesini destekleyen herhangi bir hizmete erişimi yetkilendirmek için yönetilen kimlik kullanabilirsiniz. Yönetilen kimliğe Azure'daki belirli bir kaynağa izin vermek için Azure rol tabanlı erişim denetimi (Azure RBAC) rolü atarsınız. Örneğin, bir kümenin kullanımına yönelik olarak bir yönetilen kimliğe, Azure Anahtar Kasası'ndaki gizli bilgilere erişim izni tanıyabilirsiniz. Azure RBAC hakkında daha fazla bilgi için bkz . Azure rol tabanlı erişim denetimi (Azure RBAC) nedir?.
Bu makalede, yeni veya mevcut bir AKS kümesinde aşağıdaki yönetilen kimlik türlerinin nasıl etkinleştirileceği gösterilir:
- Sistem tarafından atanan yönetilen kimlik. Sistem tarafından atanan yönetilen kimlik, AKS kümesi gibi tek bir Azure kaynağıyla ilişkilendirilir. Yalnızca kümenin yaşam döngüsü için mevcuttur.
- Kullanıcı tarafından atanan yönetilen kimlik. Kullanıcı tarafından atanan yönetilen kimlik, AKS kümesinin diğer Azure hizmetlerine erişim yetkisi vermek için kullanabileceği tek başına bir Azure kaynağıdır. AKS kümesinden ayrı olarak kalıcıdır ve birden çok Azure kaynağı tarafından kullanılabilir.
- "Önceden oluşturulmuş kubelet yönetimi kimliği." Önceden oluşturulmuş kubelet yönetilen kimliği, kubelet'in Azure'daki diğer kaynaklara erişmek için kullanabileceği isteğe bağlı bir kullanıcı tarafından atanan kimliktir. Kubelet için kullanıcı tarafından atanan yönetilen kimlik belirtmezseniz AKS, düğüm kaynak grubunda kullanıcı tarafından atanan bir kubelet kimliği oluşturur.
Yönetilen kimlikler hakkında daha fazla bilgi edinmek için bkz . Azure kaynakları için yönetilen kimlikler.
Genel bakış
AKS kümesi, Microsoft Entra'dan belirteç istemek için yönetilen kimlik kullanır. Bu belirteçler, Azure'da çalışan diğer kaynaklara erişimi yetkilendirmek için kullanılır. Kümenize belirli kaynaklara erişim izinleri vermek için yönetilen kimliğe Azure RBAC rolü atayabilirsiniz. Örneğin, kümenizin bir Azure anahtar kasasında gizli dizilere erişmesi gerekiyorsa, kümenin yönetilen kimliğine bu izinleri veren bir Azure RBAC rolü atayabilirsiniz.
Yönetilen kimlik, sistem tarafından veya kullanıcı tarafından atanabilir. Bu iki yönetilen kimlik türü, AKS kümenizden Azure kaynaklarına erişimi yetkilendirmek için her iki türü de kullanabileceğiniz şekilde benzerdir. Aralarındaki temel fark, sistem tarafından atanan yönetilen kimliğin AKS kümesi gibi tek bir Azure kaynağıyla ilişkilendirilirken, kullanıcı tarafından atanan yönetilen kimliğin tek başına bir Azure kaynağı olmasıdır. Yönetilen kimlik türleri arasındaki farklar hakkında daha fazla bilgi için, Azure kaynakları için yönetilen kimliklerde Yönetilen kimlik türleri konu başlığına bakın.
Her iki yönetilen kimlik türü de Azure platformu tarafından yönetildiğinden, gizli dizi sağlamaya veya döndürmeye gerek kalmadan uygulamalarınızdan erişim yetkisi alabilirsiniz. Azure, kimlik bilgilerini sizin için yönetir.
AKS kümesini dağıttığınızda, sizin için varsayılan olarak sistem tarafından atanan bir yönetilen kimlik oluşturulur. Ayrıca, kümeyi kullanıcı tarafından atanan yönetilen kimlikle de oluşturabilirsiniz.
Yönetilen kimlik yerine uygulama hizmet ilkesi ile bir küme oluşturmak da mümkündür. Yönetilen kimlikler, güvenlik ve kullanım kolaylığı açısından hizmet ilkelerine tercih edilir. Hizmet sorumlusuyla küme oluşturma hakkında daha fazla bilgi için Azure Kubernetes Service (AKS) ile hizmet sorumlusu kullanma başvurusuna bakın.
Mevcut bir kümeyi bir uygulama hizmet sorumlusundan yönetilen kimlik kullanacak şekilde güncelleştirebilirsiniz. Ayrıca, var olan bir kümeyi farklı bir yönetilen kimlik türüne güncelleştirebilirsiniz. Kümeniz zaten bir yönetilen kimlik kullanıyorsa ve kimlik değiştirildiğinde, örneğin sistem tarafından atanandan kullanıcı tarafından atanana küme kimlik türünü güncellediyseniz, denetim düzlemi bileşenlerinin yeni kimlik ile güncellenmesinde bir gecikme olur. Denetim düzlemi bileşenleri, belirtecinin süresi dolana kadar eski kimliği kullanmaya devam eder. Belirteç yenilendikten sonra yeni kimliğe geçerler. Bu işlem birkaç saat sürebilir.
Sistem tarafından atanan ve kullanıcı tarafından atanan kimlik türleri, pod üzerinde çalışan bir uygulama tarafından kullanılmak üzere tasarlanan Microsoft Entra workload kimliğinden farklıdır.
Başlamadan önce
Azure CLI sürüm 2.23.0 veya üzerinin yüklü olduğundan emin olun. Sürümü bulmak için
az --version
komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.Önceden oluşturulmuş kubelet yönetilen kimliğini kullanmak için Azure CLI sürüm 2.26.0 veya üzeri yüklü olmalıdır.
Mevcut bir kümeyi sistem tarafından atanan yönetilen kimliği veya kullanıcı tarafından atanan yönetilen kimliği kullanacak şekilde güncelleştirmek için Azure CLI sürüm 2.49.0 veya sonraki bir sürümünün yüklü olması gerekir.
Bu makaledeki örnekleri çalıştırmadan önce az account set komutunu çağırıp abonelik kimliğinizi geçirerek aboneliğinizi geçerli etkin abonelik olarak ayarlayın .
az account set --subscription <subscription-id>
Ayrıca komutunu çağırarak az group create
henüz bir Azure kaynak grubunuz yoksa da bir Azure kaynak grubu oluşturun.
az group create \
--name myResourceGroup \
--location westus2
Sistem tarafından atanan yönetilen kimliği etkinleştirme
Sistem tarafından atanan yönetilen kimlik, AKS kümesi veya başka bir Azure kaynağıyla ilişkilendirilmiş bir kimliktir. Sistem tarafından atanan yönetilen kimlik, kümenin yaşam döngüsüne bağlıdır. Küme silindiğinde, sistem tarafından atanan yönetilen kimlik de silinir.
AKS kümesi, Azure'da çalışan diğer kaynaklara erişimi yetkilendirmek için sistem tarafından atanan yönetilen kimliği kullanabilir. Kümeye belirli kaynaklara erişim izinleri vermek için sistem tarafından atanan yönetilen kimliğe bir Azure RBAC rolü atayabilirsiniz. Örneğin, kümenizin bir Azure anahtar kasasında gizli dizilere erişmesi gerekiyorsa, sistem tarafından atanan yönetilen kimliğe bu izinleri veren bir Azure RBAC rolü atayabilirsiniz.
Yeni aks kümesinde sistem tarafından atanan yönetilen kimliği etkinleştirme
Sistem tarafından atanan yönetilen kimliği yeni bir kümede etkinleştirmek için öğesini çağırın az aks create
. Sistem tarafından atanan yönetilen kimlik, yeni kümede varsayılan olarak etkinleştirilir.
komutunu kullanarak az aks create
bir AKS kümesi oluşturun.
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--generate-ssh-keys
Sistem tarafından atanan yönetilen kimliğin oluşturulduktan sonra küme için etkinleştirildiğini doğrulamak için bkz . Bir kümenin hangi tür yönetilen kimlik kullandığını belirleme.
Sistem tarafından atanan yönetilen kimliği kullanmak için mevcut AKS kümesini güncelleştirme
Bunun yerine sistem tarafından atanan yönetilen kimliği kullanmak üzere hizmet sorumlusu kullanan mevcut bir AKS kümesini güncelleştirmek için parametresiyle az aks update
komutunu çalıştırın--enable-managed-identity
.
az aks update \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-managed-identity
Kümeyi hizmet sorumlusu yerine sistem tarafından atanan yönetilen kimliği kullanacak şekilde güncelleştirdikten sonra, denetim düzlemi ve podlar Azure'daki diğer hizmetlere erişirken yetkilendirme için sistem tarafından atanan yönetilen kimliği kullanır. Siz aracı havuzunuzu da yükseltene kadar Kubelet hizmet sorumlusu kullanmaya devam eder. Yönetilen bir kimliğe güncelleştirmek için düğümlerinizdeki komutunu kullanabilirsiniz az aks nodepool upgrade --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-image-only
. AKS kümenizde düğüm havuzu yükseltmesi, düğüm havuzlarındaki düğümler kordonlandığında, boşaltıldığında ve yeniden görüntülendiğinde kesinti süresine neden olur.
Not
Kümenizi güncelleştirirken aşağıdaki bilgileri göz önünde bulundurun:
Güncelleştirme yalnızca uygulanacak bir VHD güncellemesi varsa çalışır. En son VHD'yi çalıştırıyorsanız güncelleştirmeyi gerçekleştirmek için bir sonraki VHD kullanılabilir olana kadar beklemeniz gerekir.
Azure CLI, geçiş sonrasında eklentinizin izninin doğru şekilde ayarlanmasını sağlar. Geçiş işlemini gerçekleştirmek için Azure CLI kullanmıyorsanız, eklenti kimliğinin iznini kendiniz işlemeniz gerekir. Azure Resource Manager (ARM) şablonu kullanma örneği için bkz . ARM şablonlarını kullanarak Azure rolleri atama.
Kümeniz
--attach-acr
kullanarak Azure Container Registry'den (ACR) görüntüleri çekiyorsa, yönetilen kimlik için kullanılan yeni oluşturulan kubelet'in ACR'den çekme iznini alabilmesi için kümenizi güncelledikten sonraaz aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR resource ID>
komutunu çalıştırmanız gerekir. Aksi takdirde, güncelleştirmeden sonra ACR'den çekemezsiniz.
Sistem tarafından atanmış yönetilen kimlik için rol ataması ekleyin
Küme izinlerini başka bir Azure kaynağında vermek için sistem tarafından atanan yönetilen kimliğe bir Azure RBAC rolü atayabilirsiniz. Azure RBAC, izin düzeylerini belirten hem yerleşik hem de özel rol tanımlarını destekler. Azure RBAC rollerini atama hakkında daha fazla bilgi için bkz: Azure rolü atama adımları.
Yönetilen kimliğe Azure RBAC rolü atadığınızda, rolün kapsamını tanımlamanız gerekir. Genel olarak, bir rolün kapsamını yönetilen kimliğin gerektirdiği en düşük ayrıcalıklarla sınırlamak en iyi yöntemdir. Azure RBAC rollerinin kapsamını belirleme hakkında daha fazla bilgi için bkz . Azure RBAC kapsamını anlama.
Kaynakların çalışan düğümü kaynak grubunun dışında olduğu kendi sanal ağınızı, ekli Azure disklerinizi, statik IP adresini, yönlendirme tablosunu veya kullanıcı tarafından atanan kubelet kimliğini oluşturup kullandığınızda, Azure CLI rol atamasını otomatik olarak ekler. ARM şablonu veya başka bir yöntem kullanıyorsanız rol ataması gerçekleştirmek için yönetilen kimliğin asıl kimliğini kullanın.
Azure CLI kullanmıyorsanız ancak çalışan düğümü kaynak grubunun dışında kendi sanal ağınızı, bağlı Azure disklerinizi, statik IP adresinizi, yönlendirme tablonuzu veya kullanıcı tarafından atanan kubelet kimliğinizi kullanıyorsanız, denetim düzlemi için kullanıcı tarafından atanan yönetilen kimlik kullanmanızı öneririz. Denetim düzlemi sistem tarafından atanan bir yönetilen kimlik kullandığında, kimlik kümeyle aynı anda oluşturulur, bu nedenle rol ataması küme oluşturulana kadar gerçekleştirilemez.
Sistem tarafından atanan yönetilen kimliğin asıl kimliğini alma
Kümenin sistem tarafından atanan yönetilen kimliğine Azure RBAC rolü atamak için önce yönetilen kimliğin asıl kimliği gerekir.
az aks show
komutunu çağırarak sistem tarafından atanan kümenin yönetilen kimliğinin asıl kimliğini alın.
# Get the principal ID for a system-assigned managed identity.
CLIENT_ID=$(az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query identity.principalId \
--output tsv)
Sistem tarafından atanan yönetilen kimliğe Azure RBAC rolü atama
Azure'daki bir kaynağa sistem tarafından atanan yönetilen kimlik izinleri vermek için komutunu çağırarak az role assignment create
yönetilen kimliğe bir Azure RBAC rolü atayın.
Varsayılan çalışan düğümü kaynak grubunun dışındaki bir Sanal Ağ, ekli Azure diski, statik IP adresi veya yönlendirme tablosu için, özel kaynak grubuna Network Contributor
rolünü atamanız gerekir.
Örneğin, Network Contributor
komutunu kullanarak az role assignment create
rolünü özel kaynak grubuna atayın. parametresi için --scope
kümenin kaynak grubunun kaynak kimliğini belirtin.
az role assignment create \
--assignee $CLIENT_ID \
--role "Network Contributor" \
--scope "<resource-group-id>"
Not
Kümenizin yönetilen kimliğine verilen izinlerin yayılması 60 dakika kadar sürebilir.
Kullanıcı tarafından atanan yönetilen kimliği etkinleştirme
Kullanıcı tarafından atanan yönetilen kimlik tek başına bir Azure kaynağıdır. Denetim düzlemi için kullanıcı tarafından atanan yönetilen kimliğe sahip bir küme oluşturduğunuzda, küme oluşturmadan önce kullanıcı tarafından atanan yönetilen kimlik kaynağının mevcut olması gerekir. Bu özellik, özel bir sanal ağ veya kullanıcı tanımlı yönlendirme (UDR) giden türü ile küme oluşturma gibi senaryoları etkinleştirir.
Kullanıcı tarafından atanan yönetilen kimlik oluşturma
Henüz kullanıcı tarafından atanan yönetilen kimlik kaynağınız yoksa, az identity create
komutunu kullanarak bir tane oluşturun.
az identity create \
--name myIdentity \
--resource-group myResourceGroup
Çıkışınız aşağıdaki örnek çıkışa benzemelidir:
{
"clientId": "<client-id>",
"clientSecretUrl": "<clientSecretUrl>",
"id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
"location": "westus2",
"name": "myIdentity",
"principalId": "<principal-id>",
"resourceGroup": "myResourceGroup",
"tags": {},
"tenantId": "<tenant-id>",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}
Kullanıcı tarafından atanan yönetilen kimliğin asıl kimliğini elde etme
Kullanıcı tarafından atanan yönetilen kimliğin asıl kimliğini almak için az identity show komutunu çalıştırın ve principalId
özelliğinde sorgulama yapın.
CLIENT_ID=$(az identity show \
--name myIdentity \
--resource-group myResourceGroup \
--query principalId \
--output tsv)
Kullanıcı tarafından atanan yönetilen kimliğin kaynak kimliğini alma
Kullanıcı tarafından atanan yönetilen kimliğe sahip bir küme oluşturmak için yeni yönetilen kimliğin kaynak kimliği gerekir. Kullanıcı tarafından atanan yönetilen kimliğin kaynak kimliğini almak için özelliğinde az aks show ve query çağrısı yapın id
:
RESOURCE_ID=$(az identity show \
--name myIdentity \
--resource-group myResourceGroup \
--query id \
--output tsv)
Azure RBAC rolünü kullanıcı tarafından atanan yönetilen kimliğe atayın
Kümeyi oluşturmadan önce, az role assignment create
komutunu çağırarak yönetilen kimlik için bir rol ataması ekleyin.
Aşağıdaki örnek, bir anahtar kasasında bulunan sırlarına erişim izni vermek amacıyla kullanıcı tarafından atanan yönetilen kimliğe Anahtar Kasası Sırları Kullanıcı rolünü atar. Rol atamasının kapsamı anahtar kasası kaynağına yönelik olarak belirlenmiştir.
az role assignment create \
--assignee $CLIENT_ID \
--role "Key Vault Secrets User" \
--scope "<keyvault-resource-id>"
Not
Kümenizin yönetilen kimliğine verilen izinlerin yayılması 60 dakika kadar sürebilir.
Kullanıcı tarafından atanan yönetilen kimlikle küme oluşturma
Kullanıcı tarafından atanan yönetilen kimliğe sahip bir AKS kümesi oluşturmak için komutunu çağırın az aks create
.
--assign-identity
parametresini dahil edin ve kullanıcı tarafından atanan yönetilen kimlik için kaynak ID'sini belirtin.
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--network-plugin azure \
--vnet-subnet-id <subnet-id> \
--dns-service-ip 10.2.0.10 \
--service-cidr 10.2.0.0/24 \
--assign-identity $RESOURCE_ID \
--generate-ssh-keys
Not
Azure US Government bulutundaki USDOD Central, USDOD East ve USGov Iowa bölgeleri, kullanıcı tarafından atanan yönetilen kimlikle küme oluşturmayı desteklemez.
Kullanıcı tarafından atanan yönetilen kimliği kullanmak için mevcut kümeyi güncelleştirme
Mevcut kümeyi kullanıcı tarafından atanan yönetilen kimliği kullanacak şekilde güncelleştirmek için komutunu çağırın az aks update
.
--assign-identity
parametresini dahil edin ve kullanıcı tarafından atanan yönetilen kimlik için kaynak ID'sini belirtin.
az aks update \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-managed-identity \
--assign-identity $RESOURCE_ID
Başarılı bir küme güncelleştirmesinin kullanıcı tarafından atanan yönetilen kimliği kullanma çıktısı aşağıdaki örnek çıktıya benzemelidir:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
Not
Denetim düzlemi için yönetilen kimliğin sistem tarafından atanandan kullanıcı tarafından atanana geçirilmesi, denetim düzlemi ve aracı havuzları için kapalı kalma süresine neden olmaz. Denetim düzlemi bileşenleri, bir sonraki belirteç yenilemesine kadar birkaç saate kadar eski sistem tarafından atanan kimliğe devam eder.
Bir kümenin hangi yönetilen kimlik türünü kullandığını belirleme
Mevcut AKS kümenizin hangi tür yönetilen kimliği kullandığını belirlemek için az aks show komutunu çağırın ve kimliğin type özelliği için sorguyu çalıştırın.
az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query identity.type \
--output tsv
Küme yönetilen kimlik kullanıyorsa type özelliğinin değeri SystemAssigned veya UserAssigned olur.
Küme bir hizmet sorumlusu kullanıyorsa type özelliğinin değeri null olur. Yönetilen kimlik kullanmak için kümenizi yükseltmeyi göz önünde bulundurun.
Önceden oluşturulmuş yönetilen kubelet kimliğini kullanın
Önceden oluşturulmuş kubelet kimliği, küme oluşturmadan önce var olan kullanıcı tarafından atanan yönetilen kimliktir. Bu özellik, küme oluşturma sırasında Azure Container Registry'ye (ACR) bağlantı gibi senaryoları etkinleştirir.
Not
Kendi kubelet yönetilen kimliğinizi belirtmezseniz AKS, düğüm kaynak grubunda kullanıcı tarafından atanan bir kubelet kimliği oluşturur.
Varsayılan çalışan düğümü kaynak grubunun dışında kullanıcı tarafından atanan kubelet kimliği için, denetim düzlemi yönetilen kimliği adına kubelet kimliğine Yönetilen Kimlik Operatörü rolünü atamanız gerekir.
kubelet tarafından yönetilen kimlik
Kubelet yönetilen kimliğiniz yoksa, az identity create
komutunu kullanarak bir kimlik oluşturun.
az identity create \
--name myKubeletIdentity \
--resource-group myResourceGroup
Çıkışınız aşağıdaki örnek çıkışa benzemelidir:
{
"clientId": "<client-id>",
"clientSecretUrl": "<clientSecretUrl>",
"id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity",
"location": "westus2",
"name": "myKubeletIdentity",
"principalId": "<principal-id>",
"resourceGroup": "myResourceGroup",
"tags": {},
"tenantId": "<tenant-id>",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}
Kubelet yönetilen kimliğine RBAC rolü ata
Kubelet kimliği üzerinde rolü atamak için ACRPull
komutunu kullanın. $KUBELET_CLIENT_ID değişkeni için kubelet kimliğinin asıl kimliğini ve $ACR_REGISTRY_ID değişkeni için ACR kayıt defteri kimliğini sağlayın.
az role assignment create \
--assignee $KUBELET_CLIENT_ID \
--role "acrpull" \
--scope "$ACR_REGISTRY_ID"
Kubelet kimliğini kullanmak için küme oluşturma
Artık AKS kümenizi mevcut kimliklerinizle oluşturabilirsiniz.
assign-identity
bağımsız değişkenini ekleyerek denetim düzlemi için yönetilen kimlik kaynak kimliğini ve assign-kubelet-identity
bağımsız değişkenini ekleyerek kubelet yönetilen kimliğini sağladığınızdan emin olun.
komutunu kullanarak az aks create
mevcut kimliklerinizle bir AKS kümesi oluşturun.
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--network-plugin azure \
--vnet-subnet-id <subnet-id> \
--dns-service-ip 10.2.0.10 \
--service-cidr 10.2.0.0/24 \
--assign-identity <identity-resource-id> \
--assign-kubelet-identity <kubelet-identity-resource-id> \
--generate-ssh-keys
Kubelet yönetilen kimliği kullanılarak başarılı bir AKS kümesi oluşturma işlemi aşağıdakine benzer bir çıkışla sonuçlanmalıdır:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
"identityProfile": {
"kubeletidentity": {
"clientId": "<client-id>",
"objectId": "<object-id>",
"resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
}
},
Kubelet kimliğini kullanmak için mevcut kümeyi güncelleştirme
Mevcut bir kümeyi kubelet yönetilen kimliğini kullanacak şekilde güncelleştirmek için önce AKS kümenizin geçerli denetim düzlemi yönetilen kimliğini alın.
Uyarı
Kubelet tarafından yönetilen kimliği güncellemek, AKS kümenizin düğüm havuzlarını yükseltir; iş yükü kesintisini önlemek için Pod Kesinti Bütçeleri gibi doğru erişilebilirlik yapılandırmalarına sahip olduğunuzdan emin olun veya bakım penceresi sırasında gerçekleştirin.
az aks show
komutunu kullanarak AKS kümenizin kullanıcı tarafından atanan yönetilen kimliği kullandığını onaylayın.az aks show \ --resource-group <RGName> \ --name <ClusterName> \ --query "servicePrincipalProfile"
Kümeniz yönetilen kimlik kullanıyorsa, sonuç
clientId
olan msi ile gösterilir. Bir hizmet sorumlusu kullanan bir küme, bir nesne kimliğini gösterir. Örneğin:# The cluster is using a managed identity. { "clientId": "msi" }
Kümenizin yönetilen kimlik kullandığını onayladıktan sonra komutunu kullanarak yönetilen kimliğin
az aks show
kaynak kimliğini bulun.az aks show --resource-group <RGName> \ --name <ClusterName> \ --query "identity"
Kullanıcı tarafından atanan yönetilen kimlik için çıkışınız aşağıdaki örnek çıktıya benzer olmalıdır:
{ "principalId": null, "tenantId": null, "type": "UserAssigned", "userAssignedIdentities": <identity-resource-id> "clientId": "<client-id>", "principalId": "<principal-id>" },
komutunu kullanarak kümenizi mevcut kimliklerinizle güncelleştirin
az aks update
. Denetim düzlemininassign-identity
bağımsız değişkeni için kullanıcı tarafından atanan yönetilen kimliğin kaynak kimliğini sağlayın. Bağımsız değişkeni için kubelet yönetilen kimliğininassign-kubelet-identity
kaynak kimliğini belirtin.az aks update \ --resource-group myResourceGroup \ --name myManagedCluster \ --enable-managed-identity \ --assign-identity <identity-resource-id> \ --assign-kubelet-identity <kubelet-identity-resource-id>
Kendi kubelet yönetilen kimliğinizi kullanarak başarılı bir küme güncelleştirmesi için çıkışınız aşağıdaki örnek çıktıya benzemelidir:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
"identityProfile": {
"kubeletidentity": {
"clientId": "<client-id>",
"objectId": "<object-id>",
"resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
}
},
Not
Kümeniz --attach-acr
kullanarak Azure Container Registry'den görüntü çekiyorsa, yeni oluşturulan ve yönetilen kimlik için kullanılan kubelet'in ACR'den çekme izni almasına izin vermek için kümenizi güncelledikten sonra az aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR Resource ID>
komutunu çalıştırın. Aksi takdirde, yükseltmeden sonra ACR'den çekemezsiniz.
Kubelet kimliğinin özelliklerini alma
Kubelet kimliğinin özelliklerini almak için az aks show
az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query "identityProfile.kubeletidentity"
Önceden oluşturulmuş kubelet kimlik sınırlamaları
Önceden oluşturulmuş kubelet kimliği için aşağıdaki sınırlamalara dikkat edin:
- Önceden oluşturulmuş bir kubelet kimliği, kullanıcı tarafından atanan yönetilen kimlik olmalıdır.
- Microsoft Azure'da 21Vianet tarafından sağlanan Doğu Çin ve Çin Kuzey bölgeleri desteklenmez.
AKS tarafından kullanılan yönetilen kimliklerin özeti
AKS, yerleşik hizmetler ve eklentiler için çeşitli yönetilen kimlikler kullanır.
Kimlik | İsim | Kullanım örneği | Varsayılan izinler | Kendi kimliğinizi getirin |
---|---|---|---|---|
Kontrol düzlemi | AKS Küme Adı | Aks denetim düzlemi bileşenleri tarafından giriş yük dengeleyicileri ve AKS tarafından yönetilen genel IP'ler, Küme Otomatik Ölçeklendiricisi, Azure Disk, Dosya, Blob CSI sürücüleri gibi küme kaynaklarını yönetmek için kullanılır. | Node kaynak grubu için katkıda bulunan rolü | Desteklenir |
Kubelet | AKS Kümesi Adı-aracı havuzu | Azure Container Registry (ACR) ile kimlik doğrulaması. | Yok (kubernetes v1.15+için) | Desteklenir |
Eklenti | AzureNPM | Kimlik gerekmez. | Yok | Hayır |
Eklenti | AzureCNI ağ izleme | Kimlik gerekmez. | Yok | Hayır |
Eklenti | azure-policy (ağ geçidi denetleyicisi) | Kimlik gerekmez. | Yok | Hayır |
Eklenti | Azure politikası | Kimlik gerekmez. | Yok | Hayır |
Eklenti | Calico | Kimlik gerekmez. | Yok | Hayır |
Eklenti | uygulama yönlendirme | Azure DNS ve Azure Key Vault sertifikalarını yönetir | Key Vault için Key Vault Sırları Kullanıcı rolü, DNS bölgeleri için DNS Bölge Katılımcısı rolü, özel DNS bölgeleri için Özel DNS Bölge Katılımcısı rolü | Hayır |
Eklenti | HTTP Uygulama Yönlendirme | Gerekli ağ kaynaklarını yönetir. | Düğüm kaynak grubu için okuyucu rolü, DNS bölgesi için katkıda bulunan rolü | Hayır |
Eklenti | Ingress Uygulama Ağ Geçidi | Gerekli ağ kaynaklarını yönetir. | Düğüm kaynak grubu için katkıda bulunan rolü | Hayır |
Eklenti | omsagent | AKS ölçümlerini Azure İzleyici'ye göndermek için kullanılır. | Ölçüm Yayımcısı rolünü izleme | Hayır |
Eklenti | Sanal Düğüm (ACIConnector) | Azure Container Instances (ACI) için gerekli ağ kaynaklarını yönetir. | Düğüm kaynak grubu için katkıda bulunan rolü | Hayır |
Eklenti | Maliyet analizi | Maliyet ayırma verilerini toplamak için kullanılır | ||
İş yükü kimliği | Microsoft Entra iş yükü kimliği | Microsoft Entra iş yükü kimliği ile uygulamaların bulut kaynaklarına güvenli bir şekilde erişmesini sağlar. | Yok | Hayır |
Önemli
Azure Kubernetes Service'teki açık kaynak Microsoft Entra pod yönetilen kimliği (önizleme) 24.10.2022 tarihinde kullanım dışı bırakıldı ve proje Eylül 2023'te arşivlendi. Daha fazla bilgi için kullanımdan kaldırma bildirimine bakın. AKS Yönetilen eklentisi, Eylül 2024'te kullanımdan kaldırılmaya başlatılır.
Microsoft Entra İş Yükü Kimliği gözden geçirmenizi öneririz. Entra İş Yükü Kimliği kimlik doğrulaması, kullanım dışı bırakılan pod ile yönetilen kimlik (önizleme) özelliğinin yerini alır. Entra İş Yükü Kimliği, pod üzerinde çalışan bir uygulamanın kendisini destekleyen diğer Azure hizmetlerinde kimlik doğrulaması yapmasını sağlamak için önerilen yöntemdir.
Sınırlamalar
Yönetilen kimlik özellikli bir kümenin farklı bir kiracıya taşınması veya geçirilmesi desteklenmez.
Kümede Microsoft Entra pod yönetilen kimliği (
aad-pod-identity
) etkinleştirildiyse, Düğüm Tarafından Yönetilen Kimlik (NMI) podları, düğümlerin iptables ayarlarını değiştirerek Azure Örnek Meta Verileri (IMDS) uç noktasına yapılan çağrıları engeller. Bu yapılandırma, IMDS uç noktasına yapılan herhangi bir isteğin, belirli bir podaad-pod-identity
kullanmasa bile, NMI tarafından kesilip durdurulması anlamına gelir.AzurePodIdentityException özel kaynak tanımı (CRD), CRD'de tanımlanan pod eşleştirme etiketlerinden kaynaklanan IMDS uç noktasına gelen isteklerin NMI'de herhangi bir işlem yapılmadan proksid edilmesi gerektiğini belirtecek şekilde yapılandırılabilir. AzurePodIdentityException CRD'sini yapılandırarak
kubernetes.azure.com/managedby: aks
ad alanındaki etiketine sahip sistem podlarınıaad-pod-identity
dışında tutun. Daha fazla bilgi için Azure Kubernetes Service'te Microsoft Entra pod ile yönetilen kimlikleri kullanma konusuna bakın.Özel durum yapılandırmak için mikrofon özel durumu YAML'sini yükleyin.
AKS, özel bir özel DNS bölgesi kullanılırken sistem tarafından atanan yönetilen kimlik kullanımını desteklemez.
Sonraki adımlar
- Yönetilen kimlik özellikli bir küme oluşturmak için Azure Resource Manager şablonlarını kullanın.
- AKS'de desteklenen tüm Microsoft Entra kimlik doğrulama yöntemleri için kubelogin kullanmayı öğrenin.
Azure Kubernetes Service