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.
Bu makalede, yeni veya mevcut bir AKS kümesinde sistem tarafından atanan yönetilen kimliği etkinleştirme, sistem tarafından atanan yönetilen kimliğin asıl kimliğini alma ve sistem tarafından atanan yönetilen kimlik için rol ataması ekleme işlemleri açıklanır.
Önkoşullar
AKS'de kullanılabilen farklı yönetilen kimlik türlerini ve Azure kaynaklarına güvenli bir şekilde erişmek için bunları nasıl kullanabileceğinizi anlamak için Azure Kubernetes Service'te (AKS) yönetilen kimliklere genel bakış'ı okuyun.
komutunu kullanarak
az account setaboneliğinizi geçerli etkin abonelik olarak ayarlayın.az account set --subscription <subscription-id>
Mevcut bir Azure kaynak grubu. Eğer biriniz yoksa,
az group createkomutunu kullanarak bir tane oluşturabilirsiniz.az group create \ --name <resource-group-name> \ --location <location>
- Azure CLI sürüm 2.23.0 veya üzeri yüklü. Sürümü bulmak için
az --versionkomutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI'yı yükleme. - Mevcut kümeyi sistem 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.
- Terraform yerel olarak yüklendi. Yükleme yönergeleri için bkz . Terraform'u yükleme.
Sınırlamalar
- Yönetilen kimlikle küme oluşturduktan sonra hizmet sorumlusu kullanmaya geri dönemezsiniz.
- Yönetilen kimlik özellikli bir kümenin farklı bir kiracıya taşınması veya geçirilmesi desteklenmez.
- Kümede Microsoft Entra pod yönetimli kimlik (
aad-pod-identity) etkinleştirildiyse, Node-Managed Identity (NMI) pod'ları, Azure Örnek Meta Verileri (IMDS) uç noktasına yapılan çağrıları durdurmak için düğümlerin iptables ayarlarını değiştirir. Bu yapılandırma, IMDS uç noktasına yapılan herhangi bir isteğin, belirli bir podaad-pod-identitykullanmasa bile, NMI tarafından kesilip durdurulması anlamına gelir.- AzurePodIdentityException özel kaynak tanımını (CRD), CRD'de tanımlanan pod eşleştirme etiketlerinden kaynaklanan IMDS uç noktasına yapılan isteklerin NMI'de herhangi bir işlem yapılmadan proksid edilmesi gerektiğini belirtmek için yapılandırabilirsiniz. AzurePodIdentityException CRD'sini yapılandırarak
kubernetes.azure.com/managedby: aksad alanındaki etiketine sahip sistem podlarınıaad-pod-identitydışında tutun. Daha fazla bilgi için bkz. Azure Kubernetes Service'te (AKS) Microsoft Entra pod ile yönetilen kimlikleri kullanma. - Özel durum yapılandırmak için mic-exception YAML yükleyin.
- AzurePodIdentityException özel kaynak tanımını (CRD), CRD'de tanımlanan pod eşleştirme etiketlerinden kaynaklanan IMDS uç noktasına yapılan isteklerin NMI'de herhangi bir işlem yapılmadan proksid edilmesi gerektiğini belirtmek için yapılandırabilirsiniz. AzurePodIdentityException CRD'sini yapılandırarak
- AKS, özel bir özel DNS bölgesi kullanılırken sistem tarafından atanan yönetilen kimlik kullanımını desteklemez.
Kümeyi güncelleştirme konusunda dikkat edilmesi gerekenler
Bir kümeyi 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 kullanan bir örnek için bkz. ARM şablonlarını kullanarak Azure rolleri atama.
- Kümeniz Azure Container Registry (ACR) görüntülerinden çekmek için
--attach-acrkullanıyorsa, yönetilen kimlik için kullanılan yeni oluşturulan kubelet'in ACR'den çekme izni almasına izin verecek şekilde kümenizi güncelleştirdikten sonraaz aks update --resource-group <resource-group-name> --name <aks-cluster-name> --attach-acr <acr-resource-id>komutunu çalıştırmanız gerekir. Aksi takdirde, güncelleştirmeden sonra ACR'den çekemezsiniz.
Yeni aks kümesinde sistem tarafından atanan yönetilen kimliği etkinleştirme
Sistem tarafından atanan yönetilen kimlik, yeni bir AKS kümesi oluşturduğunuzda varsayılan olarak etkinleştirilir.
az aks create komutunu kullanarak bir AKS kümesi oluşturun.
az aks create \
--resource-group <resource-group-name> \
--name <aks-cluster-name> \
--generate-ssh-keys
Sistem tarafından atanan yönetilen kimliği kullanmak için mevcut kümeyi güncelleştirme
az aks update komutunu ve --enable-managed-identity parametresini kullanarak bir hizmet sorumlusundan mevcut bir AKS kümesini sistem tarafından atanan yönetilen kimliğe güncelleyin.
az aks update \
--resource-group <resource-group-name> \
--name <aks-cluster-name> \
--enable-managed-identity
Kümeyi hizmet sorumlusu yerine sistem tarafından atanan yönetilen kimliği kullanacak şekilde güncelleştirdiğinizde, denetim düzlemi ve podlar Azure'deki diğer hizmetlere erişirken yetkilendirme için sistem tarafından atanan yönetilen kimliği kullanır. Kubelet'in de hemen yönetilen kimlik kullanmaya başlayabilmesi için kümenizdeki tüm düğümler yeniden oluşturulur. Bu yeniden oluşturma işlemi, düğüm havuzlarındaki düğümler cordoned, drained ve reimaged olduğundan AKS kümeniz için kapalı kalma süresine neden olur. Azure Kubernetes Service (AKS) kümenizde düğüm yeniden oluşturma gerektiren işlemlere ne zaman izin verildiğini denetlemek için Düğüm Kesintisi İlkesi'ni (önizleme) yapılandırın.
Sistem tarafından atanan yönetilen kimliğin asıl kimliğini alma
az aks show komutunu kullanarak sistem tarafından atanan kümenin yönetilen kimliğinin asıl kimliğini alın.
CLIENT_ID=$(az aks show \
--name <aks-cluster-name> \
--resource-group <resource-group-name> \
--query identity.principalId \
--output tsv)
Sistem tarafından atanmış yönetilen kimlik için rol ataması ekleyin
Uyarı
Sanal ağ (VNet), bağlı Azure diski, statik IP adresi veya varsayılan çalışan düğüm kaynak grubunun dışındaki yönlendirme tablosu için rolü özel kaynak grubuna atamanız gerekir Network Contributor.
az role assignment create komutunu kullanarak sistem tarafından atanan yönetilen kimliğe Azure RBAC rolü atayın. Aşağıdaki örnek, ağ katkıda bulunanı rolünü sistem tarafından atanan yönetilen kimliğe atar. Rol atamasının kapsamı sanal ağı içeren kaynak grubuna göre belirlenmiştir.
az role assignment create \
--assignee <client-id> \
--role "Network Contributor" \
--scope <custom-resource-group-id>
Uyarı
Kümenizin yönetilen kimliğine verilen izinlerin yayılması 60 dakika kadar sürebilir.
Terraform yapılandırma dosyasını oluşturma
Terraform yapılandırma dosyaları, Terraform'un oluşturduğu ve yönettiği altyapıyı tanımlar.
adlı
main.tfbir dosya oluşturun ve Terraform sürümünü tanımlamak ve Azure sağlayıcısını belirtmek için aşağıdaki kodu ekleyin:terraform { required_version = ">= 1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } } } provider "azurerm" { features {} }Azure kaynak grubu oluşturmak için aşağıdaki kodu
main.tfekleyin. Kaynak grubunun adını ve konumunu gerektiği gibi değiştirebilirsiniz.resource "azurerm_resource_group" "example" { name = "aks-rg" location = "East US" }
Terraform kullanarak sistem tarafından atanan yönetilen kimlikle AKS kümesi oluşturma
Sistem tarafından atanan yönetilen kimliğe sahip bir AKS kümesi oluşturmak için aşağıdaki kodu main.tf ekleyin:
resource "azurerm_kubernetes_cluster" "system_assigned" {
name = "aks-system"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
dns_prefix = "akssystem"
identity {
type = "SystemAssigned"
}
default_node_pool {
name = "system"
node_count = 1
vm_size = "Standard_DS2_v2"
}
}
Terraform kullanarak sistem tarafından atanan yönetilen kimlik için rol ataması ekleme
Sistem tarafından atanan yönetilen kimlik için rol ataması oluşturmak için aşağıdaki kodu main.tf ekleyin. Bu örnek, sistem tarafından atanan yönetilen kimliğe Ağ Katkıda Bulunanı rolünü atar. Rol atamasının kapsamı sanal ağı içeren kaynak grubuna göre belirlenmiştir.
resource "azurerm_role_assignment" "system_assigned_network_contributor" {
scope = azurerm_resource_group.example.id
role_definition_name = "Network Contributor"
principal_id = azurerm_kubernetes_cluster.system_assigned.identity[0].principal_id
}
Terraform'u başlatma
main.tf komutunu kullanarak terraform init dosyanızın bulunduğu dizinde Terraform'u başlatın. Bu komut Terraform ile Azure kaynaklarını yönetmek için gereken Azure sağlayıcısını indirir.
terraform init
Terraform için bir yürütme planı oluşturun
terraform plan komutunu kullanarak bir Terraform yürütme planı oluşturun. Bu komut, Terraform'un Azure aboneliğinizde oluşturacağı veya değiştireceği kaynakları gösterir.
terraform plan
Terraform yapılandırmasını uygulama
Yürütme planını gözden geçirip onayladıktan sonra komutunu kullanarak terraform apply Terraform yapılandırmasını uygulayın. Bu komut, Azure aboneliğinizdeki dosyanızda main.tf tanımlanan kaynakları oluşturur veya değiştirir.
terraform apply
Terraform dağıtımını doğrulayın
Terraform yapılandırmasını uyguladıktan sonra, çıktıyı filtrelemek için az aks show parametresiyle --query komutunu kullanarak ve kimlik bilgilerini görüntüleyerek dağıtımın doğruluğunu teyit edebilirsiniz. Örneğin:
az aks show \
--name <cluster-name> \
--resource-group <resource-group> \
--query identity.type \
--output tsv
İlgili içerik
AKS'de yönetilen kimlikler hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: