Mengonfigurasi tampilan log di bucket log

Dokumen ini menjelaskan cara membuat dan mengelola tampilan log di bucket Cloud Logging menggunakan gcloud CLI. Tampilan log memberi Anda kontrol lanjutan dan terperinci atas siapa yang memiliki akses ke log dalam bucket log Anda.

Untuk mengetahui informasi umum tentang model penyimpanan Logging, lihat Ringkasan pemilihan rute dan penyimpanan.

Tentang tampilan log

Tampilan log memungkinkan Anda memberikan akses kepada pengguna hanya ke sebagian log yang disimpan di bucket log. Misalnya, pertimbangkan skenario saat Anda menyimpan log organisasi di project pusat. Anda dapat membuat satu tampilan log untuk setiap project yang berkontribusi pada bucket log. Kemudian, Anda dapat memberikan akses ke satu atau beberapa tampilan log kepada setiap pengguna, sehingga membatasi log yang dapat dilihat pengguna.

Anda dapat membuat maksimal 30 tampilan log per bucket log.

Mengontrol akses ke tampilan log

Cloud Logging menggunakan kebijakan IAM untuk mengontrol siapa yang memiliki akses ke tampilan log. Kebijakan IAM dapat ada di level resource, project, folder, dan organisasi. Untuk Cloud Logging, Anda dapat membuat kebijakan IAM untuk setiap tampilan log. Untuk menentukan apakah akun utama diberi otorisasi untuk tindakan, IAM mengevaluasi semua kebijakan yang berlaku, dengan evaluasi pertama di tingkat resource.

Akun utama dengan peran roles/logging.viewAccessor di project Google Cloud dapat mengakses tampilan dan log di bucket log mana pun dalam project.

Untuk memberikan akses akun utama hanya ke tampilan log tertentu, lakukan salah satu hal berikut:

  • Buat kebijakan IAM untuk tampilan log, lalu tambahkan binding IAM ke kebijakan tersebut yang memberikan akses utama ke tampilan log.

    Jika Anda membuat tampilan log dalam jumlah besar, sebaiknya gunakan pendekatan ini.

  • Berikan peran IAM roles/logging.viewAccessor kepada akun utama di project yang berisi tampilan log, tetapi lampirkan kondisi IAM untuk membatasi pemberian ke tampilan log tertentu. Jika Anda menghapus kondisi, Anda akan memberikan akses akun utama ke semua tampilan log. Ada batas 20 binding peran dalam file kebijakan untuk project Google Cloud yang menyertakan peran yang sama dan akun utama yang sama, tetapi ekspresi kondisinya berbeda.

Untuk mengetahui informasi selengkapnya, lihat bagian dokumen ini yang berjudul Memberikan akses ke tampilan log.

Tampilan log yang dibuat secara otomatis

Cloud Logging otomatis membuat tampilan _AllLogs untuk setiap bucket log dan tampilan _Default untuk bucket log _Default:

  • Tampilan _AllLogs: Anda dapat melihat semua log di bucket log.
  • Tampilan _Default: Anda dapat melihat semua log audit non-Akses Data di bucket log.

Anda tidak dapat mengubah tampilan yang dibuat secara otomatis oleh Cloud Logging; tetapi, Anda dapat menghapus tampilan _AllLogs.

Filter tampilan log

Setiap tampilan log berisi filter yang menentukan entri log mana yang terlihat dalam tampilan. Filter dapat berisi operator logis AND dan NOT; tetapi, filter tidak dapat menyertakan operator logis OR. Filter dapat membandingkan salah satu nilai berikut:

  • Sumber data yang menggunakan fungsi source. Fungsi source menampilkan entri log dari resource tertentu dalam hierarki organisasi, folder, dan project Google Cloud.

  • ID log menggunakan fungsi log_id. Fungsi log_id menampilkan entri log yang cocok dengan argumen LOG_ID yang diberikan dari kolom logName.

  • Jenis resource yang valid menggunakan perbandingan resource.type= FIELD_NAME.

Misalnya, filter berikut menangkap entri log stdout Compute Engine dari project Google Cloud yang disebut myproject:

source("projects/myproject") AND resource.type = "gce_instance" AND log_id("stdout")

Untuk mengetahui detail tentang sintaksis pemfilteran, lihat Perbandingan.

Sebelum memulai

Sebelum membuat atau memperbarui tampilan log, selesaikan langkah-langkah berikut:

  1. Jika Anda belum melakukannya, di project Google Cloud yang sesuai, buat bucket Logging yang ingin Anda konfigurasikan tampilan log kustomnya.

  2. Untuk mendapatkan izin yang diperlukan guna membuat dan mengelola tampilan log serta memberikan akses ke tampilan log, minta administrator untuk memberi Anda peran IAM berikut di 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.

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

  4. Tentukan log yang ingin Anda sertakan dalam tampilan. Anda menggunakan informasi ini untuk menentukan filter tampilan log.

  5. Tentukan siapa yang harus memiliki akses ke tampilan log dan apakah Anda ingin menambahkan binding ke kebijakan IAM tampilan log atau project Google Cloud. Untuk informasi selengkapnya, lihat Mengontrol akses ke tampilan log.

Membuat tampilan log

Untuk membuat tampilan log, gunakan perintah gcloud logging views create. Anda dapat membuat maksimal 30 tampilan log per bucket log.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • VIEW_ID: ID tampilan log.
  • BUCKET_NAME: Nama bucket log.
  • LOCATION: Lokasi bucket log.
  • FILTER: Filter yang menentukan tampilan log. Jika kosong, tampilan log akan menyertakan semua log. Misalnya, untuk memfilter menurut log instance VM Compute Engine, masukkan "resource.type=gce_instance".
  • DESCRIPTION: Deskripsi tampilan log. Misalnya, Anda dapat memasukkan kode berikut untuk deskripsi "Compute logs".

Jalankan perintah gcloud logging views create:

Linux, macOS, atau Cloud Shell

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (PowerShell)

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (cmd.exe)

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Perintah ini tidak memberikan respons. Untuk mengonfirmasi perubahan, Anda dapat menjalankan perintah gcloud logging views list.

Selanjutnya, berikan akses akun utama ke tampilan log Anda.

Memberikan akses ke tampilan log

Untuk membatasi akun utama ke tampilan log tertentu di bucket log yang ditentukan pengguna, ada dua pendekatan yang dapat Anda gunakan:

  • Anda dapat menggunakan file kebijakan IAM dari tampilan log.

  • Anda dapat menggunakan file kebijakan IAM dari project Google Cloud yang menyimpan bucket log, beserta kondisi IAM.

Saat membuat tampilan log dalam jumlah besar, sebaiknya kontrol akses menggunakan file kebijakan IAM tampilan log.

Tampilan log: Menambahkan binding peran

Bagian ini menjelaskan cara menggunakan file kebijakan IAM untuk tampilan log guna mengontrol siapa yang memiliki akses ke entri log dalam tampilan log tersebut. Saat menggunakan pendekatan ini, Anda menambahkan binding ke file kebijakan tampilan log, binding tersebut akan memberikan akses akun utama yang ditentukan ke tampilan log.

Bagian ini juga menjelaskan cara mencantumkan binding peran yang terdapat dalam file kebijakan IAM untuk tampilan log.

Menambahkan binding peran ke tampilan log

Untuk memperbarui file kebijakan IAM tampilan log, selesaikan langkah-langkah berikut.

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • VIEW_ID: ID tampilan log.
  • PRINCIPAL: ID untuk akun utama yang ingin Anda berikan peran. ID utama biasanya memiliki bentuk berikut: PRINCIPAL-TYPE:ID. Misalnya, user:my-user@example.com. Untuk mengetahui daftar lengkap format yang dapat dimiliki PRINCIPAL, lihat ID utama.
  • BUCKET_NAME: Nama bucket log.
  • LOCATION: Lokasi bucket log.

Jalankan perintah gcloud logging views add-iam-policy-binding:

Linux, macOS, atau Cloud Shell

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

Windows (PowerShell)

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

Windows (cmd.exe)

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

Berikut ini ilustrasi respons saat satu binding ditambahkan:

Updated IAM policy for logging view [projects/PROJECT_ID/locations/global/buckets/BUCKET_NAME/views/VIEW_ID].
bindings:
- members:
  - PRINCIPAL
  role: roles/logging.viewAccessor
etag: BwYXfSd9-Gw=
version: 1

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi penyedia Terraform.

Untuk menyediakan asosiasi IAM untuk tampilan log menggunakan Terraform, tersedia beberapa resource yang berbeda:

  • google_logging_log_view_iam_policy
  • google_logging_log_view_iam_binding
  • google_logging_log_view_iam_member

Untuk mengetahui informasi selengkapnya, lihat kebijakan IAM untuk LogView Cloud Logging.

Konsol

Tidak didukung. Untuk menambahkan binding ke tampilan log, gunakan Google Cloud CLI.

Mencantumkan binding peran pada tampilan log

Untuk membuat daftar binding IAM untuk tampilan log, selesaikan langkah-langkah berikut.

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • VIEW_ID: ID tampilan log.
  • BUCKET_NAME: Nama bucket log.
  • LOCATION: Lokasi bucket log.

Jalankan perintah gcloud logging views get-iam-policy:

Linux, macOS, atau Cloud Shell

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Windows (PowerShell)

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Windows (cmd.exe)

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Jika tampilan log tidak berisi binding apa pun, respons hanya akan berisi kolom etag. Berikut ini ilustrasi respons saat tampilan log berisi satu binding:

bindings:
- members:
  - PRINCIPAL
  role: roles/logging.viewAccessor
etag: BwYXfSd9-Gw=
version: 1

Terraform

Untuk mencantumkan pengaitan IAM untuk tampilan log menggunakan Terraform, gunakan sumber data google_logging_log_view_iam_policy.

Konsol

Tidak didukung. Untuk mencantumkan binding untuk tampilan log, gunakan Google Cloud CLI.

Project Google Cloud: Menambahkan binding peran

Bagian ini menjelaskan cara menambahkan binding peran ke project Google Cloud, dan cara mencantumkan binding yang dilampirkan ke project. Saat menggunakan pendekatan ini, untuk membatasi akun utama agar memiliki akses ke entri log yang disimpan dalam tampilan log tertentu, Anda harus menambahkan kondisi IAM ke pemberian.

Menambahkan binding peran ke project

Untuk menambahkan binding peran ke file kebijakan IAM project Google Cloud, selesaikan langkah-langkah berikut.

gcloud

  1. Buat file JSON atau YAML dengan kondisi Anda.

    Misalnya, Anda dapat membuat file bernama condition.yaml dengan konten berikut:

    expression: "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
    title: "My title"
    description: "My description"
    
  2. Opsional: Untuk memverifikasi bahwa file JSON atau yaml diformat dengan benar, jalankan perintah berikut:

    gcloud alpha iam policies lint-condition --condition-from-file=condition.yaml
    
  3. Perbarui kebijakan IAM di project Google Cloud dengan memanggil metode gcloud projects add-iam-policy-binding.

    Sebelum menggunakan perintah berikut, buat penggantian berikut:

    • PROJECT_ID: ID project.
    • PRINCIPAL: ID untuk akun utama yang ingin Anda berikan peran. ID utama biasanya memiliki bentuk berikut: PRINCIPAL-TYPE:ID. Misalnya, user:my-user@example.com. Untuk mengetahui daftar lengkap format yang dapat dimiliki PRINCIPAL, lihat ID utama.

    Jalankan perintah gcloud projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --condition-from-file=condition.yaml
    

    Respons terhadap perintah sebelumnya mencakup semua binding peran.

    - condition:
        description: My description
        expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID"
        title: My title
      members:
      - PRINCIPAL
      role: roles/logging.viewAccessor
    

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi penyedia Terraform.

Untuk menyediakan asosiasi IAM untuk project menggunakan Terraform, tersedia beberapa resource yang berbeda:

  • google_project_iam_policy
  • google_project_iam_binding
  • google_project_iam_member

Untuk mengetahui informasi selengkapnya, lihat Kebijakan IAM untuk project.

Konsol

Di project tempat Anda membuat bucket log, lakukan hal berikut:

  1. Di konsol Google Cloud, buka halaman IAM:

    Buka IAM

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

  2. Klik Berikan akses.

  3. Di kolom New principals, tambahkan akun email pengguna.

  4. Di menu drop-down Select a role, pilih Logs View Accessor.

    Peran ini memberi pengguna akses baca ke semua tampilan. Untuk membatasi akses pengguna ke tampilan tertentu, tambahkan kondisi berdasarkan nama resource.

    1. Klik Tambahkan kondisi IAM.

    2. Masukkan Judul dan Deskripsi untuk kondisi.

    3. Di menu drop-down Jenis kondisi, pilih Resource > Nama.

    4. Di menu drop-down Operator, pilih adalah.

    5. Di kolom Value, masukkan ID tampilan log, termasuk jalur lengkap ke tampilan.

      Contoh:

      projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID
    6. Klik Simpan untuk menambahkan kondisi tersebut.

  5. Klik Save untuk menetapkan izin.

Mencantumkan binding peran pada project

Untuk mencantumkan penetapan peran di project Google Cloud, selesaikan langkah-langkah berikut.

gcloud

Sebelum menggunakan perintah berikut, buat penggantian berikut:

  • PROJECT_ID: ID project.

Jalankan perintah gcloud projects get-iam-policy:

gcloud projects get-iam-policy PROJECT_ID

Respons terhadap perintah sebelumnya mencakup semua binding peran.

- condition:
    description: My description
    expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID"
    title: My title
  members:
  - PRINCIPAL
  role: roles/logging.viewAccessor

Terraform

Untuk mencantumkan pengaitan IAM untuk project menggunakan Terraform, gunakan sumber data google_project_iam_policy.

Konsol

Di konsol Google Cloud, buka halaman IAM:

Buka IAM

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

Halaman IAM mencantumkan semua akun utama, peran IAM-nya, dan kondisi apa pun yang terkait dengan peran tersebut.

Mencantumkan tampilan log di bucket log

Untuk mencantumkan tampilan log yang dibuat untuk bucket log, gunakan perintah gcloud logging views list.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • BUCKET_NAME: Nama bucket log.
  • LOCATION: Lokasi bucket log.

Jalankan perintah gcloud logging views list:

Linux, macOS, atau Cloud Shell

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Data respons adalah daftar tampilan log. Untuk setiap tampilan log, filter ditampilkan beserta tanggal pembuatan dan pembaruan terakhir. Jika tanggal pembuatan dan pembaruan kosong, tampilan log dibuat saat project Google Cloud dibuat. Contoh output berikut menunjukkan bahwa ada dua ID tampilan, _AllLogs dan compute, di bucket log yang dikueri:

VIEW_ID: _AllLogs
FILTER:
CREATE_TIME:
UPDATE_TIME:

VIEW_ID: compute
FILTER: resource.type="gce_instance"
CREATE_TIME: 2024-02-20T17:41:17.405162921Z
UPDATE_TIME: 2024-02-20T17:41:17.405162921Z

Memperbarui tampilan log

Untuk memperbarui atau mengubah tampilan log, gunakan perintah gcloud logging views update. Jika Anda tidak mengetahui ID tampilan, lihat Mencantumkan tampilan log.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • VIEW_ID: ID tampilan log.
  • BUCKET_NAME: Nama bucket log.
  • LOCATION: Lokasi bucket log.
  • FILTER: Filter yang menentukan tampilan log. Jika kosong, tampilan log akan menyertakan semua log. Misalnya, untuk memfilter menurut log instance VM Compute Engine, masukkan "resource.type=gce_instance".
  • DESCRIPTION: Deskripsi tampilan log. Misalnya, Anda dapat memasukkan kode berikut untuk deskripsi "New description for the log view".

Jalankan perintah gcloud logging views update:

Linux, macOS, atau Cloud Shell

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (PowerShell)

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (cmd.exe)

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Perintah ini tidak memberikan respons. Untuk mengonfirmasi perubahan, Anda dapat menjalankan perintah gcloud logging views describe.

Menghapus tampilan log

Jika tidak lagi memerlukan tampilan log yang Anda buat, Anda dapat menghapusnya. Namun, sebelum menghapus tampilan log, sebaiknya Anda memverifikasi bahwa tampilan log tidak direferensikan oleh resource lain, seperti kueri tersimpan.

Anda tidak dapat menghapus tampilan log _Default di bucket log _Default.

Untuk menghapus tampilan log, lakukan langkah-langkah berikut:

  1. Direkomendasikan: Tinjau project Google Cloud Anda untuk memastikan tampilan log tidak direferensikan. Pertimbangkan untuk memeriksa hal berikut:

    • Kueri dijalankan dari halaman Logs Explorer atau Log Analytics yang disimpan atau dibagikan.
    • Dasbor kustom.
  2. Gunakan perintah gcloud logging views delete. Jika Anda tidak mengetahui ID tampilan, lihat Mencantumkan tampilan log.

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • VIEW_ID: ID tampilan log.
    • BUCKET_NAME: Nama bucket log.
    • LOCATION: Lokasi bucket log.

    Jalankan perintah gcloud logging views delete:

    Linux, macOS, atau Cloud Shell

    gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

    Windows (PowerShell)

    gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

    Windows (cmd.exe)

    gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

    Respons mengonfirmasi penghapusan. Misalnya, berikut adalah respons untuk menghapus tampilan log bernama tester:

    Deleted [tester].
    

Menjelaskan tampilan log

Untuk mengambil informasi mendetail tentang tampilan log, gunakan perintah gcloud logging views describe. Jika Anda tidak mengetahui ID tampilan, lihat Mencantumkan tampilan log.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • VIEW_ID: ID tampilan log.
  • BUCKET_NAME: Nama bucket log.
  • LOCATION: Lokasi bucket log.

Jalankan perintah gcloud logging views describe:

Linux, macOS, atau Cloud Shell

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Respons selalu menyertakan deskripsi dan nama yang sepenuhnya memenuhi syarat dari tampilan log. Filter juga disertakan, jika kolom filter tidak kosong. Berikut adalah contoh respons:

createTime: '2024-02-20T17:41:17.405162921Z'
filter: resource.type="gce_instance"
name: projects/my-project/locations/global/buckets/my-bucket/views/compute
updateTime: '2024-02-20T17:41:17.405162921Z'

Melihat log yang terkait dengan tampilan log

Untuk melihat log dalam tampilan log, pastikan Anda memiliki peran Logs View Accessor (roles/logging.viewAccessor) untuk tampilan log:

  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. Di toolbar, klik Pertajam cakupan, klik Tampilan log, lalu pilih tampilan log.

Untuk mengetahui informasi selengkapnya, lihat dokumentasi Logs Explorer.

Langkah selanjutnya

Untuk mempelajari cara mengontrol akses ke kolom tertentu dalam entri log, lihat Mengonfigurasi akses tingkat kolom.