Menggunakan identitas terkelola di Azure Kubernetes Service (AKS)
Kluster Azure Kubernetes Service (AKS) memerlukan identitas Microsoft Entra untuk mengakses sumber daya Azure seperti load balancer dan disk terkelola. Identitas terkelola untuk sumber daya Azure adalah cara yang disarankan untuk mengotorisasi akses dari kluster AKS ke layanan Azure lainnya.
Anda dapat menggunakan identitas terkelola untuk mengotorisasi akses dari kluster AKS ke layanan apa pun yang mendukung otorisasi Microsoft Entra, tanpa perlu mengelola kredensial atau menyertakannya dalam kode Anda. Anda menetapkan ke identitas terkelola peran kontrol akses berbasis peran Azure (Azure RBAC) untuk memberinya izin ke sumber daya tertentu di Azure. Misalnya, Anda dapat memberikan izin ke identitas terkelola untuk mengakses rahasia di brankas kunci Azure untuk digunakan oleh kluster. Untuk informasi selengkapnya tentang Azure RBAC, lihat Apa itu kontrol akses berbasis peran Azure (Azure RBAC)?.
Artikel ini memperlihatkan cara mengaktifkan jenis identitas terkelola berikut pada kluster AKS baru atau yang sudah ada:
- Identitas terkelola yang ditetapkan sistem. Identitas terkelola yang ditetapkan sistem dikaitkan dengan satu sumber daya Azure, seperti kluster AKS. Ini hanya ada untuk siklus hidup kluster.
- Identitas terkelola yang ditetapkan pengguna. Identitas terkelola yang ditetapkan pengguna adalah sumber daya Azure mandiri yang dapat digunakan kluster AKS untuk mengotorisasi akses ke layanan Azure lainnya. Ini bertahan secara terpisah dari kluster AKS dan dapat digunakan oleh beberapa sumber daya Azure.
- Identitas terkelola kubelet yang telah dibuat sebelumnya. Identitas terkelola kubelet yang telah dibuat sebelumnya adalah identitas opsional yang ditetapkan pengguna yang dapat digunakan kubelet untuk mengakses sumber daya lain di Azure. Jika Anda tidak menentukan identitas terkelola yang ditetapkan pengguna untuk kubelet, AKS membuat identitas kubelet yang ditetapkan pengguna di grup sumber daya simpul.
Untuk mempelajari selengkapnya tentang identitas terkelola, lihat Identitas terkelola untuk sumber daya Azure.
Kluster AKS menggunakan identitas terkelola untuk meminta token dari Microsoft Entra. Token ini digunakan untuk mengotorisasi akses ke sumber daya lain yang berjalan di Azure. Anda dapat menetapkan peran Azure RBAC ke identitas terkelola untuk memberikan izin kluster Anda untuk mengakses sumber daya tertentu. Misalnya, jika kluster Anda perlu mengakses rahasia di brankas kunci Azure, Anda dapat menetapkan ke identitas terkelola kluster peran Azure RBAC yang memberikan izin tersebut.
Identitas terkelola dapat ditetapkan sistem atau ditetapkan pengguna. Kedua jenis identitas terkelola ini mirip dengan yang dapat Anda gunakan untuk mengotorisasi akses ke sumber daya Azure dari kluster AKS Anda. Perbedaan utama di antara mereka adalah bahwa identitas terkelola yang ditetapkan sistem dikaitkan dengan satu sumber daya Azure seperti kluster AKS, sementara identitas terkelola yang ditetapkan pengguna itu sendiri adalah sumber daya Azure mandiri. Untuk detail selengkapnya tentang perbedaan antara jenis identitas terkelola, lihat Jenis identitas terkelola di Identitas terkelola untuk sumber daya Azure.
Kedua jenis identitas terkelola dikelola oleh platform Azure, sehingga Anda dapat mengotorisasi akses dari aplikasi Anda tanpa perlu menyediakan atau memutar rahasia apa pun. Azure mengelola kredensial identitas untuk Anda.
Saat Anda menyebarkan kluster AKS, identitas terkelola yang ditetapkan sistem dibuat untuk Anda secara default. Anda juga dapat membuat kluster dengan identitas terkelola yang ditetapkan pengguna.
Anda juga dapat membuat kluster dengan perwakilan layanan aplikasi, bukan identitas terkelola. Identitas terkelola direkomendasikan daripada perwakilan layanan untuk keamanan dan kemudahan penggunaan. Untuk informasi selengkapnya tentang membuat kluster dengan perwakilan layanan, lihat Menggunakan perwakilan layanan dengan Azure Kubernetes Service (AKS).
Anda dapat memperbarui kluster yang ada untuk menggunakan identitas terkelola dari perwakilan layanan aplikasi. Anda juga dapat memperbarui kluster yang ada ke jenis identitas terkelola yang berbeda. Jika kluster Anda sudah menggunakan identitas terkelola dan identitas diubah, misalnya jika Anda memperbarui jenis identitas kluster dari yang ditetapkan sistem ke yang ditetapkan pengguna, maka ada penundaan saat komponen sarana kontrol beralih ke identitas baru. Komponen sarana kontrol terus menggunakan identitas lama sampai tokennya kedaluwarsa. Setelah token disegarkan, token beralih ke identitas baru. Proses ini dapat memakan waktu beberapa jam.
Jenis identitas yang ditetapkan sistem dan ditetapkan pengguna berbeda dari identitas Beban Kerja Microsoft Entra, yang dimaksudkan untuk digunakan oleh aplikasi yang berjalan pada pod.
Pastikan Anda menginstal Azure CLI versi 2.23.0 atau yang lebih baru. Jalankan
az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.Untuk menggunakan identitas terkelola kubelet yang telah dibuat sebelumnya, Anda memerlukan Azure CLI versi 2.26.0 atau yang lebih baru terinstal.
Untuk memperbarui kluster yang ada untuk menggunakan identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna, Anda memerlukan Azure CLI versi 2.49.0 atau yang lebih baru terinstal.
Sebelum menjalankan contoh dalam artikel ini, atur langganan Anda sebagai langganan aktif saat ini dengan memanggil perintah az account set dan meneruskan ID langganan Anda.
az account set --subscription <subscription-id>
Buat juga grup sumber daya Azure jika Anda belum memilikinya az group create
dengan memanggil perintah .
az group create \
--name myResourceGroup \
--location westus2
Identitas terkelola yang ditetapkan sistem adalah identitas yang terkait dengan kluster AKS atau sumber daya Azure lainnya. Identitas terkelola yang ditetapkan sistem terkait dengan siklus hidup kluster. Ketika kluster dihapus, identitas terkelola yang ditetapkan sistem juga dihapus.
Kluster AKS dapat menggunakan identitas terkelola yang ditetapkan sistem untuk mengotorisasi akses ke sumber daya lain yang berjalan di Azure. Anda dapat menetapkan peran Azure RBAC ke identitas terkelola yang ditetapkan sistem untuk memberikan izin kluster untuk mengakses sumber daya tertentu. Misalnya, jika kluster Anda perlu mengakses rahasia di brankas kunci Azure, Anda dapat menetapkan ke identitas terkelola yang ditetapkan sistem peran Azure RBAC yang memberikan izin tersebut.
Untuk mengaktifkan identitas terkelola yang ditetapkan sistem pada kluster baru, panggil az aks create
. Identitas terkelola yang ditetapkan sistem diaktifkan pada kluster baru secara default.
Buat kluster AKS menggunakan az aks create
perintah .
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--generate-ssh-keys
Untuk memverifikasi bahwa identitas terkelola yang ditetapkan sistem diaktifkan untuk kluster setelah dibuat, lihat Menentukan jenis identitas terkelola mana yang digunakan kluster.
Untuk memperbarui kluster AKS yang ada yang menggunakan perwakilan layanan untuk menggunakan identitas terkelola yang ditetapkan sistem, jalankan az aks update
perintah dengan --enable-managed-identity
parameter .
az aks update \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-managed-identity
Setelah Anda memperbarui kluster untuk menggunakan identitas terkelola yang ditetapkan sistem alih-alih perwakilan layanan, sarana kontrol dan pod menggunakan identitas terkelola yang ditetapkan sistem untuk otorisasi saat mengakses layanan lain di Azure. Kubelet terus menggunakan perwakilan layanan sampai Anda juga meningkatkan agentpool Anda. Anda dapat menggunakan az aks nodepool upgrade --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-image-only
perintah pada simpul Anda untuk memperbarui ke identitas terkelola. Peningkatan kumpulan simpul menyebabkan waktu henti untuk kluster AKS Anda karena simpul di kumpulan simpul berkode, dikosongkan, dan digambarkan ulang.
Catatan
Ingatlah informasi berikut saat memperbarui kluster Anda:
Pembaruan hanya berfungsi jika ada pembaruan VHD yang akan digunakan. Jika Anda menjalankan VHD terbaru, Anda harus menunggu hingga VHD berikutnya tersedia untuk melakukan pembaruan.
Azure CLI memastikan izin addon Anda diatur dengan benar setelah migrasi. Jika Anda tidak menggunakan Azure CLI untuk melakukan operasi migrasi, Anda perlu menangani izin identitas addon sendiri. Misalnya menggunakan templat Azure Resource Manager (ARM), lihat Menetapkan peran Azure menggunakan templat ARM.
Jika kluster Anda menggunakan
--attach-acr
untuk menarik dari gambar dari Azure Container Registry (ACR), Anda perlu menjalankanaz aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR resource ID>
perintah setelah memperbarui kluster Anda untuk membiarkan kubelet yang baru dibuat digunakan untuk identitas terkelola mendapatkan izin untuk menarik dari ACR. Jika tidak, Anda tidak akan dapat menarik dari ACR setelah pembaruan.
Anda dapat menetapkan peran Azure RBAC ke identitas terkelola yang ditetapkan sistem untuk memberikan izin kluster pada sumber daya Azure lain. Azure RBAC mendukung definisi peran bawaan dan kustom yang menentukan tingkat izin. Untuk informasi selengkapnya tentang menetapkan peran Azure RBAC, lihat Langkah-langkah untuk menetapkan peran Azure.
Saat menetapkan peran Azure RBAC ke identitas terkelola, Anda harus menentukan cakupan untuk peran tersebut. Secara umum, ini adalah praktik terbaik untuk membatasi cakupan peran hingga hak istimewa minimum yang diperlukan oleh identitas terkelola. Untuk informasi selengkapnya tentang cakupan peran Azure RBAC, lihat Memahami cakupan untuk Azure RBAC.
Saat Anda membuat dan menggunakan VNet Anda sendiri, disk Azure terlampir, alamat IP statis, tabel rute, atau identitas kubelet yang ditetapkan pengguna di mana sumber daya berada di luar grup sumber daya simpul pekerja, Azure CLI menambahkan penetapan peran secara otomatis. Jika Anda menggunakan templat ARM atau metode lain, gunakan ID utama identitas terkelola untuk melakukan penetapan peran.
Jika Anda tidak menggunakan Azure CLI, tetapi Anda menggunakan VNet Anda sendiri, disk Azure terlampir, alamat IP statis, tabel rute, atau identitas kubelet yang ditetapkan pengguna yang berada di luar grup sumber daya simpul pekerja, sebaiknya gunakan identitas terkelola yang ditetapkan pengguna untuk sarana kontrol. Ketika sarana kontrol menggunakan identitas terkelola yang ditetapkan sistem, identitas dibuat pada saat yang sama dengan kluster, sehingga penetapan peran tidak dapat dilakukan sampai kluster dibuat.
Untuk menetapkan peran Azure RBAC ke identitas terkelola yang ditetapkan sistem kluster, Anda terlebih dahulu memerlukan ID utama untuk identitas terkelola. Dapatkan ID utama untuk identitas terkelola yang ditetapkan sistem kluster dengan memanggil az aks show
perintah .
# Get the principal ID for a system-assigned managed identity.
CLIENT_ID=$(az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query identity.principalId \
--output tsv)
Untuk memberikan izin identitas terkelola yang ditetapkan sistem ke sumber daya di Azure, panggil az role assignment create
perintah untuk menetapkan peran Azure RBAC ke identitas terkelola.
Untuk VNet, disk Azure terlampir, alamat IP statis, atau tabel rute di luar grup sumber daya simpul pekerja default, Anda perlu menetapkan Network Contributor
peran pada grup sumber daya kustom.
Misalnya, tetapkan Network Contributor
peran pada grup sumber daya kustom menggunakan az role assignment create
perintah . --scope
Untuk parameter , berikan ID sumber daya untuk grup sumber daya untuk kluster.
az role assignment create \
--assignee $CLIENT_ID \
--role "Network Contributor" \
--scope "<resource-group-id>"
Catatan
Diperlukan waktu hingga 60 menit agar izin yang diberikan ke identitas terkelola kluster Anda disebarluaskan.
Identitas terkelola yang ditetapkan pengguna adalah sumber daya Azure mandiri. Saat Anda membuat kluster dengan identitas terkelola yang ditetapkan pengguna untuk sarana kontrol, sumber daya identitas terkelola yang ditetapkan pengguna harus ada sebelum pembuatan kluster. Fitur ini memungkinkan skenario seperti membuat kluster dengan VNet kustom atau dengan jenis perutean yang ditentukan pengguna (UDR) keluar.
Jika Anda belum memiliki sumber daya identitas terkelola yang ditetapkan pengguna, buat sumber daya menggunakan az identity create
perintah .
az identity create \
--name myIdentity \
--resource-group myResourceGroup
Output Anda harus menyerupai contoh output berikut:
{
"clientId": "<client-id>",
"clientSecretUrl": "<clientSecretUrl>",
"id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
"location": "westus2",
"name": "myIdentity",
"principalId": "<principal-id>",
"resourceGroup": "myResourceGroup",
"tags": {},
"tenantId": "<tenant-id>",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}
Untuk mendapatkan ID utama identitas terkelola yang ditetapkan pengguna, panggil az identity show dan query pada principalId
properti :
CLIENT_ID=$(az identity show \
--name myIdentity \
--resource-group myResourceGroup \
--query principalId \
--output tsv)
Untuk membuat kluster dengan identitas terkelola yang ditetapkan pengguna, Anda akan memerlukan ID sumber daya untuk identitas terkelola baru. Untuk mendapatkan ID sumber daya identitas terkelola yang ditetapkan pengguna, panggil az aks show dan query pada id
properti :
RESOURCE_ID=$(az identity show \
--name myIdentity \
--resource-group myResourceGroup \
--query id \
--output tsv)
Sebelum Anda membuat kluster, tambahkan penetapan peran untuk identitas terkelola dengan memanggil az role assignment create
perintah .
Contoh berikut menetapkan peran Pengguna Rahasia Key Vault ke identitas terkelola yang ditetapkan pengguna untuk memberinya izin untuk mengakses rahasia di brankas kunci. Penetapan peran dilingkup ke sumber daya brankas kunci:
az role assignment create \
--assignee $CLIENT_ID \
--role "Key Vault Secrets User" \
--scope "<keyvault-resource-id>"
Catatan
Mungkin perlu waktu hingga 60 menit agar izin yang diberikan ke identitas terkelola kluster Anda disebarluaskan.
Untuk membuat kluster AKS dengan identitas terkelola yang ditetapkan pengguna, panggil az aks create
perintah . Sertakan --assign-identity
parameter dan teruskan ID sumber daya untuk identitas terkelola yang ditetapkan pengguna:
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--network-plugin azure \
--vnet-subnet-id <subnet-id> \
--dns-service-ip 10.2.0.10 \
--service-cidr 10.2.0.0/24 \
--assign-identity $RESOURCE_ID \
--generate-ssh-keys
Catatan
Wilayah USDOD Central, USDOD East, dan USGov Iowa di cloud Azure US Government tidak mendukung pembuatan kluster dengan identitas terkelola yang ditetapkan pengguna.
Untuk memperbarui kluster yang ada untuk menggunakan identitas terkelola yang ditetapkan pengguna, panggil az aks update
perintah . Sertakan --assign-identity
parameter dan teruskan ID sumber daya untuk identitas terkelola yang ditetapkan pengguna:
az aks update \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-managed-identity \
--assign-identity $RESOURCE_ID
Output untuk pembaruan kluster yang berhasil untuk menggunakan identitas terkelola yang ditetapkan pengguna harus menyerupai contoh output berikut:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
Catatan
Memigrasikan identitas terkelola untuk sarana kontrol dari yang ditetapkan sistem ke yang ditetapkan pengguna tidak mengakibatkan waktu henti untuk sarana kontrol dan kumpulan agen. Komponen sarana kontrol berlanjut ke identitas lama yang ditetapkan sistem hingga beberapa jam, hingga refresh token berikutnya.
Untuk menentukan jenis identitas terkelola yang digunakan kluster AKS yang ada, panggil perintah az aks show dan kueri untuk properti jenis identitas.
az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query identity.type \
--output tsv
Jika kluster menggunakan identitas terkelola, nilai properti jenis akan menjadi SystemAssigned atau UserAssigned.
Jika kluster menggunakan perwakilan layanan, nilai properti jenis akan null. Pertimbangkan untuk meningkatkan kluster Anda untuk menggunakan identitas terkelola.
Identitas kubelet yang telah dibuat sebelumnya adalah identitas terkelola yang ditetapkan pengguna yang ada sebelum pembuatan kluster. Fitur ini memungkinkan skenario seperti koneksi ke Azure Container Registry (ACR) selama pembuatan kluster.
Catatan
AKS membuat identitas kubelet yang ditetapkan pengguna di grup sumber daya simpul jika Anda tidak menentukan identitas terkelola kubelet Anda sendiri.
Untuk identitas kubelet yang ditetapkan pengguna di luar grup sumber daya simpul pekerja default, Anda perlu menetapkan peran Operator Identitas Terkelola pada identitas kubelet untuk identitas terkelola sarana kontrol.
Jika Anda tidak memiliki identitas terkelola kubelet, buat identitas menggunakan az identity create
perintah .
az identity create \
--name myKubeletIdentity \
--resource-group myResourceGroup
Output Anda harus menyerupai contoh output berikut:
{
"clientId": "<client-id>",
"clientSecretUrl": "<clientSecretUrl>",
"id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity",
"location": "westus2",
"name": "myKubeletIdentity",
"principalId": "<principal-id>",
"resourceGroup": "myResourceGroup",
"tags": {},
"tenantId": "<tenant-id>",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}
Tetapkan ACRPull
peran pada identitas kubelet menggunakan az role assignment create
perintah . Berikan ID utama identitas kubelet untuk variabel $KUBELET_CLIENT_ID dan berikan ID registri ACR untuk variabel $ACR_REGISTRY_ID.
az role assignment create \
--assignee $KUBELET_CLIENT_ID \
--role "acrpull" \
--scope "$ACR_REGISTRY_ID"
Sekarang Anda dapat membuat kluster AKS dengan identitas yang ada. Pastikan untuk memberikan ID sumber daya identitas terkelola untuk sarana kontrol dengan menyertakan assign-identity
argumen, dan identitas terkelola kubelet menggunakan assign-kubelet-identity
argumen .
Buat kluster AKS dengan identitas Anda yang ada menggunakan az aks create
perintah .
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--network-plugin azure \
--vnet-subnet-id <subnet-id> \
--dns-service-ip 10.2.0.10 \
--service-cidr 10.2.0.0/24 \
--assign-identity <identity-resource-id> \
--assign-kubelet-identity <kubelet-identity-resource-id> \
--generate-ssh-keys
Pembuatan kluster AKS yang berhasil menggunakan identitas terkelola kubelet harus menghasilkan output yang mirip dengan yang berikut ini:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
"identityProfile": {
"kubeletidentity": {
"clientId": "<client-id>",
"objectId": "<object-id>",
"resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
}
},
Untuk memperbarui kluster yang ada untuk menggunakan identitas terkelola kubelet, pertama-tama dapatkan identitas terkelola sarana kontrol saat ini untuk kluster AKS Anda.
Peringatan
Memperbarui identitas terkelola kubelet meningkatkan kumpulan simpul kluster AKS Anda, yang menyebabkan waktu henti untuk kluster karena node di kumpulan simpul dikodekan/dikosongkan dan dicitrakan ulang.
Konfirmasikan kluster AKS Anda menggunakan identitas terkelola yang ditetapkan pengguna menggunakan
az aks show
perintah .az aks show \ --resource-group <RGName> \ --name <ClusterName> \ --query "servicePrincipalProfile"
Jika kluster Anda menggunakan identitas terkelola, output akan ditampilkan
clientId
dengan nilai msi. Kluster yang menggunakan perwakilan layanan menampilkan ID objek. Contohnya:# The cluster is using a managed identity. { "clientId": "msi" }
Setelah mengonfirmasi kluster Anda menggunakan identitas terkelola, temukan ID sumber daya identitas terkelola menggunakan
az aks show
perintah .az aks show --resource-group <RGName> \ --name <ClusterName> \ --query "identity"
Untuk identitas terkelola yang ditetapkan pengguna, output Anda akan terlihat mirip dengan contoh output berikut:
{ "principalId": null, "tenantId": null, "type": "UserAssigned", "userAssignedIdentities": <identity-resource-id> "clientId": "<client-id>", "principalId": "<principal-id>" },
Perbarui kluster Anda dengan identitas yang ada menggunakan
az aks update
perintah . Berikan ID sumber daya identitas terkelola yang ditetapkan pengguna untuk sarana kontrol untukassign-identity
argumen. Berikan ID sumber daya identitas terkelola kubelet untukassign-kubelet-identity
argumen .az aks update \ --resource-group myResourceGroup \ --name myManagedCluster \ --enable-managed-identity \ --assign-identity <identity-resource-id> \ --assign-kubelet-identity <kubelet-identity-resource-id>
Output Anda untuk pembaruan kluster yang berhasil menggunakan identitas terkelola kubelet Anda sendiri harus menyerupai contoh output berikut:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
"identityProfile": {
"kubeletidentity": {
"clientId": "<client-id>",
"objectId": "<object-id>",
"resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
}
},
Catatan
Jika kluster Anda menggunakan --attach-acr
untuk menarik gambar dari Azure Container Registry, jalankan az aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR Resource ID>
perintah setelah memperbarui kluster Anda untuk membiarkan kubelet yang baru dibuat digunakan untuk identitas terkelola mendapatkan izin untuk menarik dari ACR. Jika tidak, Anda tidak akan dapat mengambil data dari ACR setelah peningkatan.
Untuk mendapatkan properti identitas kubelet, panggil az aks show dan query pada identityProfile.kubeletidentity
properti .
az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query "identityProfile.kubeletidentity"
Perhatikan batasan berikut untuk identitas kubelet yang telah dibuat sebelumnya:
- Identitas kubelet yang telah dibuat sebelumnya harus berupa identitas terkelola yang ditetapkan pengguna.
- Wilayah Tiongkok Timur dan Tiongkok Utara di Microsoft Azure yang dioperasikan oleh 21Vianet tidak didukung.
AKS menggunakan beberapa identitas terkelola untuk layanan bawaan dan add-on.
Identitas | Nama | Gunakan huruf besar | Izin default | Bawa identitas Anda sendiri |
---|---|---|---|---|
Sarana kontrol | Nama Kluster AKS | Digunakan oleh komponen sarana kontrol AKS untuk mengelola sumber daya kluster termasuk penyeimbang beban masuk dan IP publik yang dikelola AKS, Autoscaler Kluster, Disk Azure, File, driver Blob CSI. | Peran kontributor untuk grup sumber daya Simpul | Didukung |
Kubelet | Nama-kumpulan agen Kluster AKS | Autentikasi dengan Azure Container Registry (ACR). | N/A (untuk kubernetes v1.15+) | Didukung |
Add-on | AzureNPM | Tidak diperlukan identitas. | T/A | No |
Add-on | Pemantauan jaringan AzureCNI | Tidak diperlukan identitas. | T/A | No |
Add-on | kebijakan azure (penjaga gerbang) | Tidak diperlukan identitas. | T/A | No |
Add-on | kebijakan azure | Tidak diperlukan identitas. | T/A | No |
Add-on | Calico | Tidak diperlukan identitas. | T/A | No |
Add-on | perutean aplikasi | Mengelola sertifikat Azure DNS dan Azure Key Vault | Peran Pengguna Rahasia Key Vault untuk Key Vault, peran Kontributor Zona DNZ untuk zona DNS, peran Kontributor Zona DNS Privat untuk zona DNS privat | No |
Add-on | HTTPApplicationRouting | Mengelola sumber daya jaringan yang diperlukan. | Peran pembaca untuk grup sumber daya simpul, peran kontributor untuk zona DNS | No |
Add-on | Gateway aplikasi Ingress | Mengelola sumber daya jaringan yang diperlukan. | Peran kontributor untuk grup sumber daya simpul | No |
Add-on | omsagent | Digunakan untuk mengirim metrik AKS ke Azure Monitor. | Memantau peran Penerbit Metrik | No |
Add-on | Simpul-Virtual (ACIConnector) | Mengelola sumber daya jaringan yang diperlukan untuk Azure Container Instances (ACI). | Peran kontributor untuk grup sumber daya simpul | No |
Add-on | Analisis biaya | Digunakan untuk mengumpulkan data alokasi biaya | ||
Identitas beban kerja | ID beban kerja Microsoft Entra | Memungkinkan aplikasi mengakses sumber daya cloud dengan aman dengan ID beban kerja Microsoft Entra. | T/A | No |
Penting
Identitas yang dikelola pod Sumber terbuka Microsoft Entra (pratinjau) di Azure Kubernetes Service tidak digunakan lagi pada 24/10/2022, dan proyek yang diarsipkan pada Bulan September 2023. Untuk informasi selengkapnya, lihat pemberitahuan penghentian. Add-on Terkelola AKS mulai dihentikan pada 2024.
Kami menyarankan agar Anda meninjau ID Beban Kerja Microsoft Entra. Autentikasi ID Beban Kerja Entra menggantikan fitur identitas (pratinjau) yang dikelola pod yang tidak digunakan lagi. ID Beban Kerja Entra adalah metode yang direkomendasikan untuk mengaktifkan aplikasi yang berjalan pada pod untuk mengautentikasi dirinya terhadap layanan Azure lain yang mendukungnya.
Memindahkan atau memigrasikan kluster yang mendukung identitas terkelola ke penyewa lain tidak didukung.
Jika kluster mengaktifkan identitas yang dikelola pod Microsoft Entra (
aad-pod-identity
), pod Node-Managed Identity (NMI) memodifikasi iptable simpul untuk mencegat panggilan ke titik akhir Metadata Instans Azure (IMDS). Konfigurasi ini berarti setiap permintaan yang dibuat ke titik akhir IMDS disadap oleh NMI, bahkan jika pod tertentu tidak menggunakanaad-pod-identity
.Definisi sumber daya kustom (CRD) AzurePodIdentityException dapat dikonfigurasi untuk menentukan bahwa permintaan ke titik akhir IMDS yang berasal dari label pencocokan pod yang ditentukan dalam CRD harus diproksi tanpa pemrosesan apa pun di NMI. Kecualikan pod sistem dengan
kubernetes.azure.com/managedby: aks
label di namespace layanan kube-system denganaad-pod-identity
mengonfigurasi CRD AzurePodIdentityException. Untuk informasi selengkapnya, lihat Menggunakan identitas yang dikelola pod Microsoft Entra di Azure Kubernetes Service.Untuk mengonfigurasi pengecualian, instal YAML pengecualian mikrofon.
AKS tidak mendukung penggunaan identitas terkelola yang ditetapkan sistem saat menggunakan zona DNS privat kustom.
- Gunakan templat Azure Resource Manager untuk membuat kluster yang mendukung identitas terkelola.
- Pelajari cara menggunakan kubelogin untuk semua metode autentikasi Microsoft Entra yang didukung di AKS.
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: