全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Gunakan fitur audit operasi KubeAPI di ASM

更新时间:Jul 02, 2025

Untuk memantau dan mengaudit operasi Kubernetes API (KubeAPI) secara komprehensif dalam Service Mesh (ASM), Anda dapat menggunakan fitur audit operasi KubeAPI dari ASM. Fitur ini mencatat dan melacak operasi rutin pengguna. Setelah mengaktifkan fitur audit mesh pada instance ASM, Anda dapat melihat detail laporan audit melalui tab Overview, Audit Operasi, Ikhtisar Operasi, atau Detail Operasi di halaman Audit Mesh. Dengan cara ini, Anda dapat lebih baik melacak peristiwa penting, mendapatkan statistik operasi sumber daya, serta meningkatkan keamanan dan jejak audit mesh. Selain itu, Anda dapat mengoptimalkan kebijakan keamanan dan manajemen sumber daya untuk memastikan stabilitas dan efisiensi service mesh.

Prasyarat

Layanan Log Sederhana telah diaktifkan.

Informasi latar belakang

  • Sumber daya yang disebutkan dalam topik ini merujuk pada sumber daya Istio, termasuk layanan virtual, gateway Istio, aturan tujuan, filter envoy, proxy sidecar, dan entri layanan.

  • Setelah mengaktifkan fitur audit mesh, Anda akan dikenakan biaya atas log audit yang dihasilkan. Untuk informasi lebih lanjut tentang metode penagihan, lihat Bayar berdasarkan fitur.

Langkah 1: Aktifkan fitur audit operasi KubeAPI

Untuk instance ASM baru

  1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik Create ASM Instance. Di halaman Buat Service Mesh, aktifkan opsi Enable Mesh Audit di bagian Audit Mesh, konfigurasikan parameter sesuai kebutuhan bisnis Anda, lalu klik Create Service Mesh.

    Untuk deskripsi item konfigurasi, lihat Buat instance ASM.

    Catatan

    Secara default, proyek bernama mesh-log-${Mesh-ID} dibuat di Layanan Log Sederhana, dan Logstore bernama audit-${Mesh-ID} dibuat di proyek tersebut untuk menyimpan log audit.

Untuk instance ASM yang sudah ada

  1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih Mesh Security Center > KubeAPI Operation Audit.

  3. Di halaman Mesh Audit, aktifkan opsi Enable Mesh Audit dan klik OK.

Langkah 2: Lihat laporan audit KubeAPI

  1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih Mesh Security Center > KubeAPI Operation Audit.

  3. Di halaman Mesh Audit, klik tab Mesh Audit Overview atau Operation Details sesuai kebutuhan bisnis Anda untuk melihat detail laporan audit.

    • Mesh Audit Overview: Di tab ini, Anda dapat melihat detail operasi Kubernetes API yang dipanggil di instance ASM.

      image

    • Operation Details: Di tab ini, Anda dapat melihat informasi rinci tentang operasi pada sumber daya tertentu di instance ASM.

      Anda dapat menentukan jenis sumber daya untuk menanyakan informasi rinci tentang operasi pada sumber daya tersebut secara real-time. Informasi yang tersedia mencakup jumlah total operasi, distribusi operasi berdasarkan namespace, tren operasi seiring waktu, dan daftar operasi rinci.image

Operasi terkait

Lihat log audit

Jika ingin menanyakan dan menganalisis log audit, buka konsol Layanan Log Sederhana untuk melihat log rinci.

  1. Masuk ke Konsol Layanan Log Sederhana.

  2. Di bagian Projects, klik proyek bernama mesh-log-${Mesh-ID}.

  3. Klik Logstore audit-${Mesh-ID} yang dibuat untuk instance ASM. Kemudian, klik Search & Analyze untuk melihat log audit.

    查询分析图标

    Catatan
    • Ketika mengaktifkan fitur audit mesh, Logstore bernama audit-${Mesh-ID} dibuat di proyek yang ditentukan.

    • Secara default, indeks sudah disiapkan di Logstore. Jangan ubah indeks tersebut karena dapat menyebabkan kegagalan pembuatan laporan dari log audit.

    • Secara default, log audit server API dari ASM disimpan selama 30 hari di Logstore yang sesuai di Layanan Log Sederhana. Untuk informasi lebih lanjut tentang cara mengubah periode retensi log default, lihat Kelola logstore.

    Anda dapat menggunakan metode berikut untuk menanyakan log audit:

    • Untuk menanyakan operasi yang dilakukan oleh pengguna RAM, masukkan ID pengguna RAM di kotak pencarian dan klik Search & Analyze.

    • Untuk menanyakan operasi yang dilakukan pada sumber daya, masukkan nama sumber daya di kotak pencarian dan klik Search & Analyze.

    • Untuk menanyakan operasi yang dilakukan oleh komponen sistem, masukkan NOT user.username: node NOT user.username: serviceaccount NOT user.username: apiserver NOT user.username: kube-scheduler NOT user.username: kube-controller-manager di kotak pencarian dan klik Search & Analyze.

    Untuk informasi lebih lanjut tentang metode pencarian dan statistik, lihat Ikhtisar pencarian log.

    Tetapkan peringatan

    Layanan Log Sederhana memungkinkan Anda menetapkan peringatan untuk memantau operasi yang dilakukan pada sumber daya tertentu secara real-time. Peringatan dapat dikirim melalui pesan SMS, chatbot DingTalk, email, webhook kustom, dan Pusat Pesan dari Konsol Manajemen Alibaba Cloud. Untuk informasi lebih lanjut, lihat Peringatan.

    Anda juga dapat menjalankan pernyataan kueri di laporan audit untuk menanyakan log audit.

    • Contoh 1: Tetapkan peringatan pada eksekusi perintah di kontainer

      Sebuah perusahaan memerlukan kontrol akses ketat pada instance ASM-nya dan tidak mengizinkan pengguna untuk masuk atau menjalankan perintah di kontainer di instance ASM. Perusahaan tersebut ingin segera diberitahu jika pengguna mencoba masuk atau menjalankan perintah di kontainer. Notifikasi peringatan harus mencakup informasi berikut: kontainer yang dimasuki, perintah yang dieksekusi, operator, ID peristiwa, waktu operasi, dan alamat IP sumber.

      • Pernyataan kueri contoh:

        verb : create and objectRef.subresource:exec and stage:  ResponseStarted | SELECT auditID as "Event ID", date_format(from_unixtime(__time__), '%Y-%m-%d %T' ) as "Operation time",  regexp_extract("requestURI", '([^\?]*)/exec\?.*', 1)as "Resource",  regexp_extract("requestURI", '\?(.*)', 1)as "Command" ,"responseStatus.code" as "Status code",
         CASE 
         WHEN "user.username" != 'kubernetes-admin' then "user.username"
         WHEN "user.username" = 'kubernetes-admin' and regexp_like("annotations.authorization.k8s.io/reason", 'RoleBinding') then regexp_extract("annotations.authorization.k8s.io/reason", ' to User "(\w+)"', 1)
         ELSE 'kubernetes-admin' END  
         as "Username", 
        CASE WHEN json_array_length(sourceIPs) = 1 then json_format(json_array_get(sourceIPs, 0)) ELSE  sourceIPs END
        as "Source IP address" limit 100
      • Ekspresi kondisional contoh:

        Peristiwa operasi =~ ".*"
    • Contoh 2: Tetapkan peringatan pada akses Internet gagal ke server API

      Untuk mencegah serangan pada instance ASM yang mengizinkan akses Internet, sebuah perusahaan memantau jumlah koneksi dari alamat IP sumber melalui Internet dan tingkat kegagalan koneksi. Perusahaan tersebut memerlukan peringatan dikirim segera ketika jumlah koneksi dari alamat IP sumber dan tingkat kegagalan koneksi melebihi ambang batas yang ditentukan. Misalnya, perusahaan memerlukan peringatan dikirim ketika jumlah koneksi dari alamat IP sumber mencapai 10 dan lebih dari lima dari koneksi tersebut gagal. Notifikasi peringatan harus mencakup informasi berikut: alamat IP sumber, wilayah tempat alamat IP sumber berasal, dan apakah alamat IP sumber berisiko.

      • Pernyataan kueri contoh:

        * | select ip as "Alamat IP Sumber", total as "Jumlah permintaan koneksi Internet", round(rate * 100, 2) as "Tingkat kegagalan koneksi", failCount as "Jumlah permintaan koneksi Internet tidak sah", CASE when security_check_ip(ip) = 1 then 'ya' else 'tidak' end  as "Apakah alamat IP berisiko",  ip_to_country(ip) as "Negara", ip_to_province(ip) as "Provinsi", ip_to_city(ip) as "Kota", ip_to_provider(ip) as "ISP" from (select CASE WHEN json_array_length(sourceIPs) = 1 then json_format(json_array_get(sourceIPs, 0)) ELSE  sourceIPs END
        as ip, count(1) as total,
        sum(CASE WHEN "responseStatus.code" < 400 then 0 
        ELSE 1 END) * 1.0 / count(1) as rate,
        count_if("responseStatus.code" = 403) as failCount
        from log  group by ip limit 10000) where ip_to_domain(ip) != 'intranet'  having "Jumlah koneksi" > 10 and "Tingkat kegagalan koneksi" > 50 ORDER by "Jumlah koneksi" desc limit 100
      • Ekspresi kondisional contoh:

        Alamat IP Sumber =~ ".*"

    Buat ulang proyek yang dihapus

    Jika Anda secara tidak sengaja menghapus proyek yang digunakan untuk audit mesh dari Layanan Log Sederhana tetapi masih ingin menggunakan fitur audit mesh, Anda harus membuat ulang proyek yang dihapus.

    1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

    2. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih Mesh Security Center > KubeAPI Operation Audit.

    3. Di halaman Mesh Audit, klik Recreate di pesan Rebuild Mesh Audit.

      Proyek yang dibuat ulang dinamai setelah nama proyek sebelum penghapusan dengan tambahan cap waktu saat proyek dibuat ulang.

Referensi

  • Untuk informasi lebih lanjut tentang cara mengirim peringatan ke kontak peringatan secara tepat waktu untuk perubahan sumber daya penting, lihat Konfigurasikan peringatan audit untuk operasi pada sumber daya ASM.

  • Anda dapat mengonfigurasi kemampuan keamanan zero trust seperti identitas workload, otentikasi peer, otentikasi permintaan, dan kebijakan otorisasi di ASM untuk mengelola sumber daya mesh secara lebih rinci dan meningkatkan keamanan mesh. Untuk informasi lebih lanjut, lihat Ikhtisar keamanan zero trust.