Otoritas sertifikat kustom (CA) di Azure Kubernetes Service (AKS) (pratinjau)
AKS menghasilkan dan menggunakan sertifikat, Otoritas Sertifikat (CA), dan Akun Layanan (CA) berikut:
- Server API AKS membuat CA yang disebut CA Kluster.
- Server API memiliki CA Kluster, yang menandatangani sertifikat untuk komunikasi satu arah dari server API ke kubelets.
- Setiap kubelet juga membuat Permintaan Penandatanganan Sertifikat (CSR), yang ditandatangani oleh CA Kluster, untuk komunikasi dari kubelet ke server API.
- Agregator API menggunakan CA Kluster untuk menerbitkan sertifikat untuk komunikasi dengan API lain. Agregator API juga dapat memiliki CA sendiri untuk menerbitkan sertifikat tersebut, tetapi saat ini Agregator API menggunakan CA Kluster.
- Setiap simpul menggunakan token SA, yang ditandatangani oleh CA Kluster.
- Klien
kubectl
memiliki sertifikat untuk berkomunikasi dengan kluster AKS.
Anda juga dapat membuat otoritas sertifikat kustom, yang memungkinkan Anda membangun kepercayaan antara kluster dan beban kerja Azure Kubernetes Service (AKS), seperti registri privat, proksi, dan firewall. Rahasia Kubernetes menyimpan informasi otoritas sertifikat, dan kemudian diteruskan ke semua simpul dalam kluster. Fitur ini diterapkan per kumpulan simpul, jadi Anda perlu mengaktifkannya pada kumpulan simpul baru dan yang sudah ada.
Artikel ini menunjukkan kepada Anda cara membuat CA kustom dan menerapkannya ke kluster AKS Anda.
Prasyarat
- Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis.
- Azure CLI terinstal (versi 2.43.0 atau lebih tinggi).
- String sertifikat yang dikodekan base64 atau file teks dengan sertifikat.
Batasan
- Fitur ini saat ini tidak didukung untuk kumpulan simpul Windows.
Memasang ekstensi aks-preview
Azure CLI
Penting
Fitur pratinjau AKS tersedia berdasarkan layanan mandiri. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan mereka dikecualikan dari perjanjian tingkat layanan dan garansi terbatas. Pratinjau AKS sebagian dicakup oleh dukungan pelanggan berdasarkan upaya terbaik. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:
Instal ekstensi aks-preview menggunakan
az extension add
perintah .az extension add --name aks-preview
Perbarui ke versi terbaru ekstensi menggunakan
az extension update
perintah .az extension update --name aks-preview
Daftarkan CustomCATrustPreview
bendera fitur
Daftarkan
CustomCATrustPreview
bendera fitur menggunakanaz feature register
perintah .az feature register --namespace "Microsoft.ContainerService" --name "CustomCATrustPreview"
Dibutuhkan beberapa menit agar status menampilkan Terdaftar.
Verifikasi status pendaftaran menggunakan
az feature show
perintah .az feature show --namespace "Microsoft.ContainerService" --name "CustomCATrustPreview"
Saat status mencerminkan Terdaftar, refresh pendaftaran penyedia sumber daya Microsoft.ContainerService menggunakan
az provider register
perintah .az provider register --namespace Microsoft.ContainerService
Penginstalan CA kustom pada kumpulan simpul AKS
Menginstal CA pada kumpulan simpul AKS
Jika lingkungan Anda mengharuskan CA kustom Anda ditambahkan ke penyimpanan kepercayaan simpul untuk provisi yang benar, Anda perlu meneruskan file teks yang berisi hingga 10 sertifikat yang dipisahkan baris kosong selama
az aks create
atauaz aks update
operasi. Contoh file teks:-----BEGIN CERTIFICATE----- cert1 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- cert2 -----END CERTIFICATE-----
Menginstal CA selama pembuatan kumpulan simpul
Instal CA selama pembuatan kumpulan simpul menggunakan
az aks create
perintah dan tentukan file teks Anda untuk--custom-ca-trust-certificates
parameter .az aks create \ --resource-group <resource-group-name> \ --name <cluster-name> \ --node-count 2 \ --enable-custom-ca-trust \ --custom-ca-trust-certificates pathToFileWithCAs \ --generate-ssh-keys
Rotasi CA untuk ketersediaan selama boot up kumpulan simpul
Perbarui CA yang diteruskan ke kluster Anda selama boot up menggunakan
az aks update
perintah dan menentukan file teks Anda untuk--custom-ca-trust-certificates
parameter .az aks update \ --resource-group <resource-group-name> \ --name <cluster-name> \ --custom-ca-trust-certificates pathToFileWithCAs
Catatan
Operasi ini memicu pembaruan model, memastikan simpul baru memiliki CA terbaru yang diperlukan untuk provisi yang benar. AKS membuat simpul tambahan, menguras simpul yang ada, menghapusnya, dan menggantinya dengan simpul yang memiliki set CA baru yang terinstal.
Menginstal CA setelah pembuatan kumpulan simpul
Jika lingkungan Anda dapat berhasil disediakan tanpa CA kustom, Anda dapat memberikan CA dengan menyebarkan rahasia di kube-system
namespace. Pendekatan ini memungkinkan rotasi sertifikat tanpa perlu rekreasi node.
Buat manifes YAML rahasia Kubernetes dengan string sertifikat yang dikodekan base64 Anda di bidang
data
.apiVersion: v1 kind: Secret metadata: name: custom-ca-trust-secret namespace: kube-system type: Opaque data: ca1.crt: | {base64EncodedCertStringHere} ca2.crt: | {anotherBase64EncodedCertStringHere}
Data dari rahasia ini digunakan untuk memperbarui CA pada semua node. Pastikan rahasia diberi nama
custom-ca-trust-secret
dan dibuat dikube-system
namespace layanan. Menginstal CA menggunakan rahasia dikube-system
namespace memungkinkan rotasi CA tanpa perlu rekreasi simpul. Untuk memperbarui atau menghapus CA, Anda dapat mengedit dan menerapkan manifes YAML. Polling kluster untuk perubahan dan memperbarui simpul yang sesuai. Mungkin perlu waktu beberapa menit sebelum perubahan diterapkan.Catatan
mulai ulang kontainer pada simpul mungkin diperlukan agar CA diambil dengan benar. Jika muncul seperti CA tidak ditambahkan dengan benar ke penyimpanan kepercayaan simpul, Anda dapat memicu mulai ulang menggunakan perintah berikut dari shell simpul:
systemctl restart containerd
Mengonfigurasi kluster AKS baru untuk menggunakan CA kustom
Konfigurasikan kluster AKS baru untuk menggunakan CA kustom menggunakan
az aks create
perintah dengan--enable-custom-ca-trust
parameter .az aks create \ --resource-group <resource-group-name> \ --name <cluster-name> \ --node-count 2 \ --enable-custom-ca-trust \ --generate-ssh-keys
Mengonfigurasi kluster AKS baru untuk menggunakan CA kustom dengan CA yang diinstal sebelum simpul di-boot
Konfigurasikan kluster AKS baru untuk menggunakan CA kustom dengan CA yang diinstal sebelum simpul melakukan boot menggunakan
az aks create
perintah dengan--enable-custom-ca-trust
parameter dan--custom-ca-trust-certificates
.az aks create \ --resource-group <resource-group-name> \ --name <cluster-name> \ --node-count 2 \ --enable-custom-ca-trust \ --custom-ca-trust-certificates pathToFileWithCAs \ --generate-ssh-keys
Mengonfigurasi kluster AKS yang ada agar CA kustom diinstal sebelum simpul di-boot
Konfigurasikan kluster AKS yang ada agar CA kustom Anda ditambahkan ke penyimpanan kepercayaan simpul sebelum boot menggunakan
az aks update
perintah dengan--custom-ca-trust-certificates
parameter .az aks update \ --resource-group <resource-group-name> \ --name <cluster-name> \ --custom-ca-trust-certificates pathToFileWithCAs
Mengonfigurasi kumpulan simpul baru untuk menggunakan CA kustom
Konfigurasikan kumpulan simpul baru untuk menggunakan CA kustom menggunakan
az aks nodepool add
perintah dengan--enable-custom-ca-trust
parameter .az aks nodepool add \ --cluster-name <cluster-name> \ --resource-group <resource-group-name> \ --name <node-pool-name> \ --enable-custom-ca-trust \ --os-type Linux
Jika tidak ada kumpulan simpul lain dengan fitur yang diaktifkan, kluster harus merekonsiliasi pengaturannya agar perubahan diterapkan. Operasi ini terjadi secara otomatis sebagai bagian dari perulangan rekonsiliasi AKS. Sebelum operasi, set daemon dan pod tidak muncul di kluster. Anda dapat memicu operasi rekonsiliasi langsung menggunakan
az aks update
perintah . Set daemon dan pod muncul setelah pembaruan selesai.
Mengonfigurasi kumpulan simpul yang ada untuk menggunakan CA kustom
Konfigurasikan kumpulan simpul yang ada untuk menggunakan CA kustom menggunakan
az aks nodepool update
perintah dengan--enable-custom-ca-trust
parameter .az aks nodepool update \ --resource-group <resource-group-name> \ --cluster-name <cluster-name> \ --name <node-pool-name> \ --enable-custom-ca-trust
Jika tidak ada kumpulan simpul lain dengan fitur yang diaktifkan, kluster harus merekonsiliasi pengaturannya agar perubahan diterapkan. Operasi ini terjadi secara otomatis sebagai bagian dari perulangan rekonsiliasi AKS. Sebelum operasi, set daemon dan pod tidak muncul di kluster. Anda dapat memicu operasi rekonsiliasi langsung menggunakan
az aks update
perintah . Set daemon dan pod muncul setelah pembaruan selesai.
Menonaktifkan CA kustom pada kumpulan simpul
Nonaktifkan fitur CA kustom pada kumpulan simpul yang ada menggunakan
az aks nodepool update
perintah dengan--disable-custom-ca-trust
parameter .az aks nodepool update \ --resource-group <resource-group-name> \ --cluster-name <cluster-name> \ --name <node-pool-name> \ --disable-custom-ca-trust
Pemecahan Masalah
Fitur diaktifkan dan rahasia dengan CA ditambahkan, tetapi operasi gagal dengan Sertifikat X.509 Ditandatangani oleh kesalahan Otoritas Tidak Diketahui
Sertifikat yang salah diformat diteruskan dalam rahasia
AKS memerlukan sertifikasi yang diteruskan dalam rahasia yang dibuat pengguna untuk diformat dengan benar dan dikodekan base64. Pastikan CA yang Anda lewati dikodekan dengan benar base64 dan file dengan CA tidak memiliki jeda baris CRLF.
Sertifikat yang diteruskan ke --custom-ca-trust-certificates
tidak boleh dikodekan base64.
containerd belum mengambil sertifikat baru
Dari shell node, jalankan systemctl restart containerd
. Setelah kontainer dimulai ulang, sertifikasi baru diambil dengan benar oleh runtime kontainer.
Langkah berikutnya
Untuk informasi selengkapnya tentang praktik terbaik keamanan AKS, lihat Praktik terbaik untuk keamanan klaster dan pemutakhiran di Azure Kubernetes Service (AKS).
Azure Kubernetes Service