Sink gabungan yang tidak menyadap memungkinkan Anda merutekan entri log dari seluruh organisasiGoogle Cloud ke lokasi pusat sekaligus memungkinkan resource turunan merutekan dan menyimpan salinan lognya sendiri. Dalam tutorial ini, Anda akan membuat sink gabungan non-intersepsi tingkat organisasi yang merutekan log audit organisasi ke project Google Cloud , tempat sink tingkat project merutekannya ke bucket log pusat. Kemudian, Anda mengonfigurasi akses baca ke tampilan log di bucket tersebut dan membuat kueri log audit gabungan di Logs Explorer.
Anda juga dapat mengonfigurasi sink gabungan agar melakukan intersepsi jika ingin mengontrol entri log mana yang dapat dikueri atau dirutekan di resource turunan. Untuk mengetahui informasi selengkapnya, lihat Ringkasan sink gabungan. Jika Anda menyiapkan organisasi baru, Anda juga dapat mengonfigurasi penyimpanan log terpusat sebagai bagian dari proses penyiapanGoogle Cloud .
Sebelum memulai
Pastikan hal berikut:
-
Untuk mendapatkan izin yang diperlukan untuk memusatkan penyimpanan dengan membuat sink gabungan tingkat organisasi yang merutekan entri log ke project, minta administrator untuk memberi Anda peran IAM berikut:
-
Untuk membuat sink gabungan:
Logs Configuration Writer (
roles/logging.configWriter) di organisasi Anda -
Untuk memberikan peran IAM ke akun layanan dan membuat bucket log:
Pemilik (
roles/owner) di project Anda
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
-
Untuk membuat sink gabungan:
Logs Configuration Writer (
-
Di konsol Google Cloud , aktifkan Cloud Shell.
Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi pada sesi.
Membuat bucket log
Bucket log menyimpan entri log yang dirutekan dari project, folder, atau organisasiGoogle Cloud lain. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi bucket log.
Untuk membuat bucket log di project Google Cloud yang ingin Anda gunakan untuk menggabungkan entri log, selesaikan langkah-langkah berikut:
Buka shell.
Misalnya, untuk menggunakan Cloud Shell, lakukan hal berikut:
-
Buka konsol Google Cloud :
- Di toolbar, klik terminal Activate Cloud Shell.
-
Di shell, jalankan perintah
gcloud logging buckets create.Sebelum menjalankan perintah berikut, lakukan penggantian berikut:
- BUCKET_NAME: Nama bucket log.
- LOCATION: Lokasi bucket log. Setelah membuat bucket log, Anda tidak dapat mengubah lokasinya.
- PROJECT_ID: ID project tempat membuat bucket log.
Jalankan perintah
gcloud logging buckets create:gcloud logging buckets create BUCKET_NAME \ --location=LOCATION --project=PROJECT_IDPastikan bucket log telah dibuat:
gcloud logging buckets list --project=PROJECT_IDRespons perintah adalah daftar bucket log di project Anda.
Bucket log memiliki periode retensi data yang dapat dikonfigurasi. Jika Anda ingin menetapkan periode retensi entri log di bucket log, gunakan perintah
gcloud logging buckets update. Misalnya, perintah berikut memperpanjang retensi entri log yang disimpan di bucket log menjadi 365 hari:gcloud logging buckets update BUCKET_NAME \ --location=LOCATION --project=PROJECT_ID \ --retention-days=365Untuk mengetahui informasi selengkapnya tentang flag, lihat
gcloud logging buckets update.
Buat sink log tingkat project
Anda merutekan entri log ke bucket log dengan membuat sink. Sink mencakup filter penyertaan, filter pengecualian, dan tujuan. Dalam tutorial ini, Anda akan mengonfigurasi filter penyertaan dan tujuan ke bucket log baru. Sink Anda tidak berisi filter pengecualian. Untuk mengetahui informasi selengkapnya tentang sink, lihat Merutekan log ke tujuan yang didukung.
Untuk membuat sink yang merutekan entri log ke bucket log yang baru saja Anda buat, jalankan perintah gcloud logging sinks create.
Sebelum menjalankan perintah berikut, buat pengganti berikut:
- PROJECT_LEVEL_SINK_NAME: Nama sink log level project.
SINK_DESTINATION: Bucket log tempat entri log Anda dirutekan. Tujuan sink harus menggunakan endpoint global (
logging.googleapis.com); endpoint regional (REP) tidak didukung. Format jalur tujuan untuk bucket log adalah sebagai berikut:logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAMEPROJECT_ID: ID project tempat sink log akan dibuat. Tetapkan flag ini ke project yang sama tempat Anda membuat bucket log.
Sertakan flag berikut:
--log-filter: Gunakan tanda ini untuk menetapkan filter yang cocok dengan entri log yang ingin Anda sertakan dalam sink. Dalam tutorial ini, filter ditetapkan untuk memilih semua entri log audit. Jika Anda tidak menetapkan filter, semua entri log dari project Google Cloud Anda akan dirutekan ke tujuan.--description: Gunakan tanda ini untuk menjelaskan tujuan atau kasus penggunaan sink.
Jalankan perintah gcloud logging sinks create:
gcloud logging sinks create PROJECT_LEVEL_SINK_NAME SINK_DESTINATION \
--project=PROJECT_ID \
--log-filter='logName:cloudaudit.googleapis.com' \
--description="Audit logs from my organization"
Membuat sink gabungan
Sink gabungan menggabungkan dan merutekan entri log dari resource yang ada dalam organisasi atau folder ke tujuan.
Dalam tutorial ini, Anda akan membuat sink gabungan yang tidak menyadap. Artinya, setiap entri log yang dirutekan oleh sink gabungan juga dirutekan oleh sink di resource tempat entri log berasal. Misalnya, log audit yang berasal dari suatu project dirutekan oleh sink gabungan dan sink dalam project tersebut. Oleh karena itu, Anda dapat menyimpan beberapa salinan entri log.
Anda juga dapat membuat sink intersepsi. Untuk mengetahui informasi selengkapnya, lihat Ringkasan sink gabungan.
Menyiapkan sink di tingkat organisasi
Untuk membuat sink gabungan yang tidak mengintersepsi dan merutekan entri log ke project, selesaikan langkah-langkah berikut:
Jalankan perintah
gcloud logging sinks create.Sebelum menjalankan perintah berikut, buat pengganti berikut:
- SINK_NAME: Nama sink log. Anda tidak dapat mengubah nama sink setelah membuatnya.
- PROJECT_ID: ID project yang menyimpan bucket log.
- ORGANIZATION_ID: ID organisasi.
Jalankan perintah
gcloud logging sinks create:gcloud logging sinks create SINK_NAME \ logging.googleapis.com/projects/PROJECT_ID \ --log-filter='logName:cloudaudit.googleapis.com' \ --description="Audit logs from my organization" \ --organization=ORGANIZATION_ID \ --include-childrenFlag
--include-childrenpenting. Flag ini memastikan bahwa entri log dari semua project dan folderGoogle Cloud dalam organisasi Anda dirutekan. Untuk mengetahui informasi selengkapnya, lihat Menggabungkan dan merutekan log tingkat organisasi dan tingkat folder ke tujuan yang didukung.Pastikan sink dibuat:
gcloud logging sinks list --organization=ORGANIZATION_IDDapatkan nama akun layanan:
gcloud logging sinks describe SINK_NAME --organization=ORGANIZATION_IDOutputnya akan terlihat mirip seperti berikut:
writerIdentity: serviceAccount:o1234567890-ORGANIZATION_ID@gcp-sa-logging.iam.gserviceaccount.comSalin nilai kolom
serviceAccountke papan klip Anda.
Memberikan akses ke sink
Setelah membuat sink gabungan, Anda harus memberikan izin agar sink dapat menulis entri log ke project yang Anda tetapkan sebagai tujuan. Anda dapat memberikan izin menggunakan konsol Google Cloud atau dengan mengedit kebijakan Identity and Access Management (IAM), seperti yang dijelaskan dalam Menetapkan izin tujuan.
Jika project tujuan Google Cloud dilindungi oleh perimeter layanan Kontrol Layanan VPC, Anda juga harus menambahkan aturan ingress ke perimeter tujuan yang mengizinkan akses dari akun layanan sink. Anda tidak perlu mengonfigurasi aturan ingress untuk sink yang tidak digabungkan. Untuk mengetahui informasi selengkapnya, lihat Menggabungkan dan merutekan log tingkat organisasi dan folder ke tujuan yang didukung: Batasan.
Untuk memberi sink Anda izin menulis entri log, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman IAM:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.
Pilih project Google Cloud yang berisi bucket log Anda.
Klik Grant access dan tambahkan akun layanan sebagai principal baru. Jangan sertakan awalan
serviceAccount:.Di menu Select a role, pilih Logs Writer.
Klik Simpan.
Membuat entri log untuk membantu verifikasi sink
Untuk memastikan sink gabungan Anda dikonfigurasi dengan benar, coba hal berikut:
Buat entri log audit yang harus dirutekan ke bucket log Anda.
Jika Anda memiliki banyak project Google Cloud di organisasi, Anda mungkin memiliki traffic log audit yang cukup sehingga tidak perlu membuat log audit untuk tujuan validasi. Lanjutkan ke langkah berikutnya.
Atau, buka project lain, buat instance VM Compute Engine, lalu hapus instance yang Anda buat. Log audit ditulis saat VM dibuat, dimulai, dan dihapus.
Ikuti langkah-langkah di Melihat entri log di halaman Logs Explorer untuk melihat log audit Anda. Pastikan Anda memilih tampilan
_AllLogs.
Mengonfigurasi akses baca ke tampilan log pada bucket log
Saat Anda membuat bucket log, Cloud Logging akan otomatis membuat tampilan log bernama _AllLogs.
Tampilan ini mencakup setiap entri log yang disimpan di bucket log.
Untuk membatasi akses akun utama hanya ke entri log tertentu, buat tampilan log, lalu lakukan salah satu hal berikut:
Beri mereka peran Logs Views Accessor (
roles/logging.viewAccessor) bersama dengan kondisi IAM yang membatasi pemberian ke tampilan log.Pada kebijakan IAM yang terkait dengan tampilan log, berikan akses akun utama. Sebaiknya gunakan pendekatan ini saat Anda membuat sejumlah besar tampilan log.
Untuk mengetahui informasi selengkapnya tentang kedua pendekatan ini, lihat Mengontrol akses ke tampilan log.
Pada langkah-langkah berikut, Anda akan memberikan peran Logs Views Accessor (roles/logging.viewAccessor) kepada akun utama beserta kondisi IAM yang membatasi pemberian akses ke tampilan bernama _AllLogs:
-
Di konsol Google Cloud , buka halaman IAM:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.
Pilih project Google Cloud yang berisi bucket log.
Klik Add.
Di kolom New principal, tambahkan akun utama.
Di menu Select a role, pilih Logs Views Accessor.
Jika Anda tidak menambahkan kondisi ke peran ini, akun utama akan memiliki akses ke semua tampilan log di semua bucket log yang ditentukan pengguna dalam Google Cloud project.
Tambahkan IAM Condition ke binding:
- Klik Add condition, lalu masukkan judul dan deskripsi.
- Di menu Condition type, buka Resource, lalu pilih Name.
- Di menu Operator, pilih Ends with.
Di kolom Value, masukkan nama lengkap tampilan log:
locations/LOCATION/buckets/BUCKET_NAME/views/_AllLogsKlik Simpan untuk menyimpan kondisi.
Klik Save untuk menyimpan binding.
Melihat entri log di halaman Logs Explorer
Untuk melihat entri log di bucket log, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman Logs Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Pilih Sempurnakan Cakupan.
Di panel Sempurnakan cakupan, pilih Tampilan log.
Pilih tampilan log yang entri log-nya ingin Anda lihat. Misalnya, untuk melihat semua entri log, pilih tampilan bernama
_AllLogs.Klik Terapkan.
Halaman Logs Explorer akan dimuat ulang untuk menampilkan entri log dari bucket log Anda. Untuk mengetahui informasi selengkapnya tentang cara menggunakan Logs Explorer, lihat Menggunakan Logs Explorer.