Menambahkan enkripsi Layanan Manajemen Kunci dll ke kluster Azure Kubernetes Service
Artikel ini menunjukkan cara mengaktifkan enkripsi saat tidak aktif untuk rahasia Azure Kubernetes Service (AKS) di penyimpanan nilai kunci etcd dengan menggunakan Azure Key Vault dan plugin Key Management Service (KMS). Anda dapat menggunakan plugin KMS untuk:
- Gunakan kunci dalam brankas kunci untuk enkripsi etcd.
- Gunakan kunci Anda sendiri.
- Berikan enkripsi saat tidak aktif untuk rahasia yang disimpan di etcd.
- Putar kunci dalam brankas kunci.
Untuk informasi selengkapnya tentang menggunakan KMS, lihat Menggunakan penyedia KMS untuk enkripsi data.
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Azure CLI versi 2.39.0 atau yang lebih baru. Jalankan
az --version
untuk menemukan versi Anda. Jika Anda perlu memasang atau meningkatkan, Pasang Azure CLI.
Peringatan
Mulai 15 September 2024, Konnectivity tidak lagi didukung untuk brankas kunci privat untuk langganan atau langganan baru yang sebelumnya tidak menggunakan konfigurasi ini. Untuk langganan yang saat ini menggunakan konfigurasi ini atau telah menggunakannya dalam 60 hari terakhir, dukungan akan berlanjut hingga AKS versi 1.30 mencapai akhir masa pakai untuk dukungan komunitas.
KMS mendukung Konnectivity atau API Server VNet Integration (pratinjau) untuk brankas kunci publik.
KMS mendukung Integrasi VNet API Server (pratinjau) untuk brankas kunci privat dan publik.
Anda dapat menggunakan kubectl get po -n kube-system
untuk memverifikasi hasil dan menunjukkan bahwa pod agen konnectivitas sedang berjalan. Jika pod berjalan, kluster AKS menggunakan Konnectivity. Saat menggunakan Integrasi VNet API Server, Anda dapat menjalankan az aks show -g -n
perintah untuk memverifikasi bahwa enableVnetIntegration
pengaturan diatur ke true
.
Batasan
Batasan berikut berlaku saat Anda mengintegrasikan enkripsi etcd KMS dengan AKS:
- Menghapus kunci, brankas kunci, atau identitas terkait tidak didukung.
- Enkripsi etcd KMS tidak berfungsi dengan identitas terkelola yang ditetapkan sistem. Kebijakan akses brankas kunci harus diatur sebelum fitur diaktifkan. Identitas terkelola yang ditetapkan sistem tidak tersedia sampai setelah kluster dibuat. Pertimbangkan dependensi siklus.
- Azure Key Vault dengan pengaturan firewall "izinkan akses publik dari jaringan virtual dan alamat IP tertentu" atau "nonaktifkan akses publik" tidak didukung karena memblokir lalu lintas dari plugin KMS ke brankas kunci.
- Jumlah maksimum rahasia yang didukung oleh kluster yang mengaktifkan KMS adalah 2.000. Namun, penting untuk dicatat bahwa KMS v2 tidak dibatasi oleh pembatasan ini dan dapat menangani jumlah rahasia yang lebih tinggi.
- Membawa brankas kunci Azure (BYO) Anda sendiri dari penyewa lain tidak didukung.
- Dengan KMS diaktifkan, Anda tidak dapat mengubah mode brankas kunci terkait (publik versus privat). Untuk memperbarui mode brankas kunci, Anda harus terlebih dahulu menonaktifkan KMS, lalu mengaktifkannya lagi.
- Jika kluster mengaktifkan KMS dan memiliki brankas kunci privat, kluster harus menggunakan terowongan Integrasi VNet (pratinjau) API Server. Konnectivity tidak didukung.
- Menggunakan API Virtual Machine Scale Sets untuk menskalakan simpul dalam kluster ke nol membatalkan alokasi simpul. Kluster kemudian turun dan menjadi tidak dapat dipulihkan.
- Setelah mematikan KMS, Anda tidak dapat menghancurkan kunci. Menghancurkan kunci menyebabkan server API berhenti berfungsi.
KMS mendukung brankas kunci publik atau brankas kunci privat.
Mengaktifkan KMS untuk brankas kunci publik
Bagian berikut menjelaskan cara mengaktifkan KMS untuk brankas kunci publik.
Membuat brankas kunci dan kunci publik
Peringatan
Menghapus kunci atau brankas kunci tidak didukung dan menyebabkan rahasia dalam kluster tidak dapat dipulihkan.
Jika Anda perlu memulihkan brankas kunci atau kunci Anda, lihat Manajemen pemulihan Azure Key Vault dengan penghapusan sementara dan perlindungan penghapusan menyeluruh.
Membuat brankas kunci dan kunci untuk brankas kunci publik non-RBAC
Gunakan az keyvault create
untuk membuat brankas kunci tanpa menggunakan kontrol akses berbasis peran Azure (Azure RBAC):
az keyvault create --name MyKeyVault --resource-group MyResourceGroup
Gunakan az keyvault key create
untuk membuat kunci:
az keyvault key create --name MyKeyName --vault-name MyKeyVault
Gunakan az keyvault key show
untuk mengekspor ID kunci:
export KEY_ID=$(az keyvault key show --name MyKeyName --vault-name MyKeyVault --query 'key.kid' -o tsv)
echo $KEY_ID
Contoh ini menyimpan ID kunci di KEY_ID
.
Membuat brankas kunci dan kunci untuk brankas kunci publik RBAC
Gunakan az keyvault create
untuk membuat brankas kunci dengan menggunakan Azure RBAC:
export KEYVAULT_RESOURCE_ID=$(az keyvault create --name MyKeyVault --resource-group MyResourceGroup --enable-rbac-authorization true --query id -o tsv)
Tetapkan izin diri Anda untuk membuat kunci:
az role assignment create --role "Key Vault Crypto Officer" --assignee-object-id $(az ad signed-in-user show --query id -o tsv) --assignee-principal-type "User" --scope $KEYVAULT_RESOURCE_ID
Gunakan az keyvault key create
untuk membuat kunci:
az keyvault key create --name MyKeyName --vault-name MyKeyVault
Gunakan az keyvault key show
untuk mengekspor ID kunci:
export KEY_ID=$(az keyvault key show --name MyKeyName --vault-name MyKeyVault --query 'key.kid' -o tsv)
echo $KEY_ID
Contoh ini menyimpan ID kunci di KEY_ID
.
Membuat identitas terkelola yang ditetapkan pengguna untuk brankas kunci publik
Gunakan az identity create
untuk membuat identitas terkelola yang ditetapkan pengguna:
az identity create --name MyIdentity --resource-group MyResourceGroup
Gunakan az identity show
untuk mendapatkan ID objek identitas:
IDENTITY_OBJECT_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'principalId' -o tsv)
echo $IDENTITY_OBJECT_ID
Contoh sebelumnya menyimpan nilai ID objek identitas di IDENTITY_OBJECT_ID
.
Gunakan az identity show
untuk mendapatkan ID sumber daya identitas:
IDENTITY_RESOURCE_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'id' -o tsv)
echo $IDENTITY_RESOURCE_ID
Contoh ini menyimpan nilai ID sumber daya identitas di IDENTITY_RESOURCE_ID
.
Menetapkan izin untuk mendekripsi dan mengenkripsi brankas kunci publik
Bagian berikut menjelaskan cara menetapkan izin dekripsi dan enkripsi untuk brankas kunci privat.
Menetapkan izin untuk brankas kunci publik non-RBAC
Jika brankas kunci Anda tidak diatur dengan --enable-rbac-authorization
, Anda dapat menggunakan az keyvault set-policy
untuk membuat kebijakan brankas kunci Azure.
az keyvault set-policy --name MyKeyVault --key-permissions decrypt encrypt --object-id $IDENTITY_OBJECT_ID
Menetapkan izin untuk brankas kunci publik RBAC
Jika brankas kunci Anda diatur dengan --enable-rbac-authorization
, tetapkan peran Pengguna Kripto Key Vault untuk memberikan izin dekripsi dan enkripsi.
az role assignment create --role "Key Vault Crypto User" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID
Buat kluster AKS yang memiliki brankas kunci publik dan aktifkan enkripsi KMS etcd
Untuk mengaktifkan enkripsi KMS etcd, buat kluster AKS dengan menggunakan perintah az aks create . Anda dapat menggunakan --enable-azure-keyvault-kms
parameter , --azure-keyvault-kms-key-vault-network-access
, dan --azure-keyvault-kms-key-id
dengan az aks create
.
az aks create \
--name myAKSCluster \
--resource-group MyResourceGroup \
--assign-identity $IDENTITY_RESOURCE_ID \
--enable-azure-keyvault-kms \
--azure-keyvault-kms-key-vault-network-access "Public" \
--azure-keyvault-kms-key-id $KEY_ID \
--generate-ssh-keys
Memperbarui kluster AKS yang ada untuk mengaktifkan enkripsi KMS etcd untuk brankas kunci publik
Untuk mengaktifkan enkripsi KMS etcd untuk kluster yang ada, gunakan perintah az aks update . Anda dapat menggunakan --enable-azure-keyvault-kms
parameter , --azure-keyvault-kms-key-vault-network-access
, dan --azure-keyvault-kms-key-id
dengan az-aks-update
.
az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $KEY_ID
Gunakan perintah berikut untuk memperbarui semua rahasia. Jika Anda tidak menjalankan perintah ini, rahasia yang dibuat sebelumnya tidak lagi dienkripsi. Untuk kluster yang lebih besar, Anda mungkin ingin membahayakan rahasia menurut namespace layanan atau membuat skrip pembaruan.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Memutar kunci yang ada di brankas kunci publik
Setelah mengubah ID kunci (termasuk mengubah nama kunci atau versi kunci), Anda dapat menggunakan perintah az aks update . Anda dapat menggunakan --enable-azure-keyvault-kms
parameter , --azure-keyvault-kms-key-vault-network-access
, dan --azure-keyvault-kms-key-id
dengan az-aks-update
untuk memutar kunci yang ada di KMS.
Peringatan
Ingatlah untuk memperbarui semua rahasia setelah rotasi kunci. Jika Anda tidak memperbarui semua rahasia, rahasia tidak dapat diakses jika kunci yang dibuat sebelumnya tidak ada atau tidak lagi berfungsi.
KMS menggunakan 2 kunci secara bersamaan. Setelah rotasi kunci pertama, Anda perlu memastikan kunci lama dan baru valid (tidak kedaluwarsa) hingga rotasi kunci berikutnya. Setelah rotasi kunci kedua, kunci terlama dapat dihapus/kedaluwarsa dengan aman
Setelah memutar versi kunci KMS dengan yang baru keyId
, silakan periksa securityProfile.azureKeyVaultKms.keyId
json sumber daya AKS. Pastikan versi kunci baru sedang digunakan.
az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $NEW_KEY_ID
Gunakan perintah berikut untuk memperbarui semua rahasia. Jika Anda tidak menjalankan perintah ini, rahasia yang dibuat sebelumnya masih dienkripsi dengan kunci sebelumnya. Untuk kluster yang lebih besar, Anda mungkin ingin membahayakan rahasia menurut namespace layanan atau membuat skrip pembaruan.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Mengaktifkan KMS untuk brankas kunci privat
Jika Anda mengaktifkan KMS untuk brankas kunci privat, AKS secara otomatis membuat titik akhir privat dan tautan privat di grup sumber daya simpul. Brankas kunci ditambahkan koneksi titik akhir privat dengan kluster AKS.
Peringatan
KMS hanya mendukung Integrasi VNet API Server (pratinjau) untuk brankas kunci privat.
Membuat kunci dan key vault privat
Peringatan
Menghapus kunci atau brankas kunci tidak didukung dan menyebabkan rahasia dalam kluster tidak dapat dipulihkan.
Jika Anda perlu memulihkan brankas kunci atau kunci Anda, lihat Manajemen pemulihan Azure Key Vault dengan penghapusan sementara dan perlindungan penghapusan menyeluruh.
Gunakan az keyvault create
untuk membuat brankas kunci privat:
az keyvault create --name MyKeyVault --resource-group MyResourceGroup --public-network-access Disabled
Gunakan az keyvault key create
untuk membuat kunci:
az keyvault key create --name MyKeyName --vault-name MyKeyVault
Membuat atau memperbarui kunci di brankas kunci privat yang tidak memiliki titik akhir privat tidak didukung. Untuk mempelajari cara mengelola brankas kunci privat, lihat Mengintegrasikan brankas kunci dengan menggunakan Azure Private Link.
Membuat identitas terkelola yang ditetapkan pengguna untuk brankas kunci privat
Gunakan az identity create
untuk membuat identitas terkelola yang ditetapkan pengguna:
az identity create --name MyIdentity --resource-group MyResourceGroup
Gunakan az identity show
untuk mendapatkan ID objek identitas:
IDENTITY_OBJECT_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'principalId' -o tsv)
echo $IDENTITY_OBJECT_ID
Contoh sebelumnya menyimpan nilai ID objek identitas di IDENTITY_OBJECT_ID
.
Gunakan az identity show
untuk mendapatkan ID sumber daya identitas:
IDENTITY_RESOURCE_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'id' -o tsv)
echo $IDENTITY_RESOURCE_ID
Contoh ini menyimpan nilai ID sumber daya identitas di IDENTITY_RESOURCE_ID
.
Menetapkan izin untuk mendekripsi dan mengenkripsi brankas kunci privat
Bagian berikut menjelaskan cara menetapkan izin dekripsi dan enkripsi untuk brankas kunci privat.
Menetapkan izin untuk brankas kunci privat non-RBAC
Catatan
Saat menggunakan brankas kunci privat, AKS tidak dapat memvalidasi izin identitas. Verifikasi bahwa identitas telah diberikan izin untuk mengakses brankas kunci sebelum mengaktifkan KMS.
Jika brankas kunci Anda tidak diatur dengan --enable-rbac-authorization
, Anda dapat menggunakan az keyvault set-policy
untuk membuat kebijakan brankas kunci di Azure:
az keyvault set-policy --name MyKeyVault --key-permissions decrypt encrypt --object-id $IDENTITY_OBJECT_ID
Menetapkan izin untuk brankas kunci privat RBAC
Jika brankas kunci Anda diatur dengan --enable-rbac-authorization
, tetapkan peran Azure RBAC yang menyertakan izin dekripsi dan enkripsi:
az role assignment create --role "Key Vault Crypto User" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID
Menetapkan izin untuk membuat tautan privat
Untuk brankas kunci privat, peran Kontributor Key Vault diperlukan untuk membuat tautan privat antara brankas kunci privat dan kluster.
az role assignment create --role "Key Vault Contributor" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID
Buat kluster AKS yang memiliki brankas kunci privat dan aktifkan enkripsi KMS etcd
Untuk mengaktifkan enkripsi KMS etcd untuk brankas kunci privat, buat kluster AKS dengan menggunakan perintah az aks create . Anda dapat menggunakan --enable-azure-keyvault-kms
parameter , --azure-keyvault-kms-key-id
, --azure-keyvault-kms-key-vault-network-access
, dan --azure-keyvault-kms-key-vault-resource-id
dengan az-aks-create
.
az aks create \
--name myAKSCluster \
--resource-group MyResourceGroup \
--assign-identity $IDENTITY_RESOURCE_ID \
--enable-azure-keyvault-kms \
--azure-keyvault-kms-key-id $KEY_ID \
--azure-keyvault-kms-key-vault-network-access "Private" \
--azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID \
--generate-ssh-keys
Memperbarui kluster AKS yang ada untuk mengaktifkan enkripsi KMS etcd untuk brankas kunci privat
Untuk mengaktifkan enkripsi KMS etcd pada kluster yang ada yang memiliki brankas kunci privat, gunakan perintah az aks update . Anda dapat menggunakan --enable-azure-keyvault-kms
parameter , --azure-keyvault-kms-key-id
, --azure-keyvault-kms-key-vault-network-access
, dan --azure-keyvault-kms-key-vault-resource-id
dengan az-aks-update
.
az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $KEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID
Gunakan perintah berikut untuk memperbarui semua rahasia. Jika Anda tidak menjalankan perintah ini, rahasia yang dibuat sebelumnya tidak dienkripsi. Untuk kluster yang lebih besar, Anda mungkin ingin membahayakan rahasia menurut namespace layanan atau membuat skrip pembaruan.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Memutar kunci yang ada dalam brankas kunci privat
Setelah mengubah ID kunci (termasuk nama kunci dan versi kunci), Anda dapat menggunakan perintah az aks update . Anda dapat menggunakan --enable-azure-keyvault-kms
parameter , --azure-keyvault-kms-key-id
, --azure-keyvault-kms-key-vault-network-access
, dan --azure-keyvault-kms-key-vault-resource-id
dengan az-aks-update
untuk memutar kunci KMS yang ada.
Peringatan
Ingatlah untuk memperbarui semua rahasia setelah rotasi kunci. Jika Anda tidak memperbarui semua rahasia, rahasia tidak dapat diakses jika kunci yang dibuat sebelumnya tidak ada atau tidak lagi berfungsi.
Setelah Anda memutar kunci, kunci sebelumnya (key1) masih di-cache dan tidak boleh dihapus. Jika Anda ingin segera menghapus kunci sebelumnya (key1), Anda perlu memutar kunci dua kali. Kemudian key2 dan key3 di-cache, dan key1 dapat dihapus tanpa memengaruhi kluster yang ada.
Setelah memutar versi kunci KMS dengan yang baru keyId
, silakan periksa securityProfile.azureKeyVaultKms.keyId
json sumber daya AKS. Pastikan versi kunci baru sedang digunakan.
az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $NewKEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID
Gunakan perintah berikut untuk memperbarui semua rahasia. Jika Anda tidak memperbarui semua rahasia, rahasia yang dibuat sebelumnya dienkripsi dengan kunci sebelumnya. Untuk kluster yang lebih besar, Anda mungkin ingin membahayakan rahasia menurut namespace layanan atau membuat skrip pembaruan.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Memperbarui mode brankas kunci
Catatan
Untuk mengubah brankas kunci yang berbeda dengan mode yang berbeda (baik publik atau privat), Anda dapat berjalan az aks update
secara langsung. Untuk mengubah mode brankas kunci yang terpasang, Anda harus terlebih dahulu menonaktifkan KMS, lalu menyalakannya lagi dengan menggunakan ID brankas kunci baru.
Bagian berikut menjelaskan cara memigrasikan brankas kunci publik yang terpasang ke mode privat. Langkah-langkah ini juga dapat digunakan untuk bermigrasi dari privat ke publik.
Menonaktifkan KMS pada kluster
Nonaktifkan KMS pada kluster yang ada dan lepaskan brankas kunci:
az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms
Gunakan perintah berikut untuk memperbarui semua rahasia. Jika Anda tidak menjalankan perintah ini, rahasia yang dibuat sebelumnya masih dienkripsi dengan kunci sebelumnya. Untuk kluster yang lebih besar, Anda mungkin ingin membahayakan rahasia menurut namespace layanan atau membuat skrip pembaruan.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Mengubah mode brankas kunci
Perbarui brankas kunci dari publik ke privat:
az keyvault update --name MyKeyVault --resource-group MyResourceGroup --public-network-access Disabled
Untuk bermigrasi dari privat ke publik diatur --public-network-access
ke Enabled
dalam perintah di atas.
Aktifkan KMS untuk kluster dengan menggunakan brankas kunci yang diperbarui
Aktifkan KMS dengan menggunakan brankas kunci privat yang diperbarui:
az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $NewKEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID
Setelah menyiapkan KMS, Anda dapat mengaktifkan pengaturan diagnostik untuk brankas kunci untuk memeriksa log enkripsi.
Nonaktifkan KMS
Sebelum menonaktifkan KMS, Anda dapat menggunakan perintah Azure CLI berikut untuk memeriksa apakah KMS diaktifkan:
az aks list --query "[].{Name:name, KmsEnabled:securityProfile.azureKeyVaultKms.enabled, KeyId:securityProfile.azureKeyVaultKms.keyId}" -o table
Jika hasil mengonfirmasi KMS yang aktif, jalankan perintah berikut untuk menonaktifkan KMS pada kluster:
az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms
Gunakan perintah berikut untuk memperbarui semua rahasia. Jika Anda tidak menjalankan perintah ini, rahasia yang dibuat sebelumnya masih dienkripsi dengan kunci sebelumnya, dan izin enkripsi dan dekripsi pada brankas kunci masih diperlukan. Untuk kluster yang lebih besar, Anda mungkin ingin membahayakan rahasia menurut namespace layanan atau membuat skrip pembaruan.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Dukungan KMS v2
Dimulai di AKS versi 1.27, mengaktifkan fitur KMS mengonfigurasi KMS v2. Dengan KMS v2, Anda tidak terbatas pada 2.000 rahasia yang didukung versi sebelumnya. Untuk informasi selengkapnya, lihat Peningkatan KMS V2.
Migrasi ke KMS v2
Jika versi kluster Anda lebih lama dari 1.27 dan Anda sudah mengaktifkan KMS, peningkatan ke kluster versi 1.27 atau yang lebih baru akan diblokir. Gunakan langkah-langkah berikut untuk bermigrasi ke KMS v2:
- Matikan KMS pada kluster.
- Lakukan migrasi penyimpanan.
- Tingkatkan kluster ke versi 1.27 atau yang lebih baru.
- Aktifkan KMS pada kluster.
- Lakukan migrasi penyimpanan.
Menonaktifkan KMS untuk memigrasikan penyimpanan
Untuk menonaktifkan KMS pada kluster yang ada, gunakan az aks update
perintah dengan --disable-azure-keyvault-kms
argumen :
az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms
Memigrasikan penyimpanan
Untuk memperbarui semua rahasia, gunakan kubectl get secrets
perintah dengan --all-namespaces
argumen :
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Memutakhirkan kluster AKS
Untuk meningkatkan kluster AKS, gunakan az aks upgrade
perintah . Atur versi ke 1.27.x
atau yang lebih baru dengan menggunakan --kubernetes-version
argumen .
az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version <AKS version>
Berikut contohnya:
az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version 1.27.1
Mengaktifkan KMS setelah migrasi penyimpanan
Anda dapat mengaktifkan fitur KMS pada kluster lagi untuk mengenkripsi rahasia. Setelah itu, kluster AKS menggunakan KMS v2. Jika Anda tidak ingin bermigrasi ke KMS v2, Anda dapat membuat kluster baru yang versi 1.27 atau yang lebih baru dengan KMS diaktifkan.
Memigrasikan penyimpanan untuk KMS v2
Untuk mengenkripsi ulang semua rahasia di KMS v2, gunakan kubectl get secrets
perintah dengan --all-namespaces
argumen :
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Pengamatan KMS
Json sumber daya AKS
Anda dapat memeriksa konfigurasi KMS di json sumber daya AKS dengan:
az aks show
Menggunakan perintah- Melalui Portal Microsoft Azure
Bagian ini securityProfile.azureKeyVaultKms
menunjukkan konfigurasi KMS, termasuk Brankas kunci, kunci, versi kunci saat ini, dan sebelumnya.
Mendiagnosis dan memecahkan masalah
Karena plugin KMS adalah mobil samping dari Pod kube-apiserver, Anda tidak dapat mengaksesnya secara langsung. Untuk meningkatkan pengamatan KMS, Anda dapat memeriksa status KMS dengan:
- Buka halaman Portal Microsoft Azure kluster AKS Anda
Diagnose and solve problems
Buka dan cariKMS
- Dalam
KMS
detektor, Anda dapat melihat status KMS dan jika berada dalam beberapa skenario yang diketahui gagal
Ambil KeyExpired: Operation encrypt is not allowed on an expired key
sebagai contoh:
Karena plugin AKS KMS saat ini hanya mengizinkan brankas kunci dan kunci BYO, Anda bertanggung jawab untuk mengelola siklus hidup kunci. Jika kunci kedaluwarsa, plugin KMS akan gagal mendekripsi rahasia yang ada. Anda perlu
- Memperpanjang tanggal kedaluwarsa kunci untuk membuat KMS berfungsi
- Memutar versi kunci
Azure Kubernetes Service