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 Connect. OpenID Connect adalah lapisan identitas yang dibangun di atas protokol OAuth 2.0. Untuk informasi selengkapnya tentang OpenID Connect, lihat dokumentasi OpenID Connect.
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.
Batasan
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 ataukubelogin
. Dengan Azure CLI dan modul Azure PowerShell, kedua perintah ini disertakan dan dikelola secara otomatis. Artinya, mereka ditingkatkan secara default dan berjalanaz 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 dankubectl
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
Buat grup sumber daya Azure menggunakan
az group create
perintah .az group create --name myResourceGroup --location centralus
Buat kluster AKS dan aktifkan akses administrasi untuk grup Microsoft Entra Anda menggunakan
az aks create
perintah .az aks create \ --resource-group myResourceGroup \ --name myManagedCluster \ --enable-aad \ --aad-admin-group-object-ids <id> [--aad-tenant-id <id>] \ --generate-ssh-keys
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 --resource-group MyResourceGroup --name 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 --resource-group myResourceGroup --name 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
Dapatkan kredensial pengguna untuk mengakses kluster Anda menggunakan
az aks get-credentials
perintah .az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
Ikuti instruksi Anda untuk masuk.
Atur
kubelogin
untuk menggunakan Azure CLI.kubelogin convert-kubeconfig -l azurecli
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 untukazure
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
- Pelajari tentang integrasi Microsoft Entra dengan Kubernetes RBAC.
- Pelajari lebih lanjut konsep identitas AKS dan Kubernetes.
- Pelajari cara menggunakan kubelogin untuk semua metode autentikasi Microsoft Entra yang didukung di AKS.
- Gunakan templat Azure Resource Manager (ARM) untuk membuat kluster yang diaktifkan ID Microsoft Entra yang dikelola AKS.
Azure Kubernetes Service