All Products
Search
Document Center

Security Center:Tambahkan kluster Kubernetes yang dikelola sendiri ke Security Center

Last Updated:Sep 10, 2026

Security Center mendukung koneksi kluster Kubernetes (K8s) yang dikelola sendiri untuk manajemen terpusat dan deteksi risiko keamanan. Topik ini menjelaskan cara menghubungkan kluster K8s yang dikelola sendiri.

Batasan Versi

  • Langganan: Ultimate (Jika edisi saat ini tidak mendukung fitur ini, upgrade).

    Catatan

    Edisi perlindungan server harus diatur ke edisi yang Anda beli. Untuk informasi selengkapnya, lihat Bind a server protection edition.

  • Pay-as-you-go: Host and Container Security pay-as-you-go telah diaktifkan (Jika belum diaktifkan, purchase).

    Catatan

    Tingkat perlindungan server harus diatur ke Host and Container Security. Untuk informasi selengkapnya, lihat Bind a server protection level.

Pembatasan

Pembatasan wilayah untuk onboarding adalah sebagai berikut:

  • Jika jenis jaringan kluster K8s yang dikelola sendiri adalah VPC, kluster hanya dapat dihubungkan di wilayah Tiongkok (Hangzhou), Tiongkok (Beijing), Tiongkok (Shanghai), Tiongkok (Shenzhen), dan Tiongkok (Hong Kong).

  • Jika jenis jaringan kluster K8s yang dikelola sendiri adalah jaringan publik, tidak ada pembatasan wilayah.

Prasyarat

  • Kluster K8s telah disiapkan di server.

  • Docker telah diinstal.

  • Jika Anda ingin menggunakan fitur analisis eksposur kluster, Anda juga harus menyelesaikan konfigurasi jaringan berikut berdasarkan mode penerapan kluster dan konfigurasi kebijakan kontrol akses Anda. Untuk informasi selengkapnya, lihat Analyze cluster exposure.

    • Jika kluster K8s Anda diterapkan di cloud hibrida dan tidak dapat diakses langsung melalui jaringan publik, konfigurasikan aturan pengalihan lalu lintas untuk memastikan konektivitas jaringan sebelum menghubungkan kluster ke Security Center.

      Konfigurasikan aturan pengalihan lalu lintas

      Tentukan instance ECS dan alihkan lalu lintas akses instance ECS tersebut ke server IDC tempat API server kluster K8s pihak ketiga berada.

      Sebagai contoh, alihkan lalu lintas Port A pada instance ECS 10.0.XX.XX yang melakukan tugas pengalihan ke Port B pada server IDC 192.168.XX.XX tempat API server kluster K8s pihak ketiga berada.

      • Perintah CentOS 7

        • Gunakan firewall-cmd:

          firewall-cmd --permanent --add-forward-port=port=<Port A>:proto=tcp:toaddr=<192.168.XX.XX>:toport=<Port B>
        • Gunakan iptables.

        • # Aktifkan penerusan port
          echo "1" > /proc/sys/net/ipv4/ip_forward
          # Konfigurasikan penerusan port
          iptables -t nat -A PREROUTING -p tcp --dport <Port A> -j DNAT --to-destination <192.168.XX.XX>:<Port B>
      • Perintah Windows

        netsh interface portproxy add v4tov4 listenport=<Port A> listenaddress=* connectaddress=<192.168.XX.XX> connectport=<Port B> protocol=tcp
    • Jika kebijakan kontrol akses dikonfigurasi untuk kluster Anda, pastikan kolam alamat IP wilayah tempat kontainer berada telah ditambahkan ke daftar putih kebijakan kontrol akses.

      Kolam alamat IP yang harus ditambahkan ke daftar putih

      Wilayah

      Alamat IP Publik

      Alamat IP Privat

      Tiongkok (Hangzhou)

      47.96.166.214

      100.104.12.64/26

      Tiongkok (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, 47.101.220.176

      100.104.43.0/26

      Tiongkok (Qingdao)

      47.104.111.68

      100.104.87.192/26

      Tiongkok (Beijing)

      47.95.202.245

      100.104.114.192/26

      Tiongkok (Zhangjiakou)

      39.99.229.195

      100.104.187.64/26

      Tiongkok (Hohhot)

      39.104.147.68

      100.104.36.0/26

      Tiongkok (Shenzhen)

      120.78.64.225

      100.104.250.64/26

      Tiongkok (Guangzhou)

      8.134.118.184

      100.104.111.0/26

      Tiongkok (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

  1. Login ke Security Center console.

  2. Di panel navigasi kiri, pilih Asset Center > Container. Di pojok kiri atas konsol, pilih wilayah tempat aset yang akan dilindungi berada: Chinese Mainland atau Outside Chinese Mainland.

  3. Di tab Cluster, klik Self-built cluster access.

  4. Di panel Self-built cluster management, klik Self-built cluster access, konfigurasikan informasi tentang kluster K8s yang dikelola sendiri yang ingin Anda hubungkan, lalu klik Generate Command.

    Parameter

    Deskripsi

    Cluster name

    Masukkan nama kluster K8s yang dikelola sendiri. Contoh: text-001.

    Expiration Time

    Pilih waktu kedaluwarsa perintah yang digunakan untuk menghubungkan kluster K8s yang dikelola sendiri.

    Group

    Pilih grup kluster setelah kluster terhubung (yaitu grup tempat server tempat kluster berada).

    Service Provider

    Pilih penyedia server tempat kluster berada.

  5. (Opsional) Di bagian Enable Log Collection, tentukan apakah akan mengaktifkan deteksi ancaman berbasis log K8s.

    Setelah Anda mengaktifkan deteksi ancaman berbasis log K8s, Security Center dapat memperoleh lebih banyak log audit untuk mendeteksi risiko keamanan secara lebih komprehensif. Sebelum mengaktifkan deteksi ancaman, Anda harus menginstal komponen Logtail di kluster K8s dan menyelesaikan konfigurasi terkait audit. Untuk informasi selengkapnya, lihat Enable log-based threat detection.

  6. Login ke server tempat kluster berada, buat file bernama text-001.yaml, salin perintah yang dihasilkan ke file tersebut, lalu jalankan perintah kubectl apply -f text-001.yaml untuk menghubungkan kluster.

    Secara default, perintah yang dihasilkan di Langkah 4 tidak menghubungkan node master atau node yang memiliki taint. Jika Anda ingin menghubungkan node master dan node yang memiliki taint, modifikasi konfigurasi dalam file YAML berdasarkan petunjuk berikut.

    Petunjuk menghubungkan node master dan node yang memiliki taint

    Untuk menghubungkan node master atau node yang memiliki taint ke Security Center sebagai bagian dari kluster, Anda harus mengonfigurasi toleransi di templat pod DaemonSet agar pod dapat dijadwalkan di node master atau node yang memiliki taint.

    • Untuk node master, di bawah spec>template>spec dalam file YAML, konfigurasikan Toleransi berikut, yang memungkinkan pod DaemonSet ini dijadwalkan di node master dengan taint node-role.kubernetes.io/master:NoSchedule. Hal ini menghubungkan node master ke Security Center sebagai bagian dari kluster.

      spec:
        template:
          spec:
            tolerations:
            - key: node-role.kubernetes.io/master
              operator: Exists
              effect: NoSchedule
    • Untuk node yang memiliki taint, rujuk konfigurasi Toleransi untuk node master di atas untuk menjadwalkan pod DaemonSet di node yang memiliki taint. Hal ini menghubungkan node yang memiliki taint ke Security Center sebagai bagian dari kluster.

    Catatan

    text-001 dalam nama file text-001.yaml dan perintah kubectl apply -f text-001.yaml merupakan contoh dari Cluster name. Saat melakukan operasi, ganti text-001 dengan Cluster name yang sebenarnya.

Setelah Anda menghubungkan kluster K8s yang dikelola sendiri, Anda dapat melihat informasi tentang kluster yang terhubung di daftar kluster pada tab Cluster.

Aktifkan deteksi ancaman berbasis log

Jika versi kluster K8s adalah 1.16 atau lebih baru, Anda dapat mengaktifkan deteksi ancaman berbasis log K8s untuk memberikan deteksi risiko keamanan yang lebih komprehensif untuk kluster yang dikelola sendiri, seperti mendeteksi operasi berisiko tinggi dan serangan.

Langkah 1. Instal Logtail

Untuk informasi selengkapnya, lihat Install Logtail components in a self-managed Kubernetes cluster, khususnya bagian Install Logtail.

Langkah 2. Aktifkan auditing kluster

Langkah-langkah berikut hanya sebagai referensi. Untuk informasi selengkapnya, lihat Use cluster auditing.

  1. Kluster terdaftar telah dibuat dan kluster Kubernetes yang dikelola sendiri telah dihubungkan ke kluster terdaftar. Untuk informasi selengkapnya, lihat Create an ACK One registered cluster.

  2. Konfigurasikan file kebijakan audit di node master.

    Login ke node master dan edit /etc/kubernetes/audit-policy.yaml menggunakan templat di bawah ini. Ulangi langkah ini di semua node master lainnya.

    Catatan

    Nilai apiVersion bergantung pada versi Kubernetes Anda:

    • Kubernetes sebelum 1.24: gunakan audit.k8s.io/v1beta1

    • Kubernetes 1.24 dan seterusnya: gunakan audit.k8s.io/v1

    Untuk detailnya, lihat Kubernetes 1.24 release notes.

    apiVersion: audit.k8s.io/v1beta1  # Gunakan audit.k8s.io/v1 untuk Kubernetes >= 1.24
    kind: Policy
    # Sembunyikan event pada tahap RequestReceived.
    omitStages:
      - "RequestReceived"
    rules:
      # Permintaan volume tinggi dengan risiko rendah — tidak dicatat.
      - 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"]
      # URL hanya-baca — tidak dicatat.
      - level: None
        nonResourceURLs:
          - /healthz*
          - /version
          - /swagger*
      # Event — tidak dicatat.
      - level: None
        resources:
          - group: "" # core
            resources: ["events"]
      # Secrets, ConfigMaps, dan TokenReviews berisi data sensitif atau biner —
      # catat hanya metadata.
      - level: Metadata
        resources:
          - group: "" # core
            resources: ["secrets", "configmaps"]
          - group: authentication.k8s.io
            resources: ["tokenreviews"]
      # Permintaan baca untuk grup API yang dikenal — catat hanya metadata permintaan (respons bisa besar).
      - 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"
      # Permintaan tulis untuk grup API yang dikenal — catat permintaan dan respons lengkap.
      - 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"
      # Semua permintaan lainnya — catat hanya metadata.
      - level: Metadata
  3. Konfigurasikan file Kube API Server di node master.

    Login ke semua node master satu per satu dan selesaikan konfigurasi berikut dalam file Kube API Server di path /etc/kubernetes/manifests/kube-apiserver.yaml:

    • Tambahkan parameter --audit-log-* ke perintah berdasarkan contoh berikut:

      ...
      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 env aliyun_logs_audit-* berdasarkan contoh berikut:

      Anda harus mengganti {cluster_id} dalam contoh berikut dengan Cluster ID kluster Anda. Anda dapat login ke Security Center console dan memperoleh Cluster ID kluster di halaman Container. ${cluster_id} menentukan ID kluster. Anda dapat login ke konsol Security Center dan memperoleh Cluster ID kluster tujuan dari kolom Cluster Information di daftar kluster pada halaman Container Assets > Cluster.

      ...
      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
    • Mount /etc/kubernetes/audit-policy.yaml ke Pod API Server seperti pada contoh berikut.

      ...
      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. Verifikasi pengumpulan log

  1. Login ke Simple Log Service console.

  2. Klik nama proyek tujuan.

  3. Periksa apakah log terkait telah dikumpulkan ke Logstore di bawah proyek tujuan.

Langkah 4. Aktifkan deteksi ancaman

  1. Login ke Security Center console.

  2. Di panel navigasi kiri, pilih Asset Center > Container. Di pojok kiri atas konsol, pilih wilayah tempat aset yang akan dilindungi berada: Chinese Mainland atau Outside Chinese Mainland.

  3. Di tab Cluster, klik Self-built cluster access.

  4. Temukan kluster yang dikelola sendiri tempat Anda ingin mengaktifkan deteksi ancaman berbasis log K8s. Di kolom Actions, klik Edit.

  5. Di tab Enable Log Collection, pilih Enable Kubernetes Log Reporting to Detect Threats, konfigurasikan informasi log audit, lalu klik Save.

    • Region of Log Audit Service: Pilih wilayah tempat log audit disimpan.

    • Project of Log Audit Service: Masukkan nama proyek yang dibuat di Langkah 1. Install Logtail. Contoh: k8s-log-custom-sd89ehdq.

    • Logstore of Log Audit Service: Masukkan nama Logstore yang dibuat secara otomatis di Langkah 1. Install Logtail. Contoh: audit-027b007a7dd11967a9f7e2449d8dc497.