Mengaktifkan autentikasi ID Microsoft Entra untuk sarana kontrol AKS

Integrasi Microsoft Entra menyederhanakan proses integrasi Microsoft Entra. Sebelumnya, Anda diharuskan membuat aplikasi klien dan server, dan penyewa Microsoft Entra harus menetapkan izin peran Pembaca Direktori . Sekarang, penyedia sumber daya Azure Kubernetes Service (AKS) mengelola aplikasi klien dan server untuk Anda.

Administrator kluster dapat mengonfigurasi kontrol akses berbasis peran Kubernetes (Kubernetes RBAC) berdasarkan identitas pengguna atau keanggotaan grup direktori.

Pelajari selengkapnya tentang alur integrasi Microsoft Entra dalam dokumentasi Microsoft Entra.

Keterbatasan

Integrasi Microsoft Entra tidak dapat dinonaktifkan setelah diaktifkan pada kluster.

Sebelum Anda mulai

Untuk menginstal addon AKS, verifikasi bahwa Anda memiliki item berikut:

  • Anda memiliki Azure CLI versi 2.29.0 atau yang lebih baru yang diinstal dan dikonfigurasi. Untuk menemukan versi, jalankan az --version perintah . Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.
  • Anda perlu kubectl dengan versi minimum 1.18.1 atau kubelogin. Dengan Azure CLI dan modul Azure PowerShell, kedua perintah ini disertakan dan dikelola secara otomatis. Artinya, mereka sudah ditingkatkan secara otomatis dan pengoperasian az aks install-cli tidak diperlukan atau disarankan. Jika Anda menggunakan alur otomatis, Anda perlu mengelola peningkatan untuk versi yang benar atau terbaru. Perbedaan antara versi minor Kubernetes dan kubectl seharusnya tidak lebih dari satu versi. Jika tidak, masalah autentikasi terjadi pada versi yang salah.
  • Konfigurasi ini mengharuskan Anda memiliki grup Microsoft Entra untuk kluster Anda. Grup ini terdaftar sebagai grup admin pada kluster untuk memberikan izin admin. Jika Anda tidak memiliki grup Microsoft Entra yang sudah ada, Anda dapat membuatnya menggunakan az ad group create perintah .

Mengaktifkan integrasi pada kluster AKS Anda

Pertama, atur variabel lingkungan untuk grup sumber daya, nama kluster, ID objek grup admin Microsoft Entra, dan ID penyewa. Gunakan kembali variabel ini dalam perintah berikut.

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"

Membuat kluster baru

  1. Buat grup sumber daya Azure menggunakan perintah az group create.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. Buat kluster AKS dan aktifkan akses administrasi untuk grup Microsoft Entra Anda menggunakan az aks create perintah .

    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
    

    Pembuatan kluster ID Microsoft Entra yang berhasil memiliki bagian berikut dalam isi respons.

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

Menggunakan kluster yang ada

Aktifkan integrasi Microsoft Entra pada kluster yang sudah diaktifkan RBAC Kubernetes dengan menggunakan perintah az aks update. Pastikan untuk mengatur grup admin Anda agar mempertahankan akses pada kluster Anda.

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

Aktivasi kluster ID Microsoft Entra yang berhasil memiliki bagian berikut dalam isi respons:

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

Memigrasikan kluster warisan ke integrasi

Jika kluster Anda menggunakan integrasi Microsoft Entra warisan, Anda dapat meningkatkan ke integrasi Microsoft Entra melalui az aks update perintah .

Warning

Kluster free tier mungkin mengalami downtime server API selama peningkatan. Sebaiknya tingkatkan di luar jam kerja Anda. Setelah peningkatan, konten kubeconfig berubah. Anda perlu menjalankan az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name> untuk menggabungkan kredensial baru ke dalam file kubeconfig.

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

Migrasi kluster ID Microsoft Entra yang berhasil memiliki bagian berikut dalam isi respons:

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

Mengakses kluster yang diaktifkan

  1. Dapatkan kredensial pengguna untuk mengakses kluster Anda menggunakan az aks get-credentials perintah .

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Ikuti instruksi masuk Anda.

  3. Lihat simpul di kluster dengan kubectl get nodes perintah .

    kubectl get nodes
    

Kluster yang menjalankan Kubernetes 1.24 atau yang lebih baru secara otomatis menggunakan kubelogin format exec-plugin, sehingga tidak diperlukan konversi manual kubeconfig untuk masuk Azure CLI interaktif. Untuk skenario non-interaktif seperti alur CI, atau untuk menggunakan metode autentikasi yang berbeda (perwakilan layanan, identitas terkelola, identitas beban kerja, atau kode perangkat), lihat Menggunakan kubelogin untuk mengautentikasi pengguna di AKS.

Akses darurat

Dalam kejadian langka saat Microsoft Entra ID untuk masuk ke server API Kubernetes kluster Anda tidak berfungsi — misalnya, selama insiden layanan Microsoft Entra yang lebih luas — Anda dapat kembali ke akun admin lokal kluster untuk terus beroperasi hingga autentikasi berbasis Entra dipulihkan.

Note

Fallback ini hanya diperlukan ketika pencatatan masuk berbasis Entra itu sendiri tidak tersedia. Jika masalah Anda adalah grup admin yang salah dikonfigurasi (misalnya, grup dihapus atau ID objek yang salah diatur), Anda tidak memerlukannya — perbarui grup admin secara langsung dengan az aks update --aad-admin-group-object-ids menggunakan akun yang memiliki Microsoft.ContainerService/managedClusters/write izin.

Important

Alur kerja ini melewati autentikasi Microsoft Entra. Gunakan hanya sebagai cadangan sementara, dan nonaktifkan akun lokal lagi setelah pemulihan masuk akun Microsoft Entra.

Untuk menggunakan jalur break-glass, Anda memerlukan peran Kontributor Azure Kubernetes Service pada sumber daya kluster. Peran ini memberikan izin yang Microsoft.ContainerService/managedClusters/write diperlukan untuk mengaktifkan kembali akun lokal, ditambah akses ke kredensial admin kluster lokal. Ini dievaluasi oleh Azure Resource Manager, sehingga berfungsi secara independen dari jalur masuk Microsoft Entra ke server API Kubernetes.

  1. Jika akun lokal dinonaktifkan pada kluster, aktifkan kembali untuk sementara.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-local-accounts
    
  2. Ambil kredensial admin-kluster lokal dengan menggunakan perintah az aks get-credentials dan opsi --admin. Kredensial ini adalah kubeconfig berbasis sertifikat yang melewati Microsoft Entra.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --admin
    
  3. Gunakan kubectl untuk mengoperasikan kluster saat Microsoft Entra tidak tersedia. Setelah masuk Microsoft Entra berfungsi lagi, nonaktifkan akun lokal untuk mengembalikan kluster ke baseline yang aman.

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

Langkah berikutnya