Container Service for Kubernetes mengumpulkan dan menganalisis log serta event audit dari berbagai komponen Kubernetes, seperti API server, Ingress, komponen lapisan kontrol, dan event Kubernetes kritis. Kemampuan ini mendukung analisis akar penyebab dan keterlacakan ketika terjadi insiden keamanan atau masalah pada kluster.
Gunakan Fitur Audit Kluster
Pada kluster Kubernetes, log audit API server membantu administrator kluster mencatat dan melacak operasi harian yang dilakukan oleh pengguna berbeda. Kemampuan ini penting untuk operasi dan pemeliharaan keamanan kluster. Untuk informasi tentang pengumpulan dan analisis log audit dengan Simple Log Service, konfigurasi aturan peringatan kustom untuk log audit, serta cara menonaktifkan fitur audit kluster, lihat Gunakan Fitur Audit API Server Kluster.
Kebijakan audit untuk Container Service for Kubernetes (ACK) adalah sebagai berikut:
Untuk informasi lebih lanjut tentang deskripsi bidang log audit, lihat audit-k8s-io-v1-Event.
apiVersion: audit.k8s.io/v1beta1 # Ini wajib.
kind: Policy
# Jangan hasilkan event audit untuk semua permintaan pada tahap RequestReceived.
omitStages:
- "RequestReceived"
rules:
# Permintaan berikut diidentifikasi secara manual sebagai ber-volume tinggi dan berisiko rendah. Oleh karena itu, batalkan permintaan ini.
- level: None
users: ["system:kube-proxy"]
verbs: ["watch"]
resources:
- group: "" # core
resources: ["endpoints", "services"]
- level: None
users: ["system:unsecured"]
namespaces: ["kube-system"]
verbs: ["get"]
resources:
- group: "" # core
resources: ["configmaps"]
- level: None
users: ["kubelet"] # identitas kubelet lawas
verbs: ["get"]
resources:
- group: "" # core
resources: ["nodes"]
- level: None
userGroups: ["system:nodes"]
verbs: ["get"]
resources:
- group: "" # core
resources: ["nodes"]
- level: None
users:
- system:kube-controller-manager
- system:kube-scheduler
- system:serviceaccount:kube-system:endpoint-controller
verbs: ["get", "update"]
namespaces: ["kube-system"]
resources:
- group: "" # core
resources: ["endpoints"]
- level: None
users: ["system:apiserver"]
verbs: ["get"]
resources:
- group: "" # core
resources: ["namespaces"]
# Jangan catat URL read-only berikut.
- level: None
nonResourceURLs:
- /healthz*
- /version
- /swagger*
# Jangan catat permintaan event.
- level: None
resources:
- group: "" # core
resources: ["events"]
# Secrets, ConfigMaps, dan TokenReviews dapat berisi data sensitif dan biner,
# sehingga hanya catat pada tingkat metadata.
- level: Metadata
resources:
- group: "" # core
resources: ["secrets", "configmaps"]
- group: authentication.k8s.io
resources: ["tokenreviews"]
- level: Request
verbs: ["get", "list", "watch"]
resources:
- group: "" # core
- group: "admissionregistration.k8s.io"
- group: "apps"
- group: "authentication.k8s.io"
- group: "authorization.k8s.io"
- group: "autoscaling"
- group: "batch"
- group: "certificates.k8s.io"
- group: "extensions"
- group: "networking.k8s.io"
- group: "policy"
- group: "rbac.authorization.k8s.io"
- group: "settings.k8s.io"
- group: "storage.k8s.io"
# Tingkat default untuk API yang dikenal.
- level: RequestResponse
resources:
- group: "" # core
- group: "admissionregistration.k8s.io"
- group: "apps"
- group: "authentication.k8s.io"
- group: "authorization.k8s.io"
- group: "autoscaling"
- group: "batch"
- group: "certificates.k8s.io"
- group: "extensions"
- group: "networking.k8s.io"
- group: "policy"
- group: "rbac.authorization.k8s.io"
- group: "settings.k8s.io"
- group: "storage.k8s.io"
- group: "autoscaling.alibabacloud.com"
# Tingkat default untuk semua permintaan lainnya.
- level: MetadataSesuaikan Aturan Log Audit Kluster
ACK memungkinkan Anda memperluas kemampuan log audit kluster dengan menambahkan aturan kustom. Konfigurasikan aturan ini di auditPolicyRules pada halaman konfigurasi kube-apiserver. Contoh berikut menunjukkan caranya.

# Aturan harus didefinisikan dalam format daftar YAML
- level: RequestResponse
resources:
- group: "policy.alibabacloud.com"
resources: ["policies"]
- level: None
userGroups: ["system:nodes"]
verbs: ["update", "patch"]
resources:
- group: ""
resources: ["nodes/status", "pods/status"]Aturan sebelumnya memiliki dua tujuan:
Tingkatkan auditing: Catat semua operasi pada Template Kebijakan Container Service (
policies.policy.alibabacloud.com) pada tingkatRequestResponse.Kurangi auditing: Lewati pencatatan pembaruan status node dan Pod—seperti heartbeat—dari komponen kubelet dalam kelompok
system:nodes. Hal ini meminimalkan volume log yang tidak perlu.
Untuk detail tentang pendefinisian aturan log audit, lihat Auditing.
Saat mengonfigurasi aturan kustom, perhatikan hal berikut:
Cakupan aturan: Kotak input menerima daftar aturan audit (
rules), bukan objek kebijakan audit lengkap (Policy).Prioritas aturan: Untuk menjaga garis dasar keamanan audit kluster, Anda tidak dapat mengubah tingkat log untuk permintaan yang telah didefinisikan dalam aturan audit default Container Service.
Validitas aturan: Container Service memvalidasi aturan yang ditambahkan terhadap definisi bidang rules dalam policies.audit.k8s.io. Tambahkan hanya aturan audit yang valid, sebagaimana dijelaskan dalam dokumentasi resmi komunitas Kubernetes Audit. Penting: Format log yang salah dapat mengakibatkan apiserver tidak berfungsi dengan baik.
Aktifkan Auditing Aktivitas Internal exec Kontainer
Penyerang sering menggunakan perintah exec untuk masuk ke kontainer dan melancarkan serangan lateral. Secara default, log audit API server kluster tidak menangkap perintah yang dieksekusi setelah penyerang mendapatkan akses ke kontainer. Dengan fitur audit operasi internal kontainer, insinyur operasi dan pemeliharaan keamanan dapat mengambil catatan audit perintah yang dipicu penyerang di dalam instans kontainer. Hal ini mendukung keterlacakan dan remediasi segera untuk insiden keamanan.
Menggunakan Metadata Audit
Log audit Kubernetes mencakup dua anotasi yang menunjukkan apakah suatu permintaan diotorisasiauthorization.k8s.io/decision dan alasan keputusan tersebutauthorization.k8s.io/reason. Gunakan bidang-bidang ini untuk menentukan mengapa panggilan API tertentu diizinkan.
Pantau Event Kluster Mencurigakan Menggunakan NPD dengan Pusat Insiden Kubernetes SLS
NPD (Node Problem Detector) adalah tool diagnostik node Kubernetes yang dikelola oleh Alibaba Cloud Container Service for Kubernetes (ACK). Tool ini mendeteksi anomali node—seperti hang Docker Engine, hang kernel Linux, kegagalan egress jaringan, dan kehabisan deskriptor file—lalu mengonversinya menjadi event node. Saat digunakan bersama kube-eventer, tool ini memungkinkan peringatan event node end-to-end. Selain masalah node real-time yang dideteksi oleh NPD, kluster Kubernetes juga menghasilkan event akibat perubahan status—misalnya, eviction Pod dan kegagalan pull image. Selain itu, Pusat Insiden Kubernetes di Simple Log Service (SLS) mengagregasi semua event Kubernetes secara real time, termasuk operasi mencurigakan seperti pengguna biasa yang mengakses kontainer tertentu menggunakan exec. Layanan ini menyediakan kemampuan penyimpanan, kueri, analisis, visualisasi, dan peringatan untuk membantu personel operasi dan pemeliharaan keamanan mengidentifikasi risiko terhadap stabilitas kluster secara cepat. Untuk informasi lebih lanjut, lihat Pemantauan Event.
Aktifkan Pemantauan Dasbor Ingress
Komponen Ingress Alibaba Cloud mencatat semua permintaan HTTP ke output standar. Alibaba Cloud mengintegrasikan layanan log akses ini dengan Simple Log Service (SLS), memungkinkan Anda membangun dasbor analisis dan pemantauan log dengan cepat. Dasbor visualisasi Ingress menampilkan metrik utama—termasuk PV, UV, traffic, latensi respons, dan statistik Top URL—sehingga Anda dapat memantau dinamika lalu lintas layanan secara real time dan segera mendeteksi akses berbahaya atau serangan denial-of-service (DoS). Untuk informasi lebih lanjut, lihat Pemantauan Dasbor Ingress.
Aktifkan Log CoreDNS
Alibaba Cloud Container Service for Kubernetes (ACK) men-deploy CoreDNS sebagai server DNS kluster. Tinjau log CoreDNS untuk memecahkan masalah seperti resolusi DNS lambat atau akses ke nama domain berisiko tinggi. Dasbor Simple Log Service menyediakan laporan analisis log untuk CoreDNS, membantu Anda segera mengidentifikasi permintaan nama domain mencurigakan. Untuk informasi lebih lanjut, lihat Analisis dan Pemantauan Log CoreDNS.