Mengaktifkan autentikasi identitas terkelola Azure untuk kluster Kube dengan kubelogin

Integrasi Microsoft Entra yang dikelola AKS 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 AKS mengelola aplikasi klien dan server untuk Anda.

Operator klaster juga dapat mengonfigurasi kontrol akses berbasis peran Kube (Kube RBAC) berdasarkan identitas pengguna atau keanggotaan grup direktori. Autentikasi Microsoft Entra disediakan untuk kluster AKS dengan OpenID Koneksi. OpenID Connect adalah lapisan identitas yang dibangun di atas protokol OAuth 2.0. Untuk informasi selengkapnya tentang Koneksi OpenID, lihat dokumentasi Koneksi OpenID.

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

Artikel ini menyediakan detail tentang cara mengaktifkan dan menggunakan identitas terkelola untuk sumber daya Azure dengan kluster AKS Anda.

Pembatasan

Berikut ini adalah batasan yang mengintegrasikan autentikasi identitas terkelola Azure di AKS.

  • Integrasi tidak dapat dinonaktifkan setelah ditambahkan.
  • Penurunan dari kluster terintegrasi ke kluster ID Microsoft Entra warisan tidak didukung.
  • Kluster tanpa dukungan RBAC Kubernetes tidak dapat menambahkan integrasi.

Sebelum Anda mulai

Persyaratan berikut perlu dipenuhi untuk menginstal addon AKS dengan benar untuk identitas terkelola.

  • Anda memiliki Azure CLI versi 2.29.0 atau yang lebih baru yang diinstal dan dikonfigurasi. Jalankan az --version untuk menemukan versinya. 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 ditingkatkan secara default dan berjalan 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.
  • Jika Anda menggunakan helm, Anda memerlukan versi minimum helm 3.3.
  • 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 .

Catatan

Kluster terintegrasi Microsoft Entra menggunakan versi Kubernetes yang lebih baru dari versi 1.24 secara otomatis menggunakan format .kubelogin Dimulai dengan Kubernetes versi 1.24, format default kredensial clusterUser untuk kluster ID Microsoft Entra adalah exec, yang memerlukan kubelogin biner dalam JALUR eksekusi. Tidak ada perubahan perilaku untuk kluster Entra non-Microsoft, atau kluster ID Microsoft Entra yang menjalankan versi yang lebih lama dari 1.24. Unduhan yang ada kubeconfig terus berfungsi. Format parameter kueri opsional disertakan saat mendapatkan kredensial clusterUser untuk menimpa perubahan perilaku default. Anda dapat secara eksplisit menentukan format ke azure jika Anda perlu mempertahankan format lama kubeconfig .

Mengaktifkan integrasi pada kluster AKS Anda

Membuat kluster baru

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

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

    az aks create -g myResourceGroup -n myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]
    

    Pembuatan kluster MICROSOFT Entra ID yang dikelola AKS memiliki bagian berikut dalam isi respons:

    "AADProfile": {
        "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
        ],
        "clientAppId": null,
        "managed": true,
        "serverAppId": null,
        "serverAppSecret": null,
        "tenantId": "72f9****-****-****-****-****d011db47"
    }
    

Menggunakan kluster yang ada

Aktifkan integrasi Microsoft Entra yang dikelola AKS pada kluster yang diaktifkan RBAC Kubernetes yang ada menggunakan az aks update perintah . Pastikan untuk mengatur grup admin Anda untuk menyimpan akses di kluster Anda.

az aks update -g MyResourceGroup -n myManagedCluster --enable-aad --aad-admin-group-object-ids <id-1>,<id-2> [--aad-tenant-id <id>]

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

"AADProfile": {
    "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
    ],
    "clientAppId": null,
    "managed": true,
    "serverAppId": null,
    "serverAppSecret": null,
    "tenantId": "72f9****-****-****-****-****d011db47"
    }

Memigrasikan kluster warisan ke integrasi

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

Peringatan

Kluster tingkat gratis mungkin mengalami waktu henti server API selama peningkatan. Sebaiknya tingkatkan selama jam nonbusiness 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 -g myResourceGroup -n myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]

Keberhasilan migrasi kluster MICROSOFT Entra ID yang dikelola AKS memiliki bagian berikut dalam isi respons:

"AADProfile": {
    "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
    ],
    "clientAppId": null,
    "managed": true,
    "serverAppId": null,
    "serverAppSecret": null,
    "tenantId": "72f9****-****-****-****-****d011db47"
    }

Mengakses kluster yang diaktifkan

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

    az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
    
  2. Ikuti instruksi Anda untuk masuk.

  3. Atur kubelogin untuk menggunakan Azure CLI.

    kubelogin convert-kubeconfig -l azurecli
    
  4. Lihat simpul di kluster dengan kubectl get nodes perintah .

    kubectl get nodes
    

Masuk non-interaktif dengan kubelogin

Ada beberapa skenario non-interaktif yang tidak mendukung kubectl. Dalam kasus ini, gunakan kubelogin untuk menyambungkan ke kluster dengan kredensial perwakilan layanan non-interaktif untuk melakukan alur integrasi berkelanjutan.

Catatan

Kluster terintegrasi Microsoft Entra menggunakan versi Kubernetes yang lebih baru dari versi 1.24 secara otomatis menggunakan format .kubelogin Dimulai dengan Kubernetes versi 1.24, format default kredensial clusterUser untuk kluster ID Microsoft Entra adalah exec, yang memerlukan kubelogin biner dalam JALUR eksekusi. Tidak ada perubahan perilaku untuk kluster Entra non-Microsoft, atau kluster ID Microsoft Entra yang menjalankan versi yang lebih lama dari 1.24. Unduhan yang ada kubeconfig terus berfungsi. Format parameter kueri opsional disertakan saat mendapatkan kredensial clusterUser untuk menimpa perubahan perilaku default. Anda dapat secara eksplisit menentukan format ke azure jika Anda perlu mempertahankan format lama kubeconfig .

  • Saat mendapatkan kredensial clusterUser, Anda dapat menggunakan format parameter kueri untuk menimpa perilaku default. Anda dapat mengatur nilai untuk azure menggunakan format kubeconfig asli:

    az aks get-credentials --format azure
    
  • Jika kluster terintegrasi Microsoft Entra Anda menggunakan Kubernetes versi 1.24 atau yang lebih rendah, Anda perlu mengonversi format kubeconfig secara manual.

    export KUBECONFIG=/path/to/kubeconfig
    kubelogin convert-kubeconfig
    

Catatan

Jika Anda menerima kesalahan pesan : Plugin auth Azure telah dihapus., Anda perlu menjalankan perintah kubelogin convert-kubeconfig untuk mengonversi format kubeconfig secara manual.

Untuk informasi selengkapnya, Anda dapat merujuk ke Masalah Umum Azure Kubelogin.

Pecahkan masalah akses

Penting

Langkah yang dijelaskan di bagian ini menyarankan metode autentikasi alternatif dibandingkan dengan autentikasi grup Microsoft Entra normal. Gunakan opsi ini hanya dalam keadaan darurat.

Jika Anda tidak memiliki akses administratif ke grup Microsoft Entra yang valid, Anda dapat mengikuti solusi ini. Masuk dengan akun yang merupakan anggota peran Admin Kluster Azure Kubernetes Service dan berikan kredensial admin grup atau penyewa Anda untuk mengakses kluster Anda.

Langkah berikutnya