Bagikan melalui


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 sistem di grup sumber daya simpul.

Untuk mempelajari selengkapnya tentang identitas terkelola, lihat Identitas terkelola untuk sumber daya Azure.

Gambaran Umum

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 dengan identitas Beban Kerja Microsoft Entra, yang dimaksudkan untuk digunakan oleh aplikasi yang berjalan pada pod.

Sebelum Anda mulai

  • 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

Mengaktifkan identitas terkelola yang ditetapkan sistem

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.

Mengaktifkan identitas terkelola yang ditetapkan sistem pada kluster AKS baru

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.

Memperbarui kluster AKS yang ada untuk menggunakan identitas terkelola yang ditetapkan sistem

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 menjalankan 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 menarik dari ACR setelah pembaruan.

Menambahkan penetapan peran untuk identitas terkelola yang ditetapkan sistem

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.

Mendapatkan ID utama identitas terkelola yang ditetapkan sistem

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)

Menetapkan peran Azure RBAC ke identitas terkelola yang ditetapkan sistem

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 Contributor peran pada grup sumber daya kustom.

Misalnya, tetapkan 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 "Contributor" \
    --scope "<resource-group-id>"

Catatan

Diperlukan waktu hingga 60 menit agar izin yang diberikan ke identitas terkelola kluster Anda disebarluaskan.

Mengaktifkan identitas terkelola yang ditetapkan pengguna

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.

Membuat identitas terkelola yang ditetapkan pengguna

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"
}

Mendapatkan ID utama identitas terkelola yang ditetapkan pengguna

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)

Mendapatkan ID sumber daya identitas terkelola yang ditetapkan pengguna

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)

Menetapkan peran Azure RBAC ke identitas terkelola yang ditetapkan pengguna

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.

Membuat kluster dengan identitas terkelola yang ditetapkan pengguna

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.

Memperbarui kluster yang ada untuk menggunakan 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.

Menentukan jenis identitas terkelola mana yang digunakan kluster

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.

Menggunakan identitas terkelola kubelet yang telah dibuat sebelumnya

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.

identitas terkelola kubelet

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"
}

Menetapkan peran RBAC ke identitas terkelola kubelet

Tetapkan Managed Identity Operator peran pada identitas kubelet menggunakan az role assignment create perintah . Berikan ID utama identitas kubelet untuk variabel $KUBELET_CLIENT_ID.

az role assignment create \
    --assignee $KUBELET_CLIENT_ID \
    --role "Managed Identity Operator" \
    --scope "<kubelet-identity-resource-id>"

Membuat kluster untuk menggunakan identitas kubelet

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"
    }
  },

Memperbarui kluster yang ada untuk menggunakan identitas kubelet

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.

  1. 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"
    }
    
  2. 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>"
    },
    
  3. Perbarui kluster Anda dengan identitas yang ada menggunakan az aks update perintah . Berikan ID sumber daya identitas terkelola yang ditetapkan pengguna untuk sarana kontrol untuk assign-identity argumen. Berikan ID sumber daya identitas terkelola kubelet untuk assign-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.

Mendapatkan properti identitas kubelet

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"

Batasan identitas kubelet yang telah dibuat sebelumnya

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.

Ringkasan identitas terkelola yang digunakan oleh AKS

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.

Batasan

  • 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 menggunakan aad-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 dengan aad-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.

Langkah berikutnya