Security Center mendukung koneksi ke kluster Kubernetes yang dikelola sendiri untuk deteksi ancaman dan manajemen risiko terpusat. Topik ini menjelaskan cara mendaftarkan kluster Kubernetes yang dikelola sendiri ke Security Center dan, secara opsional, mengaktifkan deteksi ancaman berbasis log.
Persyaratan edisi
| Metode penagihan | Edisi yang diperlukan | Persyaratan tingkat server |
|---|---|---|
| Langganan | Ultimate | Edisi perlindungan harus diatur ke Ultimate — lihat Lampirkan edisi perlindungan ke server |
| Pay-as-you-go | Host and Container Security diaktifkan | Tingkat perlindungan harus diatur ke Host and Container Protection — lihat Lampirkan tingkat perlindungan server |
Jika edisi Anda saat ini tidak memenuhi persyaratan, upgrade Security Center atau beli layanan sebelum melanjutkan.
Batasan wilayah
Batasan wilayah hanya berlaku untuk kluster yang diterapkan di virtual private cloud (VPC):
Kluster berbasis VPC: Kluster harus berada di China (Hangzhou), China (Beijing), China (Shanghai), China (Shenzhen), atau China (Hong Kong).
Kluster yang terhubung ke Internet: Tidak ada batasan wilayah.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster Kubernetes yang sedang berjalan di server target
Docker yang diinstal di server
(Untuk analisis eksposur kluster) Konfigurasi jaringan yang telah diselesaikan berdasarkan jenis penerapan Anda — lihat Kelola kluster dan image
Konfigurasikan penerusan traffic untuk penerapan cloud hibrida
Jika kluster Anda diterapkan di cloud hibrida dan tidak dapat diakses melalui Internet, konfigurasikan port forwarding pada instans Elastic Compute Service (ECS) untuk mengarahkan traffic ke server on-premises tempat API server kluster berjalan. Kluster tidak dapat berkomunikasi dengan Security Center jika penerusan ini tidak dikonfigurasi.
Contoh berikut meneruskan traffic dari Port A pada instans ECS 10.0.XX.XX ke Port B pada server on-premises 192.168.XX.XX.
CentOS 7 — firewall-cmd
firewall-cmd --permanent --add-forward-port=port=<Port A>:proto=tcp:toaddr=<192.168.XX.XX>:toport=<Port B>CentOS 7 — iptables
# Aktifkan IP forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward
# Tambahkan aturan pengalihan
iptables -t nat -A PREROUTING -p tcp --dport <Port A> -j DNAT --to-destination <192.168.XX.XX>:<Port B>Windows — netsh
netsh interface portproxy add v4tov4 listenport=<Port A> listenaddress=* connectaddress=<192.168.XX.XX> connectport=<Port B> protocol=tcpTambahkan alamat IP Security Center ke daftar putih
Jika kebijakan kontrol akses diterapkan pada kluster Anda, tambahkan alamat IP Security Center untuk wilayah Anda ke daftar putih. Kluster tidak dapat berkomunikasi dengan Security Center jika alamat-alamat tersebut diblokir.
| Wilayah | Alamat IP publik | Alamat IP privat |
|---|---|---|
| China (Hangzhou) | 47.96.166.214 | 100.104.12.64/26 |
| China (Shanghai) | 139.224.15.48, 101.132.180.26, 47.100.18.171, 47.100.0.176, 139.224.8.64, 101.132.70.106, 101.132.156.228, 106.15.36.12, 139.196.168.125, 47.101.178.223, dan 47.101.220.176 | 100.104.43.0/26 |
| China (Qingdao) | 47.104.111.68 | 100.104.87.192/26 |
| China (Beijing) | 47.95.202.245 | 100.104.114.192/26 |
| China (Zhangjiakou) | 39.99.229.195 | 100.104.187.64/26 |
| China (Hohhot) | 39.104.147.68 | 100.104.36.0/26 |
| China (Shenzhen) | 120.78.64.225 | 100.104.250.64/26 |
| China (Guangzhou) | 8.134.118.184 | 100.104.111.0/26 |
| China (Hong Kong) | 8.218.59.176 | 100.104.130.128/26 |
| Jepang (Tokyo) | 47.74.24.20 | 100.104.69.0/26 |
| Singapura | 8.219.240.137 | 100.104.67.64/26 |
| AS (Silicon Valley) | 47.254.39.224 | 100.104.145.64/26 |
| AS (Virginia) | 47.252.4.238 | 100.104.36.0/26 |
| Jerman (Frankfurt) | 47.254.158.71 | 172.16.0.0/20 |
| Inggris (London) | 8.208.14.12 | 172.16.0.0/20 |
| Indonesia (Jakarta) | 149.129.238.99 | 100.104.193.128/26 |
Tambahkan kluster Kubernetes yang dikelola sendiri ke Security Center
Masuk ke Konsol Security CenterKonsol Security CenterKonsol Security Center. Di bilah navigasi atas, pilih wilayah aset: China atau Di Luar China.
Di panel navigasi kiri, pilih Assets > Container.
Di tab Cluster, klik Self-built cluster access.
Di panel Self-built cluster management, klik Self-built cluster access. Di panel yang muncul, konfigurasikan parameter kluster dan klik Generate Command.
Parameter Deskripsi Cluster name Nama untuk kluster. Contoh: text-001.Expiration Time Waktu kedaluwarsa perintah onboarding yang dihasilkan. Group Grup tempat kluster ditugaskan. Atur ke grup server tempat kluster berjalan. Service Provider Penyedia server tempat kluster berjalan. (Opsional) Di bagian Enable Log Collection, pilih apakah akan mengaktifkan deteksi ancaman berbasis log. Saat diaktifkan, Security Center mengumpulkan log audit tambahan untuk analisis risiko yang lebih mendalam. Ini memerlukan komponen Logtail dan pengaturan audit kluster yang telah dikonfigurasi terlebih dahulu — lihat Aktifkan deteksi ancaman berbasis log.
Masuk ke server tempat kluster berjalan. Buat file YAML dengan nama sesuai kluster Anda (misalnya,
text-001.yaml), tempel perintah yang dihasilkan ke dalam file tersebut, lalu jalankan:kubectl apply -f text-001.yamlSetelah perintah selesai, kluster akan muncul di daftar kluster pada tab Cluster.
Ganti text-001 pada nama file dan perintah dengan nilai yang Anda masukkan untuk Nama kluster pada langkah 4.Tambahkan node master dan node yang memiliki taint
Perintah yang dihasilkan tidak menjadwalkan pod DaemonSet pada node master atau node yang memiliki taint secara default. Untuk menyertakan node-node tersebut, tambahkan toleransi ke templat pod dalam file YAML sebelum menjalankan kubectl apply.
Untuk node master — tambahkan berikut di bawah spec > template > spec:
spec:
template:
spec:
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoScheduleToleransi ini memungkinkan pod DaemonSet dijadwalkan pada node dengan taint node-role.kubernetes.io/master:NoSchedule, sehingga menambahkan node master ke Security Center sebagai bagian dari kluster.
Untuk node lain yang memiliki taint — terapkan pola toleransi yang sama, sesuaikan dengan kunci dan efek taint untuk setiap jenis node.
Aktifkan deteksi ancaman berbasis log
Deteksi ancaman berbasis log tersedia untuk kluster yang menjalankan Kubernetes 1.16 atau versi lebih baru. Saat diaktifkan, Security Center mendeteksi operasi berisiko tinggi dan perilaku serangan dengan menganalisis log audit server API.
Langkah 1. Instal Logtail
Ikuti petunjuk Instal Logtail dalam Instal komponen Logtail di kluster Kubernetes yang dikelola sendiri.
Langkah 2. Aktifkan auditing kluster
Langkah-langkah berikut didasarkan pada Aktifkan auditing kluster untuk kluster terdaftar.
Buat kluster terdaftar ACK One dan tambahkan kluster Kubernetes yang dikelola sendiri ke dalamnya. Lihat Buat kluster terdaftar ACK One.
Di setiap node master, perbarui
/etc/kubernetes/audit-policy.yamldengan kebijakan berikut:Untuk kluster yang menjalankan Kubernetes sebelum versi 1.24, atur
apiVersionkeaudit.k8s.io/v1beta1. Untuk versi 1.24 dan seterusnya, gunakanaudit.k8s.io/v1. Lihat (Dihentikan) Kubernetes 1.24.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-policyDi setiap node master, perbarui
/etc/kubernetes/manifests/kube-apiserver.yaml:Tambahkan flag
--audit-log-*berikut ke bagiancommand: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 variabel lingkungan berikut ke bagian
env. Ganti{cluster_id}dengan ID kluster Anda — temukan di tab Cluster di Konsol Security Center.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"Mount direktori log audit dan file kebijakan ke dalam pod kube-apiserver:
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. Verifikasi pengumpulan log
Masuk ke Konsol Simple Log Service.Masuk ke Konsol Security Center.Masuk ke Konsol Security Center.
Klik nama proyek yang dibuat selama instalasi Logtail.
Konfirmasi bahwa log audit mengalir ke Logstore yang diharapkan.
Langkah 4. Aktifkan deteksi ancaman di Security Center
Masuk ke Konsol Security CenterKonsol Security CenterKonsol Security Center. Di bilah navigasi atas, pilih China atau Outside China.
Di panel navigasi kiri, pilih Assets > Container.
Di tab Cluster, klik Self-built cluster access.
Temukan kluster 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.
Parameter Deskripsi Contoh Region of Log Audit Service Wilayah tempat Anda ingin menyimpan log — Project of Log Audit Service Proyek Simple Log Service yang dibuat selama instalasi Logtail k8s-log-custom-sd89ehdqLogstore of Log Audit Service Logstore yang dibuat otomatis selama instalasi Logtail audit-027b007a7dd11967a9f7e2449d8dc497