Menggabungkan dan menyimpan log organisasi Anda

Dokumen ini menjelaskan cara mengelola entri log yang dihasilkan oleh resource yang ada di Google Cloud organisasi Anda menggunakan sink gabungan yang tidak mencegat.

Anda dapat mengonfigurasi sink gabungan agar mencegat atau tidak mencegat, bergantung pada apakah Anda ingin mengontrol entri log mana yang dapat dikueri di, atau dirutekan melalui sink di resource turunan. Dalam tutorial ini, Anda akan membuat sink gabungan yang merutekan log audit organisasi Anda ke Google Cloud project, yang kemudian merutekan log audit gabungan ke bucket log. Untuk mengetahui informasi selengkapnya, lihat Ringkasan sink gabungan.

Dalam tutorial ini, Anda akan melakukan langkah-langkah berikut:

  1. Anda mulai dengan membuat bucket log dan sink log di projectGoogle Cloud tempat Anda ingin menyimpan entri log gabungan.

  2. Selanjutnya, Anda membuat sink gabungan yang tidak menyadap di tingkat organisasi untuk mengarahkan entri log ke project Google Cloud yang berisi bucket log.

  3. Kemudian, Anda mengonfigurasi akses baca ke tampilan log di bucket log baru.

  4. Terakhir, Anda membuat kueri dan melihat entri log dari halaman Logs Explorer.

Sebelum memulai

Pastikan hal berikut:

  • Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi sink gabungan, minta administrator Anda untuk memberi Anda peran IAM berikut di organisasi Anda:

    • Untuk membuat bucket dan sink log dalam project: Penulis Konfigurasi Log (roles/logging.configWriter) - project Anda
    • Untuk membuat sink gabungan: Logs Configuration Writer (roles/logging.configWriter) - organisasi Anda
    • Untuk memberikan peran kepada prinsipal: 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.

  • Jika Anda menggunakan Kontrol Layanan VPC, Anda harus menambahkan aturan masuk ke perimeter layanan. Untuk mengetahui informasi selengkapnya tentang batasan Kontrol Layanan VPC, lihat Batasan sink gabungan dan Kontrol Layanan VPC.
  • In the Google Cloud console, activate Cloud Shell.

    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.

Buat bucket log

Bucket log menyimpan entri log yang dirutekan dari Google Cloud project, folder, atau organisasi lain. 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:

  1. Buka shell.

    Misalnya, untuk menggunakan Cloud Shell, lakukan hal berikut:

    1. Buka konsol Google Cloud :

      Buka Google Cloud konsol

    2. Di toolbar, klik  Activate Cloud Shell.
  2. 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 bucket log akan dibuat.

    Jalankan perintah gcloud logging buckets create:

     gcloud logging buckets create BUCKET_NAME \
       --location=LOCATION --project=PROJECT_ID
    
  3. Pastikan bucket log telah dibuat:

    gcloud logging buckets list --project=PROJECT_ID
    

    Respons perintah adalah daftar bucket log di project Anda.

  4. Bucket log memiliki periode retensi 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 hingga 365 hari:

    gcloud logging buckets update BUCKET_NAME \
       --location=LOCATION --project=PROJECT_ID \
       --retention-days=365
    

    Untuk mengetahui informasi selengkapnya tentang opsi, lihat gcloud logging buckets update.

Buat sink log level project

Anda mengarahkan 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 Anda. 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, 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 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 disetel 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 opsi ini untuk mendeskripsikan 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" \

Buat 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 tujuan 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 di project tersebut. Oleh karena itu, Anda dapat menyimpan beberapa salinan entri log.

Anda dapat membuat sink penyadapan. Untuk mengetahui informasi selengkapnya, lihat Ringkasan sink gabungan.

Menyiapkan sink di tingkat organisasi

Untuk membuat sink gabungan yang tidak mencegat dan merutekan entri log ke project, selesaikan langkah-langkah berikut:

  1. 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 mengetahui informasi selengkapnya, lihat Menggabungkan dan merutekan log tingkat organisasi ke tujuan yang didukung.

  2. Pastikan sink telah dibuat:

    gcloud logging sinks list --organization=ORGANIZATION_ID
    
  3. 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.
    
  4. 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 pada tujuan Anda untuk menulis entri log, lakukan hal berikut:

  1. Di Google Cloud konsol, buka halaman IAM:

    Buka IAM

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.

  2. Pilih Google Cloud project yang berisi bucket log Anda.

  3. Klik Berikan akses dan tambahkan akun layanan sebagai akun utama baru. Jangan sertakan awalan serviceAccount:.

  4. Di menu Pilih peran, pilih Penulis Log.

  5. Klik Simpan.

Membuat entri log untuk membantu verifikasi sink

Untuk memverifikasi bahwa sink gabungan Anda dikonfigurasi dengan benar, coba hal berikut:

  1. 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.

  2. 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 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 akun utama agar hanya memiliki akses ke entri log tertentu, buat tampilan log, lalu lakukan salah satu hal berikut:

  • Beri mereka 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 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 roles/logging.viewAccessor kepada akun utama beserta kondisi IAM yang membatasi pemberian akses ke tampilan bernama _AllLogs:

  1. Di Google Cloud konsol, buka halaman IAM:

    Buka IAM

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.

  2. Pilih Google Cloud project yang berisi bucket log.

  3. Klik Add.

  4. Di kolom New principal, tambahkan akun utama.

  5. Di menu Select a role, pilih Logs Views Accessor.

    Jika Anda tidak menambahkan kondisi pada peran ini, maka akun utama memiliki akses ke semua tampilan log di semua bucket log yang ditentukan pengguna dalam project Google Cloud .

  6. Tambahkan kondisi IAM ke binding:

    1. Klik Tambahkan kondisi, masukkan judul dan deskripsi.
    2. Di menu Condition type, scroll ke Resource, lalu pilih Name.
    3. Di menu Operator, pilih Diakhiri dengan.
    4. Di kolom Value, masukkan nama lengkap tampilan log:

      locations/LOCATION/buckets/BUCKET_NAME/views/_AllLogs
      
    5. Klik Simpan untuk menyimpan kondisi.

  7. Klik Simpan untuk menyimpan pengikatan.

Melihat entri log di halaman Logs Explorer

Untuk melihat entri log di bucket log Anda, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman Logs Explorer:

    Buka Logs Explorer

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  2. Pilih Sempurnakan Cakupan.

  3. Di panel Persempit cakupan, pilih Tampilan log.

  4. Pilih tampilan log, atau tampilan log, yang entri lognya ingin Anda lihat. Misalnya, untuk melihat semua entri log, pilih tampilan bernama _AllLogs.

  5. Klik Terapkan.

    Logs Explorer dimuat ulang untuk menampilkan entri log dari bucket log Anda. Untuk mengetahui informasi tentang cara menggunakan Logs Explorer, lihat Menggunakan Logs Explorer.