Ringkasan
Google Distributed Cloud (khusus software) untuk VMware mendukung logging audit di Google Cloud API dan level cluster Kubernetes. Dokumen ini memberikan informasi tentang logging audit cluster Kubernetes. Untuk mengetahui informasi tentang Logging audit Google Cloud API, lihat Informasi logging audit Cloud API.
Google {i>Distributed Cloud<i} memanfaatkan Logging Audit Kubernetes, yang menyimpan catatan kronologis panggilan yang dilakukan ke Kubernetes API cluster server tertentu. Log audit berguna untuk menyelidiki permintaan API yang mencurigakan dan untuk mengumpulkan statistik.
Anda dapat mengonfigurasi cluster untuk menulis log audit ke disk atau Cloud Audit Logs di project Google Cloud. Menulis ke Cloud Audit Logs memiliki beberapa manfaat penulisan ke disk, atau bahkan 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 disimpan selama 400 hari.
- Cloud Audit Logs termasuk dalam harga Anthos.
Logging audit berbasis disk
Secara default, log audit ditulis disk sehingga VM dimulai ulang dan upgrade tidak menyebabkan log hilang. Google Distributed Cloud menyimpan entri log audit hingga 12 GB.
Cloud Audit Logs
Jika Anda mengaktifkan Cloud Audit Logs untuk cluster, log audit Aktivitas Admin
entri dari server Kubernetes API cluster dikirim ke Google Cloud,
menggunakan project Google Cloud yang Anda tentukan dalam
Kolom cloudAuditLogging.projectID
file konfigurasi cluster Anda.
Project Google Cloud ini disebut
project logging audit Anda.
Project logging audit Anda harus sama dengan project host perangkat.
Untuk melakukan buffering dan menulis entri log ke Cloud Audit Logs,
Google Distributed Cloud men-deploy Pod audit-proxy
ke cluster admin.
Komponen ini juga tersedia sebagai penampung file bantuan di cluster pengguna.
Batasan
Cloud Audit Logs untuk Google Distributed Cloud versi saat ini memiliki beberapa batasan:
Logging akses data (dapatkan, daftar, permintaan smartwatch) tidak didukung.
Mengubah kebijakan audit Kubernetes tidak didukung.
Cloud Audit Logs tidak tahan terhadap pemadaman jaringan yang berkepanjangan. Jika entri log tidak dapat diekspor ke Google Cloud, entri tersebut disimpan dalam cache Buffering disk 10 G. Jika buffer tersebut terisi, entri berikutnya akan dihapus.
Mengaktifkan Anthos Audit API
Aktifkan Anthos Audit API di project logging audit Anda.
Membuat akun layanan untuk Cloud Audit Logs
Anda sudah memiliki satu atau beberapa akun layanan yang dibuat untuk digunakan dengan Google Distributed Cloud. Untuk fitur ini, Anda perlu membuat akun layanan tambahan yang disebut akun layanan logging audit.
Buat akun layanan logging audit Anda:
gcloud iam service-accounts create audit-logging-service-account
Buat file kunci JSON untuk akun layanan Cloud Audit Logs Anda:
gcloud iam service-accounts keys create audit-logging-key.json \ --iam-account AUDIT_LOGGING_SERVICE_ACCOUNT_EMAIL
dengan AUDIT_LOGGING_SERVICE_ACCOUNT_EMAIL adalah email alamat akun layanan Anda.
Hemat
audit-logging-key.json
di workstation admin di lokasi yang sama dengan kunci akun layanan lainnya.
Membuat cluster admin dengan Cloud Audit Logs diaktifkan
Anda dapat mengaktifkan Cloud Audit Logs untuk cluster admin hanya saat Anda pertama kali membuat cluster admin. Anda tidak dapat mengubah cluster admin yang ada untuk mengaktifkan Cloud Audit Logs.
Rujuk ke Membuat cluster admin.
Di file konfigurasi cluster admin Anda, isi
cloudAuditLogging
bagian.Tetapkan
cloudAuditLogging.projectID
ke ID project logging audit Anda.Tetapkan
cloudAuditLogging.clusterLocation
ke region Google Cloud tempat Anda ingin menyimpan log audit. Untuk latensi yang lebih baik, pilih region yang di dekat pusat data lokal Anda.Tetapkan
cloudAuditLogging.serviceAccountKeyPath
ke jalur kunci JSON untuk akun layanan logging audit Anda.
Contoh:
cloudAuditLogging: projectID: "my-project" clusterLocation: "us-west1" serviceAccountKeyPath: "/my-key-folder/audit-logging-key.json"
Lanjutkan pembuatan cluster seperti biasa.
Membuat cluster pengguna dengan Cloud Audit Logs diaktifkan
Rujuk ke Membuat cluster pengguna.
Di file konfigurasi cluster pengguna, isi
cloudAuditLogging
bagian.Tetapkan
cloudAuditLogging.projectID
ke ID project logging audit Anda.Tetapkan
cloudAuditLogging.clusterLocation
ke region Google Cloud tempat Anda ingin menyimpan log audit. Untuk latensi yang lebih baik, pilih region yang di dekat pusat data lokal Anda.Tetapkan
cloudAuditLogging.serviceAccounKeyPath
ke jalur kunci JSON untuk akun layanan Cloud Audit Logs Anda.Pastikan bagian
gkeConnect
terisi dangkeConnect.projectID
sama dengancloudAuditLogging.projectID
.
Contoh:
gkeConnect: projectID: "my-project" registerServiceAccountKeyPath: "/my-key-fokder/connect-register-key.json" cloudAuditLogging: projectID: "my-project" clusterLocation: "us-west1" serviceAccountKeyPath: "/my-key-folder/audit-logging-key.json"
Lanjutkan pembuatan cluster seperti biasa.
Mengaktifkan Cloud Audit Logs untuk cluster pengguna yang ada
Cloud Audit Logs hanya dapat diaktifkan di project Google Cloud tempat cluster pengguna didaftarkan.
Jika cluster pengguna yang ada tidak terdaftar, daftarkan dengan mengikuti langkah-langkah berikut sebelum Anda mengaktifkan Cloud Audit Logs:
Tambahkan bagian
gkeConnect
ke file konfigurasi cluster pengguna. Contoh:gkeConnect: projectID: "my-project" registerServiceAccountKeyPath: "/my-key-fokder/connect-register-key.json"
Update cluster:
gkectl update cluster --config USER_CLUSTER_CONFIG --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Setelah cluster pengguna didaftarkan, ikuti langkah-langkah berikut untuk mengaktifkan Log Audit Cloud:
Isi bagian
cloudAuditLogging
pada file konfigurasi cluster pengguna. Lihat Membuat cluster pengguna dengan Cloud Audit Logs diaktifkan untuk detail tentang masing-masing {i>field<i}.projectID
dicloudAuditLogging
harus sama dengan yang ada di bagiangkeConnect
.Update cluster:
gkectl update cluster --config USER_CLUSTER_CONFIG --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Menonaktifkan Cloud Audit Logs untuk cluster pengguna yang ada
Di file konfigurasi cluster pengguna, hapus
cloudAuditLogging
bagian.Perbarui cluster pengguna:
gkectl update cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [USER_CLUSTER_CONFIG]
Mengakses log audit
Logging audit berbasis disk
Anda dapat menemukan log audit untuk cluster admin di
node bidang kontrol di bagian /var/log/kube-audit/kube-apiserver-audit.log
. Tujuan
log audit untuk cluster pengguna ada di PersistentVolumeClaim
bernama kube-audit-kube-apiserver-0
. Anda dapat mengakses data ini dalam
Pod melalui entri volumes
:
Tambahkan entri ini untuk cluster admin:
volumes: - name: kube-audit hostPath: path: /var/log/kube-audit type: ""
Tambahkan entri ini untuk cluster pengguna:
volumes: - name: kube-audit persistentVolumeClaim: claimName: kube-audit-kube-apiserver-0
Untuk menjadwalkan Pod di node cluster admin yang sesuai (dan hanya node ini
node), Anda harus menambahkan bagian nodeSelector
dan tolerations
ke
spesifikasi Pod Anda, seperti ini:
spec: nodeSelector: node-role.kubernetes.io/master: '' tolerations: - key: node-role.kubernetes.io/master value: "" effect: NoSchedule
Untuk cluster pengguna, tetapkan namespace
sebagai nama cluster pengguna, lalu tetapkan
nodeName
hingga sama dengan kube-apiserver-0
:
spec: nodeName: NODE_NAME
Untuk menunjukkan nodeName
dari kube-apiserver-0
, jalankan perintah berikut:
kubectl get pod kube-apiserver-0 -n USER_CLUSTER_NAME --kubeconfig kubeconfig -o jsonpath='{.spec.nodeName}'
Setiap nama file log audit memiliki stempel waktu yang menunjukkan kapan file dirotasi. File berisi log audit hingga waktu dan tanggal tersebut.
Cloud Audit Logs
Konsol
Di konsol Google Cloud, buka halaman Logs di Menu Logging.
Dalam kotak Filter menurut label atau penelusuran teks, tepat di atas menu drop-down yang dibahas di atas, klik panah bawah untuk membuka menu {i>drop-down<i}. Dari menu, pilih Konversi ke filter lanjutan.
Isi kolom dengan filter berikut:
resource.type="k8s_cluster" logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" protoPayload.serviceName="anthosgke.googleapis.com"
Klik Kirim Filter untuk menampilkan semua log audit dari cluster yang dikonfigurasi untuk login ke project ini.
gcloud
Buat daftar 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
dengan PROJECT_ID adalah 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
Perilaku Cloud Audit Logs ditentukan oleh kebijakan logging audit Kubernetes yang dikonfigurasi secara statis. Mengubah kebijakan ini untuk saat ini tidak didukung, tetapi akan yang tersedia dalam rilis mendatang.