Menggunakan logging audit Kubernetes

Dokumen ini menjelaskan cara menggunakan Cloud Audit Logs untuk GKE di Bare Metal. GKE on Bare Metal menggunakan Kubernetes Audit Logging, yang menyimpan catatan kronologis panggilan yang dilakukan ke server Kubernetes API cluster. Log audit berguna untuk menyelidiki permintaan API yang mencurigakan dan mengumpulkan statistik. Untuk mengetahui informasi tentang logging audit untuk GKE On-Prem API, lihat logging audit Cloud API.

Tentang Cloud Audit Logs

Log audit ditulis ke Cloud Audit Logs di project Google Cloud Anda. Menulis ke Cloud Audit Logs memiliki beberapa manfaat dibandingkan menulis ke disk atau merekam log dalam sistem logging lokal:

  • Log audit untuk semua cluster GKE dapat dipusatkan.
  • Entri log yang ditulis ke Cloud Audit Logs tidak dapat diubah.
  • Entri Cloud Audit Logs dipertahankan selama 400 hari.
  • Fitur Cloud Audit Logs disertakan dalam harga GDCV untuk Bare Metal.
  • Anda dapat mengonfigurasi GKE pada Bare Metal untuk menulis log ke disk atau ke Cloud Audit Logs.

Logging audit berbasis disk

Jika Cloud Audit Logs dinonaktifkan secara eksplisit, log audit di GKE pada Bare Metal akan ditulis ke persistent disk sehingga cluster dimulai ulang dan diupgrade tidak menyebabkan log hilang. GKE di Bare Metal menyimpan hingga 1 GiB entri log audit.

Akses log audit berbasis disk dengan login ke Node bidang kontrol. Log ini terletak di direktori /var/log/apiserver/.

Cloud Audit Logs

Entri log audit Aktivitas Admin dari semua server Kubernetes API dikirim ke Google Cloud, menggunakan project dan lokasi yang Anda tentukan saat membuat cluster pengguna. Untuk mem-buffer dan menulis entri log ke Cloud Audit Logs, GKE di Bare Metal men-deploy kumpulan daemon audit-proxy yang berjalan pada node bidang kontrol.

Batasan

Cloud Audit Logs untuk GKE pada Bare Metal memiliki batasan berikut:

  • Logging akses data tidak didukung.
  • Mengubah kebijakan audit Kubernetes tidak didukung.
  • Cloud Audit Logs tidak tahan terhadap gangguan jaringan yang berkepanjangan. Jika entri log tidak dapat diekspor ke Google Cloud, entri log akan disimpan dalam cache dalam buffer disk 10 GiB. Jika buffer tersebut terisi, entri terlama akan dihapus.

Membuat akun layanan untuk Cloud Audit Logs

Sebelum dapat menggunakan Cloud Logging dan Cloud Monitoring dengan GKE di Bare Metal, Anda harus terlebih dahulu mengonfigurasi hal berikut:

  1. Buat Ruang Kerja Cloud Monitoring dalam project Google Cloud, jika Anda belum memilikinya.

    Di konsol Google Cloud, klik tombol berikut dan ikuti alur kerja.

    Buka Monitoring

  2. Klik tombol berikut untuk mengaktifkan API yang diperlukan:

    Mengaktifkan Anthos Audit API

    Mengaktifkan Stackdriver API

    Mengaktifkan Monitoring API

    Mengaktifkan Logging API

  3. Tetapkan peran IAM berikut ke akun layanan yang digunakan oleh agen Stackdriver:

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor

Mengakses Cloud Audit Logs

Konsol

  1. Di konsol Google Cloud, buka halaman Logs Explorer di menu Logging.

    Buka Logs Explorer

    Jika halaman Logs Viewer Lama terbuka, pilih Upgrade ke Logs Explorer yang baru dari menu drop-down Upgrade.

  2. Klik Kueri untuk mengakses kolom untuk mengirimkan kueri.

  3. Isi kolom dengan kueri berikut:

    resource.type="k8s_cluster"
    logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity"
    protoPayload.serviceName="anthosgke.googleapis.com"
    

    Ganti PROJECT_ID dengan project ID Anda.

  4. Klik Run query untuk menampilkan semua log audit dari GKE pada cluster Bare Metal yang dikonfigurasi untuk login ke project ini.

gcloud

Cantumkan dua entri log pertama dalam log Aktivitas Admin project Anda yang berlaku untuk jenis resource k8s_cluster:

gcloud logging read \
    'logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" \
    AND resource.type="k8s_cluster" \
    AND protoPayload.serviceName="anthosgke.googleapis.com" ' \
    --limit 2 \
    --freshness 300d

Ganti PROJECT_ID dengan project ID Anda.

Output menunjukkan dua entri log. Perhatikan bahwa untuk setiap entri log, kolom logName memiliki nilai projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity dan protoPayload.serviceName sama dengan anthosgke.googleapis.com.

Kebijakan audit

Kebijakan audit Kubernetes menentukan aturan untuk peristiwa yang dicatat sebagai entri log dan menentukan data apa yang harus disertakan oleh entri log. Mengubah kebijakan ini untuk mengubah perilaku Cloud Audit Logs tidak didukung.