Pusat Keamanan memungkinkan Anda menambahkan kluster Kubernetes yang dikelola sendiri untuk manajemen terpusat dan deteksi risiko. Topik ini menjelaskan cara menambahkan kluster tersebut ke Pusat Keamanan.
Persyaratan edisi
Layanan berlangganan: Ultimate (Jika versi Anda saat ini tidak didukung, Anda harus tingkatkan).
CatatanTingkat perlindungan server harus diatur ke Ultimate. Untuk informasi lebih lanjut, lihat Lampirkan tingkat perlindungan ke server.
Layanan bayar sesuai penggunaan: Layanan bayar sesuai penggunaan diaktifkan untuk Host and Container Security. Jika tidak, lihat Pembelian.
CatatanAnda harus mengatur tingkat perlindungan server ke Host and Container Protection. Untuk informasi lebih lanjut, lihat Lampirkan tingkat perlindungan server.
Batasan
Kluster Kubernetes yang dikelola sendiri harus berada di wilayah yang didukung.
Jika kluster Kubernetes yang dikelola sendiri diterapkan dalam virtual private cloud (VPC), kluster tersebut harus berada di wilayah China (Hangzhou), China (Beijing), China (Shanghai), China (Shenzhen), atau China (Hong Kong).
Jika kluster Kubernetes yang dikelola sendiri diterapkan di Internet, tidak ada batasan wilayah.
Prasyarat
Kluster Kubernetes telah dibuat di server Anda.
Docker telah diinstal.
Untuk menggunakan fitur analisis eksposur kluster, konfigurasikan jaringan berikut berdasarkan metode penerapan kluster dan kebijakan kontrol akses Anda. Untuk informasi lebih lanjut, lihat Analisis eksposur kluster.
Jika kluster Kubernetes yang dikelola sendiri diterapkan di cloud hibrida dan tidak dapat diakses melalui Internet, aturan pengalihan lalu lintas dikonfigurasi dan koneksi jaringan normal.
Jika kebijakan kontrol akses dikonfigurasikan untuk kluster Anda, pastikan alamat IP yang sesuai dengan wilayah kontainer Anda ditambahkan ke daftar putih.
Tambahkan kluster Kubernetes yang dikelola sendiri ke Pusat Keamanan
Masuk ke konsol Pusat Keamanan. Di bilah navigasi atas, pilih wilayah aset yang ingin Anda kelola. Anda dapat memilih China atau Outside China.
Di panel navigasi sisi kiri, pilih .
Di tab Cluster, klik Self-built cluster access.
Di panel Self-built cluster management, klik Self-built cluster access. Di panel yang muncul, konfigurasikan kluster yang ingin Anda tambahkan ke Pusat Keamanan dan klik Generate Command.
Parameter
Deskripsi
Cluster name
Masukkan nama kluster Kubernetes yang dikelola sendiri. Contoh: text-001.
Expiration Time
Pilih waktu kadaluarsa perintah yang digunakan untuk menambahkan kluster Kubernetes yang dikelola sendiri.
Group
Pilih kelompok ke mana Anda ingin menambahkan kluster. Atur parameter ini ke kelompok server tempat kluster dibuat.
Service Provider
Pilih penyedia layanan server tempat kluster dibuat.
Opsional. Di bagian Enable Log Collection, tentukan apakah akan mengaktifkan deteksi ancaman berbasis log untuk kluster Kubernetes.
Setelah Anda mengaktifkan deteksi ancaman berbasis log, Pusat Keamanan mengumpulkan lebih banyak log audit untuk deteksi risiko lebih lanjut. Sebelum Anda mengaktifkan deteksi ancaman berbasis log, Anda harus menginstal komponen Logtail di kluster Kubernetes dan mengonfigurasi pengaturan terkait audit. Untuk informasi lebih lanjut, lihat Aktifkan deteksi ancaman berbasis log.
Masuk ke server tempat kluster dibuat, buat file YAML bernama text-001 di server, salin perintah yang dihasilkan ke file tersebut, dan jalankan perintah
kubectl apply -f text-001.yamldi server. Kemudian, kluster ditambahkan ke Pusat Keamanan.Perintah yang dihasilkan di Langkah 4 tidak menambahkan Node Master dan taint secara default. Jika Anda perlu menambahkan Node Master dan taint, Anda dapat memodifikasi konfigurasi file YAML berdasarkan instruksi berikut.
Setelah kluster Kubernetes yang dikelola sendiri ditambahkan ke Pusat Keamanan, Anda dapat melihat informasi kluster di daftar kluster pada tab Cluster.
Aktifkan deteksi ancaman berbasis log
Jika versi Kubernetes kluster adalah 1.16 atau lebih baru, Anda dapat mengaktifkan deteksi ancaman berbasis log untuk deteksi risiko yang lebih komprehensif pada kluster. Risiko seperti operasi berisiko tinggi dan perilaku serangan dapat dideteksi.
Langkah 1. Instal komponen Logtail
Untuk instruksi spesifik, lihat Install Logtail di Instal komponen Logtail di kluster Kubernetes yang dikelola sendiri.
Langkah 2. Aktifkan fitur audit kluster
Prosedur berikut hanya untuk referensi. Untuk informasi lebih lanjut, lihat Aktifkan audit kluster untuk kluster.
Buat kluster terdaftar dan tambahkan kluster Kubernetes yang dikelola sendiri ke kluster terdaftar. Untuk informasi lebih lanjut, lihat Buat kluster terdaftar ACK One.
Konfigurasikan file audit-policy.yaml untuk node master.
Masuk ke node master dan modifikasi file /etc/kubernetes/audit-policy.yaml berdasarkan template berikut. Anda juga harus melakukan langkah ini pada node master lainnya.
CatatanJika versi Kubernetes kluster lebih awal dari 1.24, atur
apiVersionkeaudit.k8s.io/v1beta1. Jika tidak, aturapiVersionkeaudit.k8s.io/v1. Untuk informasi lebih lanjut, lihat (Tidak digunakan lagi) Kubernetes 1.24.apiVersion: audit.k8s.io/v1beta1 kind: Policy # Jangan hasilkan peristiwa audit untuk semua permintaan di tahap RequestReceived. omitStages: - "RequestReceived" rules: # Permintaan berikut secara manual diidentifikasi sebagai volume tinggi dan risiko rendah, # jadi abaikan. - 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 lama 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 baca-saja berikut. - level: None nonResourceURLs: - /healthz* - /version - /swagger* # Jangan catat permintaan peristiwa. - level: None resources: - group: "" # core resources: ["events"] # Rahasia, ConfigMaps, dan TokenReviews dapat berisi data sensitif & biner, # jadi hanya catat pada tingkat Metadata. - level: Metadata resources: - group: "" # core resources: ["secrets", "configmaps"] - group: authentication.k8s.io resources: ["tokenreviews"] # Tanggapan Get bisa besar; lewati mereka. - 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 diketahui - 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" # Tingkat default untuk semua permintaan lainnya. - level: MetadataKonfigurasikan file kube-apiserver.yaml untuk node master.
Masuk ke node master dan modifikasi file /etc/kubernetes/manifests/kube-apiserver.yaml berdasarkan deskripsi berikut. Anda juga harus melakukan langkah ini pada node master lainnya.
Tambahkan parameter
--audit-log-*ke bagian command:... spec: containers: - command: - kube-apiserver - --audit-log-maxbackup=10 - --audit-log-maxsize=100 - --audit-log-path=/var/log/kubernetes/kubernetes.audit - --audit-log-maxage=30 - --audit-policy-file=/etc/kubernetes/audit-policy.yaml ...Tambahkan parameter
aliyun_logs_audit-*ke bagian env.Anda harus mengganti {cluster_id} dengan ID kluster Anda. Untuk mendapatkan ID kluster Anda, lakukan operasi berikut: Masuk ke konsol Pusat Keamanan dan buka tab Cluster di halaman Kontainer. Gambar berikut menunjukkan cara mendapatkan ID kluster Anda.

... spec: containers: - command: - kube-apiserver - --audit-log-maxbackup=10 - --audit-log-maxsize=100 - --audit-log-path=/var/log/kubernetes/kubernetes.audit - --audit-log-maxage=30 - --audit-policy-file=/etc/kubernetes/audit-policy.yaml ... ... env: - name: aliyun_logs_audit-${cluster_id} value: /var/log/kubernetes/kubernetes.audit - name: aliyun_logs_audit-${cluster_id}_tags value: audit=apiserver - name: aliyun_logs_audit-${cluster_id}_product value: k8s-audit - name: aliyun_logs_audit-${cluster_id}_jsonfile value: "true" image: registry-vpc.cn-shenzhen.aliyuncs.com/acs/kube-apiserver:v1.20.4-aliyun.1Gunakan template berikut untuk memasang /etc/kubernetes/audit-policy.yaml ke pod kube-apiserver:
... spec: containers: - command: - kube-apiserver - --audit-log-maxbackup=10 - --audit-log-maxsize=100 - --audit-log-path=/var/log/kubernetes/kubernetes.audit - --audit-log-maxage=30 - --audit-policy-file=/etc/kubernetes/audit-policy.yaml ... ... env: - name: aliyun_logs_audit-${cluster_id} value: /var/log/kubernetes/kubernetes.audit - name: aliyun_logs_audit-${cluster_id}_tags value: audit=apiserver - name: aliyun_logs_audit-${cluster_id}_product value: k8s-audit - name: aliyun_logs_audit-${cluster_id}_jsonfile value: "true" image: registry-vpc.cn-shenzhen.aliyuncs.com/acs/kube-apiserver:v1.20.4-aliyun.1 ... ... volumeMounts: - mountPath: /var/log/kubernetes name: k8s-audit - mountPath: /etc/kubernetes/audit-policy.yaml name: audit-policy readOnly: true ... ... volumes: - hostPath: path: /var/log/kubernetes type: DirectoryOrCreate name: k8s-audit - hostPath: path: /etc/kubernetes/audit-policy.yaml type: FileOrCreate name: audit-policy ...
Langkah 3. Periksa apakah log dikumpulkan
Masuk ke Konsol Simple Log Service.
Klik nama proyek yang diperlukan.
Periksa apakah log terkait telah dikumpulkan ke Logstore yang ditentukan dalam proyek.
Langkah 4. Aktifkan deteksi ancaman
Masuk ke konsol Pusat Keamanan. Di bilah navigasi atas, pilih wilayah aset yang ingin Anda kelola. Anda dapat memilih China atau Outside China.
Di panel navigasi sisi kiri, pilih .
Di tab Cluster, klik Self-built cluster access.
Temukan kluster Kubernetes yang dikelola sendiri yang diperlukan dan klik Edit di kolom Actions.
Di tab Enable Log Collection, pilih Enable Kubernetes Log Reporting to Detect Threats, konfigurasikan parameter berikut, lalu klik Save.
Region of Log Audit Service: Pilih wilayah tempat Anda ingin menyimpan log.
Project of Log Audit Service: Masukkan nama proyek yang Anda buat di Langkah 1. Instal komponen Logtail. Contoh: k8s-log-custom-sd89ehdq.
Logstore of Log Audit Service: Masukkan nama Logstore yang dibuat secara otomatis di Langkah 1. Instal komponen Logtail. Contoh: audit-027b007a7dd11967a9f7e2449d8dc497.