Gambaran umum manajemen sertifikat
Berlaku untuk: AKS di Azure Stack HCI, AKS di Windows Server
Hibrid AKS menggunakan kombinasi sertifikat dan autentikasi berbasis token untuk mengamankan komunikasi antara layanan (atau agen) yang bertanggung jawab atas berbagai operasi dalam platform. Autentikasi berbasis sertifikat menggunakan sertifikat digital untuk mengidentifikasi entitas (agen, mesin, pengguna, atau perangkat) sebelum memberikan akses ke sumber daya. Hibrid AKS mendukung opsi penyebaran hibrid untuk Azure Kubernetes Service (AKS).
Agen cloud
Saat Anda menyebarkan hibrid AKS, AKS menginstal agen yang digunakan untuk melakukan berbagai fungsi dalam kluster. Agen ini meliputi:
- Agen cloud: layanan yang bertanggung jawab atas orkestrasi platform dasar.
- Agen node: layanan yang berada di setiap node dan melakukan pekerjaan pembuatan komputer virtual, penghapusan, dll. secara aktual.
- Pod Sistem Manajemen Kunci (Key Management System/KMS): layanan yang bertanggung jawab atas manajemen kunci.
- Layanan lain - operator cloud, manajer sertifikat, dll.
Layanan agen cloud dalam hibrid AKS bertanggung jawab untuk mengatur operasi pembuatan, baca, perbarui, dan hapus (CRUD) komponen infrastruktur seperti Virtual Machines (VM), antarmuka Virtual Network (VNIC), dan Virtual Network (VNET) dalam kluster.
Komunikasi dengan agen cloud mengharuskan klien menyediakan sertifikat untuk mengamankan komunikasi ini. Setiap klien memerlukan identitas untuk dikaitkan dengannya. Identitas ini menentukan aturan Kontrol Akses Berbasis Peran (Role Based Access Control/RBAC) yang terkait dengan klien. Setiap identitas terdiri dari dua entitas:
- Token, yang digunakan untuk autentikasi awal, akan menghasilkan sertifikat.
- Sertifikat, yang diperoleh dari proses masuk di atas, akan digunakan untuk mengautentikasi semua komunikasi.
Setiap entitas memiliki masa berlaku yang standarnya adalah 90 hari. Setelah itu, entitas akan berhenti berlaku. Setiap klien harus memperpanjang sertifikat dan merotasi token apabila ingin tetap mengakses agen cloud.
Jenis sertifikat
Ada dua jenis sertifikat yang digunakan dalam hibrid AKS:
- Sertifikat CA agen cloud: sertifikat yang digunakan untuk menandatangani/memvalidasi sertifikat klien. Sertifikat ini berlaku selama 365 hari (1 tahun).
- Sertifikat klien: sertifikat yang dikeluarkan oleh sertifikat CA agen cloud bagi klien untuk mengautentikasi akses ke agen cloud. Sertifikat ini biasanya berlaku selama 90 hari.
Microsoft menyarankan agar Anda memperbarui kluster dalam waktu 60 hari setelah rilis baru tersedia. Alasannya, selain memastikan sertifikat dan token internal tetap terbaru, pembaruan tersebut juga memastikan Anda dapat menikmati fitur baru, perbaikan bug, serta patch keamanan penting terbaru. Pembaruan bulanan ini akan merotasi token yang tidak dapat dirotasi secara otomatis saat operasi normal kluster. Masa berlaku sertifikat dan token akan diatur ulang menjadi 90 hari sejak tanggal kluster diperbarui.
Komunikasi aman dengan sertifikat dalam hibrid AKS
Sertifikat merupakan sarana untuk membangun komunikasi yang aman antar komponen dalam kluster. Hibrid AKS menyediakan provisi zero-touch, out-of-the-box, dan manajemen sertifikat untuk komponen Kubernetes bawaan. Dalam artikel ini, Anda akan mempelajari cara memprovisikan dan mengelola sertifikat dalam hibrid AKS.
Sertifikat dan OS
Hibrid AKS menghasilkan dan menggunakan Otoritas Sertifikat (CA) dan sertifikat berikut.
OS Kluster:
- Server API memiliki OS Kluster, yang menandatangani sertifikat untuk komunikasi satu arah dari server API ke
kubelet
. - Masing-masing
kubelet
juga membuat Permintaan Penandatanganan Sertifikat (CSR), yang ditandatangani oleh CA Kluster, untuk komunikasi darikubelet
ke api server. - Penyimpanan nilai kunci etcd memiliki sertifikat yang ditandatangani oleh OS Kluster untuk komunikasi dari etcd ke server API.
OS etcd:
- Penyimpanan nilai kunci etcd memiliki OS etcd yang menandatangani sertifikat untuk mengautentikasi dan mengotorisasi replikasi data antar-replika etcd di kluster.
CA Proksi Depan:
- OS Proksi Depan mengamankan komunikasi antara server API dan server API ekstensi.
Penyediaan sertifikat
Penyediaan sertifikat untuk kubelet
dilakukan menggunakan bootstrapping TLS. Untuk semua sertifikat lainnya, gunakan pembuatan kunci dan sertifikat berbasis YAML.
- Sertifikat disimpan dalam /etc/kubernetes/pki.
- Kuncinya adalah RSA 4096, EcdsaCurve: P384
Catatan
Sertifikat akar valid selama 10 tahun. Semua sertifikat non-akar lainnya berumur pendek dan berlaku selama empat hari.
Perpanjangan dan manajemen sertifikat
Sertifikat non-akar diperbarui secara otomatis. Semua sertifikat sarana kontrol untuk Kubernetes kecuali sertifikat berikut dikelola:
- Sertifikat server Kubelet
- Sertifikat klien Kubeconfig
Sebagai praktik terbaik keamanan, Anda harus menggunakan akses menyeluruh Direktori Aktif untuk autentikasi pengguna.
Pencabutan sertifikat
Pencabutan sertifikat harus jarang terjadi, dan harus dilakukan pada saat perpanjangan sertifikat.
Setelah Anda memiliki nomor seri sertifikat yang ingin dicabut, gunakan Kubernetes Custom Resource untuk menentukan dan menyimpan informasi pencabutan. Setiap objek pencabutan dapat terdiri dari satu atau lebih entri pencabutan.
Untuk melakukan pencabutan, gunakan salah satu hal berikut:
- Nomor seri
- Grup
- Nama DNS
- Alamat IP
Waktu notBefore
dapat ditentukan untuk mencabut hanya sertifikat yang dikeluarkan sebelum tanda waktu tertentu. notBefore
Jika waktu tidak ditentukan, semua sertifikat yang ada dan yang akan datang yang cocok dengan pencabutan akan dicabut.
Catatan
Pencabutan kubelet
sertifikat server saat ini tidak tersedia.
Jika Anda menggunakan nomor seri saat melakukan pencabutan, Anda dapat menggunakan Repair-AksHciClusterCerts
perintah PowerShell, yang dijelaskan di bawah ini, untuk membuat kluster Anda dalam keadaan berfungsi. Jika Anda menggunakan salah satu bidang lain yang tercantum sebelumnya, pastikan untuk menentukan notBefore
waktu.
apiVersion: certificates.microsoft.com/v1
kind: RenewRevocation
metadata:
name: my-renew-revocation
namespace: kube-system
spec:
description: My list of renew revocations
revocations:
- description: Revoked certificates by serial number
kind: serialnumber
notBefore: "2020-04-17T17:22:05Z"
serialNumber: 77fdf4b1033b387aaace6ce1c18710c2
- description: Revoked certificates by group
group: system:nodes
kind: Group
- description: Revoked certificates by DNS
dns: kubernetes.default.svc.
kind: DNS
- description: Revoked certificates by DNS Suffix
dns: .cluster.local
kind: DNS
- description: Revoked certificates by IP
ip: 170.63.128.124
kind: IP