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.
Secara default, semua pod yang berjalan di kluster Azure Kubernetes Service (AKS) dapat mengakses titik akhir Azure Instance Metadata Service (IMDS ). Anda sekarang dapat secara opsional membatasi akses ke titik akhir IMDS dari kluster Azure Kubernetes Service (AKS) untuk meningkatkan keamanan (pratinjau).
Penting
Fitur pratinjau AKS tersedia atas dasar layanan mandiri dan pendaftaran sukarela. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan pratinjau tersebut dikecualikan dari perjanjian tingkat layanan (SLA) serta garansi terbatas. Pratinjau AKS sebagian didukung oleh dukungan pelanggan berdasarkan upaya terbaik yang dapat dilakukan. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:
Tentang pembatasan IMDS untuk kluster AKS
Azure IMDS adalah REST API yang menyediakan informasi tentang instans komputer virtual yang sedang berjalan. Informasi ini mencakup SKU, penyimpanan, konfigurasi jaringan, dan peristiwa pemeliharaan yang akan datang.
IMDS REST API tersedia di alamat IP terkenal dan tidak dapat dialihkan (169.254.169.254) yang secara default dapat diakses dari semua pod yang berjalan di kluster AKS. Akses default ini memperkenalkan risiko keamanan tertentu untuk kluster AKS:
- Pengguna berbahaya dapat mengeksploitasi layanan untuk mendapatkan informasi sensitif seperti token dan informasi platform lainnya, yang mengarah ke kebocoran informasi.
- Potensi kerentanan autentikasi kemudian diekspos, karena aplikasi dapat menyalahgunakan kredensial ini.
Anda sekarang dapat memilih untuk membatasi akses ke titik akhir IMDS untuk pod jaringan non host yang berjalan di kluster Anda. Pod-pod jaringan non host memiliki hostNetwork diatur ke false dalam spesifikasinya. Ketika pembatasan IMDS diaktifkan, pod jaringan non host tidak dapat mengakses titik akhir IMDS atau memperoleh token OAuth 2.0 untuk otorisasi oleh identitas terkelola. Pod non-host jaringan sebaiknya menggunakan ID Beban Kerja Microsoft Entra setelah pembatasan IMDS diaktifkan.
Pod jaringan host telah hostNetwork disetel ke true dalam spesifikasinya. Pod jaringan host dapat terus mengakses titik akhir IMDS setelah pembatasan IMDS diaktifkan karena mereka berbagi namespace jaringan yang sama dengan proses host. Proses lokal dalam simpul dapat menggunakan titik akhir IMDS untuk mengambil metadata instans, sehingga mereka diizinkan untuk mengakses titik akhir setelah pembatasan IMDS diaktifkan.
Sebelum Anda mulai
Pastikan Anda menginstal Azure CLI versi 2.61.0 atau yang lebih baru. Jalankan
az --versionuntuk mencari tahu versinya. Jika Anda perlu menginstal atau memperbarui, lihat Install Azure CLI.aks-previewInstal ekstensi Azure CLI versi 7.0.0b2 atau yang lebih baru.Jika Anda belum memiliki
aks-previewekstensi, instal menggunakanaz extension addperintah .az extension add --name aks-previewJika Anda sudah memiliki
aks-previewekstensi, perbarui untuk memastikan Anda memiliki versi terbaru menggunakanaz extension updateperintah .az extension update --name aks-preview
Daftarkan
IMDSRestrictionPreviewbendera fitur menggunakan perintah az feature register .az feature register --namespace Microsoft.ContainerService --name IMDSRestrictionPreviewVerifikasi status pendaftaran dengan menggunakan perintah az feature show . Dibutuhkan beberapa menit agar status menunjukkan Terdaftar:
az feature show --namespace Microsoft.ContainerService --name IMDSRestrictionPreviewSaat status mencerminkan Terdaftar, refresh pendaftaran penyedia sumber daya Microsoft.ContainerService dengan menggunakan perintah az provider register :
az provider register --namespace Microsoft.ContainerServiceAktifkan Pengeluar Sertifikat OIDC pada kluster AKS Anda. Untuk membuat kluster baru atau memperbarui kluster yang ada, lihat Mengonfigurasi kluster AKS dengan Pengeluar Sertifikat OIDC.
Keterbatasan
Add-on tertentu yang perlu mengakses titik akhir IMDS tidak didukung ketika pembatasan IMDS diterapkan. Jika Add-on ini terinstal di kluster, Anda tidak dapat mengaktifkan pembatasan IMDS. Sebaliknya, jika pembatasan IMDS diaktifkan, maka Anda tidak dapat menginstal add-on ini. Add-on yang tidak didukung meliputi:
- Pengontrol penghubung aplikasi masuk
- Azure Monitor untuk kontainer (Container Insights)
- Node virtual
- Azure Policy
- Ekstensi kluster: Flux (GitOps), Dapr, Azure App Configuration, Azure Machine Learning, Azure Container Storage, Azure Backup
- Operator AI Toolchain (Pratinjau)
- Perutean aplikasi
- Perutean aplikasi HTTP
- Perutean aplikasi web
- Analisis biaya Azure
Penyedia Azure Key Vault untuk driver Secrets Store Container Storage Interface (CSI) sekarang mendukung mode autentikasi identitas beban kerja dan oleh karena itu dapat bekerja dengan pembatasan IMDS diaktifkan.
Selain itu, kumpulan node Windows saat ini tidak didukung dengan pembatasan IMDS.
Perhatian
Mengaktifkan pembatasan IMDS untuk kluster yang menggunakan add-on yang tidak didukung menghasilkan kesalahan.
Pertimbangan penting
Ketika pembatasan IMDS diaktifkan, AKS mengelola aturan iptables pada node. Perlu diingat poin-poin berikut untuk mencegah aturan iptables dihapus atau dirusak secara tidak sengaja:
- Aturan iptable dapat dimodifikasi dengan SSH atau node-shell, jadi sebaiknya gunakan Nonaktifkan SSH atau menggunakan kebijakan untuk menonaktifkan pod istimewa.
- Aturan iptables yang membatasi akses ke IMDS dipulihkan ketika node di-image ulang atau di-restart.
Mengaktifkan pembatasan IMDS pada kluster baru
Untuk mengaktifkan pembatasan IMDS pada kluster baru dan memblokir semua lalu lintas dari pod jaringan non host ke titik akhir IMDS, jalankan az aks create perintah dengan --enable-imds-restriction parameter .
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--enable-imds-restriction
Mengaktifkan pembatasan IMDS pada kluster yang ada
Untuk mengaktifkan pembatasan IMDS pada kluster yang ada dan memblokir semua lalu lintas dari pod jaringan non host ke titik akhir IMDS, jalankan az aks update perintah dengan --enable-imds-restriction parameter .
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--enable-imds-restriction
Setelah memperbarui kluster, Anda harus menggambar ulang node di kluster Anda untuk az aks upgrade --node-image-only mulai memblokir lalu lintas ke pod kluster.
Verifikasikan lalu lintas pada kluster dengan pembatasan IMDS yang telah diaktifkan.
Untuk memverifikasi bahwa pembatasan IMDS berlaku, uji lalu lintas ke kedua pod jaringan, baik yang berbasis host maupun tidak berbasis host.
Memverifikasi lalu lintas pada pod jaringan non host
Buat pod dengan
hostNetwork: false. Jika Anda tidak memiliki pod pengujian denganhostNetwork: false, Anda dapat menjalankan perintah berikut untuk membuatnya.cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: non-host-nw spec: hostNetwork: false containers: - name: non-host-nw image: mcr.microsoft.com/azurelinux/base/nginx:1 command: ["sleep", "infinity"] EOFSambungkan ke shell di pod dengan
kubectl exec.kubectl exec -it non-host-nw -- /bin/bashUji lalu lintas dari pod ke titik akhir IMDS.
curl -s -H Metadata:true --connect-timeout 10 --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2023-11-15"
Tunggu sekitar 10 detik dan amati bahwa perintah tidak mengembalikan apa pun, yang berarti bahwa waktu koneksi habis dan pod tidak dapat mengakses titik akhir IMDS.
Setelah itu, bersihkan pod dengan kubectl delete pod non-host-nw.
Memverifikasi lalu lintas pada pod jaringan host
Buat pod dengan
hostNetwork: true. Jika Anda tidak memiliki pod pengujian denganhostNetwork: true, Anda dapat menjalankan perintah berikut untuk membuatnya.cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: host-nw spec: hostNetwork: true containers: - name: host-nw image: mcr.microsoft.com/azurelinux/base/nginx:1 command: ["sleep", "infinity"] EOFSambungkan ke shell di pod dengan
kubectl exec.kubectl exec -it host-nw -- /bin/bashMenguji lalu lintas dari pod ke titik akhir IMDS
curl -s -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2023-11-15"
Amati bahwa perintah mengembalikan hasil, yang berarti bahwa pod dapat mengakses titik akhir IMDS seperti yang diharapkan.
Setelah itu, bersihkan pod dengan kubectl delete pod host-nw.
Menonaktifkan pembatasan IMDS untuk kluster
Untuk menonaktifkan pembatasan IMDS pada kluster yang ada dan mengizinkan semua lalu lintas dari pod apa pun ke titik akhir IMDS, jalankan az aks update perintah dengan --disable-imds-restriction parameter .
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--disable-imds-restriction
Setelah memperbarui kluster, Anda harus menggambar ulang node di kluster Anda untuk mulai mengizinkan semua lalu lintas ke pod kluster.