AKS denetim düzlemi için Microsoft Entra Id kimlik doğrulamasını etkinleştirme

Microsoft Entra tümleştirmesi, Microsoft Entra tümleştirme işlemini basitleştirir. Daha önce bir istemci ve sunucu uygulaması oluşturmanız gerekiyordu ve Microsoft Entra kiracısının Dizin Okuyucuları rol izinleri ataması gerekiyordu. Artık istemci ve sunucu uygulamalarını Sizin için Azure Kubernetes Service (AKS) kaynak sağlayıcısı yönetiyor.

Küme yöneticileri, kullanıcının kimliğine veya dizin grubu üyeliğine göre Kubernetes rol tabanlı erişim denetimini (Kubernetes RBAC) yapılandırabilir.

Microsoft Entra tümleştirme akışı hakkında daha fazla bilgiyi Microsoft Entra belgelerinde bulabilirsiniz.

Sınırlamalar

Microsoft Entra tümleştirmesi bir kümede etkinleştirildikten sonra devre dışı bırakılamaz.

Başlamadan önce

AKS eklentisini yüklemek için aşağıdaki öğelere sahip olduğunuzu doğrulayın:

  • Azure CLI sürüm 2.29.0 veya üzeri yüklü ve yapılandırılmış. Sürümü bulmak için komutunu çalıştırın az --version . Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI'yı yükleme.
  • En az kubectl veya 1.18.1 sürümüne sahip olmanız gerekiyor. Azure CLI ve Azure PowerShell modülü ile bu iki komut eklenir ve otomatik olarak yönetilir. Başka bir deyişle, bunlar varsayılan olarak yükseltilir ve çalıştırılması az aks install-cli gerekmez veya önerilmez. Otomatik işlem hattı kullanıyorsanız, doğru veya en son sürüm için yükseltmeleri yönetmeniz gerekir. Kubernetes'in ikincil sürümleri ve kubectl arasındaki fark bir sürümden fazla olmamalıdır. Aksi takdirde, kimlik doğrulama sorunları yanlış sürümde oluşur.
  • Bu yapılandırma, kümeniz için bir Microsoft Entra grubunuz olmasını gerektirir. Bu grup, yönetici izinleri vermek için kümede bir yönetici grubu olarak kaydedilir. Mevcut bir Microsoft Entra grubunuz yoksa komutunu kullanarak az ad group create bir grup oluşturabilirsiniz.

AKS kümenizde tümleştirmeyi etkinleştirme

İlk olarak kaynak grubu, küme adı, Microsoft Entra yönetici grubu nesne kimlikleri ve kiracı kimliği için ortam değişkenlerini ayarlayın. Aşağıdaki komutlarda bu değişkenleri yeniden kullanabilirsiniz.

export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myManagedCluster"
export AAD_ADMIN_GROUP_OBJECT_IDS="<group-object-id>"  # comma-separated for multiple groups
export AAD_TENANT_ID="<tenant-id>"
export LOCATION="centralus"

Yeni küme oluşturma

  1. az group create komutunu kullanarak bir Azure kaynak grubu oluşturun.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. Bir AKS kümesi oluşturun ve komutunu kullanarak az aks create Microsoft Entra grubunuz için yönetim erişimini etkinleştirin.

    az aks create \
      --resource-group $RESOURCE_GROUP \
      --name $CLUSTER_NAME \
      --enable-aad \
      --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
      --aad-tenant-id $AAD_TENANT_ID \
      --generate-ssh-keys
    

    Microsoft Entra Id kümesinin başarıyla oluşturulması, yanıt gövdesinde aşağıdaki bölüme sahiptir.

    "AADProfile": {
      "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
      ],
      "clientAppId": null,
      "managed": true,
      "serverAppId": null,
      "serverAppSecret": null,
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
    }
    

Var olan bir kümeyi kullanma

komutunu kullanarak mevcut Kubernetes RBAC özellikli kümenizde Microsoft Entra tümleştirmesini az aks update etkinleştirin. Kümenizde erişimi korumak için yönetici grubunuzu ayarladığınızdan emin olun.

az aks update \
  --resource-group $RESOURCE_GROUP \
  --name $CLUSTER_NAME \
  --enable-aad \
  --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
  --aad-tenant-id $AAD_TENANT_ID

Microsoft Entra ID kümesinin başarıyla etkinleştirilmesinin yanıt gövdesinde aşağıdaki bölüm bulunur:

"AADProfile": {
  "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

Mevcut kümeyi entegrasyona geçirin

Kümeniz eski Microsoft Entra tümleştirmesi kullanıyorsa komutuyla Microsoft Entra tümleştirmesine az aks update yükseltebilirsiniz.

Warning

Ücretsiz katman kümeleri yükseltme sırasında API sunucusu kapalı kalma süresiyle karşılaşabilir. İş dışı çalışma saatlerinizde yükseltme yapmanızı öneririz. Güncellemeden sonra kubeconfig içeriği değişir. Yeni kimlik bilgilerini az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name> dosyayla birleştirmek için komutunu çalıştırmanız kubeconfig gerekir.

az aks update \
  --resource-group $RESOURCE_GROUP \
  --name $CLUSTER_NAME \
  --enable-aad \
  --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
  --aad-tenant-id $AAD_TENANT_ID

Microsoft Entra ID kümesinin başarıyla gerçekleştirilmesi durumunda yanıt gövdesinde aşağıdaki bölüm bulunur:

"AADProfile": {
  "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

Etkin kümenize erişme

  1. komutunu kullanarak az aks get-credentials kümenize erişmek için kullanıcı kimlik bilgilerini alın.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Oturum açma yönergelerinizi izleyin.

  3. komutuyla kümedeki düğümleri kubectl get nodes görüntüleyin.

    kubectl get nodes
    

Kubernetes 1.24 veya üzerini çalıştıran kümeler, kubelogin otomatik olarak exec-plugin biçimini kullanır, bu nedenle etkileşimli Azure CLI oturumu açmak için el ile kubeconfig dönüştürme gerekmez. CI işlem hatları gibi etkileşimli olmayan senaryolar veya farklı bir kimlik doğrulama yöntemi (hizmet sorumlusu, yönetilen kimlik, iş yükü kimliği veya cihaz kodu) kullanmak için bkz. AKS'de kullanıcıların kimliğini doğrulamak için kubelogin kullanma.

Cam kırarak erişim

Kümenizin Kubernetes API sunucusunda Microsoft Entra Kimliği ile oturum açma işleminin çalışmadığı nadir durumlarda (örneğin, daha geniş bir Microsoft Entra hizmeti olayı sırasında), Entra tabanlı oturum açma geri yüklenene kadar kümeyi çalıştırmaya devam etmek için kümenin yerel yönetici hesabına geri dönebilirsiniz.

Note

Bu geri dönüş yalnızca Entra tabanlı oturum açmanın kendisi kullanılamadığında gereklidir. Sorununuz yanlış yapılandırılmış bir yönetici grubuysa (örneğin, grup silinmişse veya yanlış nesne kimliği ayarlanmışsa) buna ihtiyacınız yoktur; yönetici grubunu doğrudan az aks update --aad-admin-group-object-ids izni olan bir hesabı kullanarak güncelleştirin Microsoft.ContainerService/managedClusters/write .

Important

Bu iş akışı Microsoft Entra kimlik doğrulamasını atlar. Bunu yalnızca geçici geri dönüş olarak kullanın ve Microsoft Entra oturum açma geri yüklendikten sonra yerel hesapları yeniden devre dışı bırakın.

Acil durum yolunu kullanmak için küme kaynağında Azure Kubernetes Service Katılımcısı rolüne sahip olmanız gerekir. Bu rol, yerel hesapları yeniden etkinleştirmek için gereken iznin yanı sıra yerel küme yöneticisi kimlik bilgilerine erişim verir Microsoft.ContainerService/managedClusters/write . Azure Resource Manager tarafından değerlendirilir, bu nedenle Kubernetes API sunucusunun Microsoft Entra oturum açma yolundan bağımsız olarak çalışır.

  1. Kümede yerel hesaplar devre dışı bırakılırsa, bunları geçici olarak yeniden etkinleştirin.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-local-accounts
    
  2. az aks get-credentials komutunu --admin bayrağı ile kullanarak yerel küme yöneticisinin kimlik bilgilerini alın. Bu kimlik bilgisi, Microsoft Entra'yi atlayan sertifika tabanlı bir kubeconfig'dir.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --admin
    
  3. Microsoft Entra kullanılamaz durumdayken kümeyi çalıştırmak için kullanın kubectl . Microsoft Entra oturum açma işlemi yeniden çalıştığında, kümeyi güvenli temeline döndürmek için yerel hesapları devre dışı bırakın .

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --disable-local-accounts
    

Sonraki Adımlar