Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara mengaktifkan identitas terkelola yang ditetapkan sistem pada kluster AKS baru atau yang sudah ada, mendapatkan ID utama identitas terkelola yang ditetapkan sistem, dan menambahkan penetapan peran untuk identitas terkelola yang ditetapkan sistem.
Prasyarat
Baca Gambaran umum identitas terkelola di Azure Kubernetes Service (AKS) untuk memahami berbagai jenis identitas terkelola yang tersedia di AKS dan bagaimana Anda dapat menggunakannya untuk mengakses sumber daya Azure dengan aman.
Atur langganan Anda sebagai langganan aktif saat ini menggunakan
az account setperintah .az account set --subscription <subscription-id>
Grup sumber daya Azure yang sudah ada. Jika Anda tidak memilikinya, Anda dapat membuatnya menggunakan
az group createperintah .az group create \ --name <resource-group-name> \ --location <location>
- Azure CLI versi 2.23.0 atau yang lebih baru terinstal. Jalankan
az --versionuntuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI. - Untuk memperbarui kluster yang ada untuk menggunakan identitas terkelola yang ditetapkan sistem, Anda memerlukan Azure CLI versi 2.49.0 atau yang lebih baru terinstal.
- Terraform diinstal secara lokal. Untuk petunjuk penginstalan, lihat Menginstal Terraform.
Keterbatasan
- Setelah membuat kluster dengan identitas terkelola, Anda tidak dapat beralih kembali menggunakan perwakilan layanan.
- Memindahkan atau memigrasikan kluster yang mendukung identitas terkelola ke penyewa lain tidak didukung.
- Jika kluster telah diaktifkan identitas yang dikelola pod Microsoft Entra (
aad-pod-identity), pod Node-Managed Identity (NMI) memodifikasi iptables node untuk mencegat panggilan ke titik akhir Azure Instance Metadata (IMDS). Konfigurasi ini berarti setiap permintaan yang dibuat ke titik akhir IMDS disadap oleh NMI, bahkan jika pod tertentu tidak menggunakanaad-pod-identity.- Anda dapat mengonfigurasi definisi sumber daya kustom (CRD) AzurePodIdentityException untuk menentukan bahwa permintaan ke titik akhir IMDS yang berasal dari pod yang cocok dengan label yang ditentukan dalam CRD harus diproksikan tanpa pemrosesan apa pun di NMI. Kecualikan pod sistem dengan label dalam namespace kube-system dengan cara mengonfigurasi CRD AzurePodIdentityException. Untuk informasi selengkapnya, lihat Menggunakan identitas yang dikelola pod Microsoft Entra di Azure Kubernetes Service (AKS).
- Untuk mengonfigurasi pengecualian, instal mic-exception YAML.
- AKS tidak mendukung penggunaan identitas terkelola yang ditetapkan sistem saat menggunakan zona DNS privat kustom.
Memperbarui pertimbangan kluster
Saat Anda memperbarui kluster, pertimbangkan informasi berikut:
- 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 add-on Anda diatur dengan benar setelah bermigrasi. Jika Anda tidak menggunakan Azure CLI untuk melakukan operasi migrasi, Anda perlu menangani izin identitas add-on sendiri. Misalnya menggunakan templat Azure Resource Manager (ARM), lihat Menetapkan peran Azure menggunakan templat ARM.
- **
Jika kluster Anda menggunakan
--attach-acruntuk menarik gambar dari Azure Container Registry (ACR), Anda perlu menjalankan perintahaz aks update --resource-group <resource-group-name> --name <aks-cluster-name> --attach-acr <acr-resource-id>setelah memperbarui kluster Anda agar kubelet baru yang dibuat untuk identitas terkelola mendapatkan izin untuk menarik dari ACR. Jika tidak, Anda tidak akan dapat menarik dari ACR setelah pembaruan.
Mengaktifkan identitas terkelola yang ditetapkan sistem pada kluster AKS baru
Identitas terkelola yang ditetapkan sistem diaktifkan secara default saat Anda membuat kluster AKS baru.
Buat kluster AKS menggunakan perintah az aks create.
az aks create \
--resource-group <resource-group-name> \
--name <aks-cluster-name> \
--generate-ssh-keys
Memperbarui kluster yang ada untuk menggunakan identitas terkelola yang ditetapkan sistem
Perbarui kluster AKS yang ada dari prinsipal layanan ke identitas terkelola yang ditetapkan sistem dengan menggunakan perintah az aks update dan parameter --enable-managed-identity.
az aks update \
--resource-group <resource-group-name> \
--name <aks-cluster-name> \
--enable-managed-identity
Saat 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. Semua simpul dalam kluster Anda digambarkan ulang sehingga Kubelet juga dapat segera mulai menggunakan identitas terkelola. Operasi pencitraan ulang ini menyebabkan waktu henti untuk kluster AKS Anda karena simpul di kumpulan simpul berkode, dikosongkan, dikosongkan, dan dicitrakan ulang. Konfigurasikan Node Disruption Policy (pratinjau) untuk mengontrol kapan operasi yang memerlukan reimage node diizinkan di kluster Azure Kubernetes Service (AKS) Anda.
Mendapatkan ID utama identitas terkelola yang ditetapkan sistem
Dapatkan ID utama untuk identitas terkelola yang ditetapkan sistem kluster menggunakan az aks show perintah .
CLIENT_ID=$(az aks show \
--name <aks-cluster-name> \
--resource-group <resource-group-name> \
--query identity.principalId \
--output tsv)
Tambahkan penetapan peran untuk identitas terkelola secara sistem
Nota
Untuk jaringan virtual (VNet), disk Azure yang terlampir, alamat IP statis, atau tabel rute di luar grup sumber daya simpul pekerja default, Anda perlu menetapkan Network Contributor peran di grup sumber daya kustom.
Tetapkan peran Azure RBAC ke identitas terkelola yang ditetapkan sistem menggunakan perintah az role assignment create. Contoh berikut menetapkan peran Kontributor Jaringan ke identitas terkelola yang ditetapkan sistem. Penetapan peran dilingkupkan ke grup sumber daya yang berisi VNet.
az role assignment create \
--assignee <client-id> \
--role "Network Contributor" \
--scope <custom-resource-group-id>
Nota
Diperlukan waktu hingga 60 menit agar izin yang diberikan ke identitas terkelola kluster Anda disebarluaskan.
Membuat file konfigurasi Terraform
File konfigurasi Terraform menentukan infrastruktur yang dibuat dan dikelola Terraform.
Buat file bernama
main.tfdan tambahkan kode berikut untuk menentukan versi Terraform dan tentukan penyedia Azure:terraform { required_version = ">= 1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } } } provider "azurerm" { features {} }Tambahkan kode berikut ke
main.tfuntuk membuat grup sumber daya Azure. Jangan ragu untuk mengubah nama dan lokasi grup sumber daya sesuai kebutuhan.resource "azurerm_resource_group" "example" { name = "aks-rg" location = "East US" }
Membuat kluster AKS dengan identitas terkelola yang ditetapkan sistem menggunakan Terraform
Tambahkan kode berikut untuk main.tf membuat kluster AKS dengan identitas terkelola yang ditetapkan sistem:
resource "azurerm_kubernetes_cluster" "system_assigned" {
name = "aks-system"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
dns_prefix = "akssystem"
identity {
type = "SystemAssigned"
}
default_node_pool {
name = "system"
node_count = 1
vm_size = "Standard_DS2_v2"
}
}
Tambahkan penetapan peran untuk identitas terkelola yang ditetapkan sistem menggunakan Terraform
Tambahkan kode berikut ke dalam main.tf untuk membuat penetapan peran untuk identitas terkelola yang ditetapkan sistem. Contoh ini menetapkan peran Kontributor Jaringan ke identitas terkelola yang ditetapkan sistem. Penetapan peran dilingkupkan ke grup sumber daya yang berisi VNet.
resource "azurerm_role_assignment" "system_assigned_network_contributor" {
scope = azurerm_resource_group.example.id
role_definition_name = "Network Contributor"
principal_id = azurerm_kubernetes_cluster.system_assigned.identity[0].principal_id
}
Menginisialisasi Terraform
Inisialisasi Terraform di direktori yang berisi file main.tf Anda menggunakan perintah terraform init. Perintah ini mengunduh penyedia Azure yang diperlukan untuk mengelola sumber daya Azure dengan Terraform.
terraform init
Buat rencana pelaksanaan Terraform
Buat rencana eksekusi Terraform menggunakan terraform plan perintah . Perintah ini menunjukkan kepada Anda sumber daya yang akan dibuat atau dimodifikasi oleh Terraform di langganan Azure Anda.
terraform plan
Menerapkan konfigurasi Terraform
Setelah meninjau dan mengonfirmasi rencana eksekusi, terapkan konfigurasi Terraform menggunakan terraform apply perintah . Perintah ini membuat atau memodifikasi sumber daya yang ditentukan dalam file Anda main.tf di langganan Azure Anda.
terraform apply
Memverifikasi implementasi Terraform
Setelah menerapkan konfigurasi Terraform, Anda dapat memverifikasi penyebaran menggunakan az aks show perintah dengan --query parameter untuk memfilter output dan menampilkan informasi identitas. Contohnya:
az aks show \
--name <cluster-name> \
--resource-group <resource-group> \
--query identity.type \
--output tsv
Konten terkait
Untuk mempelajari selengkapnya tentang identitas terkelola di AKS, lihat artikel berikut ini: