Dokumen ini menjelaskan cara mengelola entri log yang dihasilkan oleh resource yang terdapat di organisasi Google Cloud Anda menggunakan sink gabungan yang tidak mengintersepsi.
Anda dapat mengonfigurasi sink gabungan agar dapat menangkap atau tidak menangkap, bergantung pada apakah Anda ingin mengontrol entri log mana yang dapat dikueri, atau dirutekan melalui sink di resource turunan. Dalam tutorial ini, Anda akan membuat sink gabungan yang merutekan log audit organisasi ke projectGoogle Cloud , yang kemudian merutekan log audit gabungan ke bucket log.
Untuk informasi selengkapnya tentang sink gabungan, lihat Menggabungkan dan merutekan log tingkat organisasi dan folder ke tujuan yang didukung.
Dalam tutorial ini, Anda akan melakukan langkah-langkah berikut:
Anda memulai dengan membuat bucket log dan sink log di projectGoogle Cloud tempat Anda ingin menyimpan entri log gabungan.
Selanjutnya, Anda akan membuat sink gabungan yang tidak menyadap di tingkat organisasi untuk merutekan entri log ke project Google Cloud yang berisi bucket log.
Kemudian, Anda akan mengonfigurasi akses baca ke tampilan log di bucket log baru.
Terakhir, Anda membuat kueri dan melihat entri log dari halaman Logs Explorer.
Sebelum memulai
Pastikan hal berikut:
-
Untuk mendapatkan izin yang diperlukan guna mengonfigurasi sink gabungan, minta administrator untuk memberi Anda peran IAM berikut di organisasi Anda:
-
Untuk membuat bucket dan sink log dalam project:
Logs Configuration Writer (
roles/logging.configWriter
) - project Anda -
Untuk membuat sink gabungan:
Logs Configuration Writer (
roles/logging.configWriter
) - organisasi Anda -
Untuk memberikan peran kepada akun utama:
Pemilik (
roles/owner
) - project Anda
Untuk mengetahui informasi selengkapnya tentang cara memberikan 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 bucket dan sink log dalam project:
Logs Configuration Writer (
- Jika menggunakan Kontrol Layanan VPC, Anda harus menambahkan aturan masuk ke perimeter layanan. Untuk informasi selengkapnya tentang batasan Kontrol Layanan VPC, lihat Sink gabungan dan batasan Kontrol Layanan VPC.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Membuat bucket log
Bucket log menyimpan entri log yang dirutekan dari project, folder, atau organisasiGoogle Cloud lainnya. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi bucket log.
Untuk membuat bucket log di project Google Cloud tempat Anda ingin 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_ID
Pastikan bucket log telah dibuat:
gcloud logging buckets list --project=PROJECT_ID
Respons perintah ini adalah daftar bucket log dalam 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 memperluas retensi entri log yang disimpan di bucket log hingga 365 hari:gcloud logging buckets update BUCKET_NAME \ --location=LOCATION --project=PROJECT_ID \ --retention-days=365
Untuk informasi selengkapnya tentang opsi, lihat
gcloud logging buckets update
.
Membuat sink log level project
Anda merutekan entri log ke bucket log dengan membuat sink. Sink menyertakan 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 apa pun. Untuk 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, lakukan penggantian berikut:
- PROJECT_LEVEL_SINK_NAME: Nama sink log tingkat project.
SINK_DESTINATION: Bucket log tempat entri log Anda dirutekan. Format jalur tujuan untuk bucket log adalah sebagai berikut:
logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
PROJECT_ID: ID project tempat sink log akan dibuat. Tetapkan opsi ini ke project yang sama dengan tempat Anda membuat bucket log.
Sertakan opsi berikut:
--log-filter
: Gunakan opsi 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 akan dirutekan ke tujuan.--description
: Gunakan opsi ini untuk menjelaskan tujuan atau kasus penggunaan untuk 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 dimuat oleh 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 project dirutekan oleh sink gabungan dan sink dalam project tersebut. Oleh karena itu, Anda dapat menyimpan beberapa salinan entri log.
Anda dapat membuat sink intersepsi. Untuk mengetahui informasi selengkapnya, lihat Menggabungkan dan merutekan log tingkat organisasi dan folder ke tujuan yang didukung.
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, lakukan penggantian 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-children
Opsi
--include-children
penting. Opsi ini memastikan bahwa entri log dari semua project dan folderGoogle Cloud dalam organisasi Anda dirutekan. Untuk informasi selengkapnya, lihat Menggabungkan dan merutekan log tingkat organisasi ke tujuan yang didukung.Pastikan sink dibuat:
gcloud logging sinks list --organization=ORGANIZATION_ID
Dapatkan nama akun layanan:
gcloud logging sinks describe SINK_NAME --organization=ORGANIZATION_ID
Outputnya terlihat mirip dengan yang berikut ini:
writerIdentity: serviceAccount:o1234567890-ORGANIZATION_ID@gcp-sa-logging.
Salin nilai kolom
serviceAccount
ke 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.
Untuk memberikan izin sink Anda untuk 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
Berikan akses dan tambahkan akun layanan sebagai akun utama baru. Jangan sertakan awalan serviceAccount:.Di menu Select a role, pilih Logs Writer.
Klik Simpan.
Membuat entri log untuk membantu verifikasi sink
Untuk memverifikasi bahwa sink gabungan Anda dikonfigurasi dengan benar, coba hal berikut:
Buat entri log audit yang harus dirutekan ke bucket log Anda.
Jika memiliki banyak project Google Cloud di organisasi, Anda mungkin memiliki cukup traffic log audit sehingga tidak perlu membuat log audit untuk tujuan validasi. Lanjutkan ke langkah berikutnya.
Jika tidak, buka project lain, buat instance VM Compute Engine, lalu hapus instance yang Anda buat. Log audit ditulis saat VM dibuat, dimulai, dan dihapus.
Ikuti prosedur di bagian berjudul Melihat log di halaman Logs Explorer untuk melihat log audit Anda. Pastikan Anda memilih tampilan
_AllLogs
.
Mengonfigurasi akses baca ke tampilan log di 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 akun utama agar hanya memiliki akses ke entri log tertentu, buat tampilan log, lalu lakukan salah satu tindakan berikut:
Berikan peran
roles/logging.viewAccessor
beserta 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 tampilan log dalam jumlah besar.
Untuk mengetahui informasi selengkapnya tentang kedua pendekatan ini, lihat Mengontrol akses ke tampilan log.
Pada langkah-langkah berikut, Anda akan memberikan peran
roles/logging.viewAccessor
kepada akun utama beserta kondisi IAM
yang membatasi pemberian 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 project Google Cloud .
Tambahkan kondisi IAM ke binding:
- Klik Tambahkan kondisi, masukkan judul dan deskripsi.
- Di menu Condition type, scroll ke Resource, lalu pilih Name.
- Di menu Operator, pilih Diakhiri dengan.
Di kolom Value, masukkan nama lengkap tampilan log:
locations/LOCATION/buckets/BUCKET_NAME/views/_AllLogs
Klik Simpan untuk menyimpan kondisi.
Klik Simpan 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 Pertajam Cakupan.
Di panel Pertajam cakupan, pilih Tampilan log.
Pilih tampilan log, atau tampilan log, yang entri log-nya ingin Anda lihat. Misalnya, untuk melihat semua entri log, pilih tampilan bernama
_AllLogs
.Klik Terapkan.
Logs Explorer akan dimuat ulang untuk menampilkan entri log dari bucket log Anda. Untuk informasi tentang cara menggunakan Logs Explorer, lihat Menggunakan Logs Explorer.