Dokumen ini menjelaskan cara Anda menggunakan peran dan izin Identity and Access Management (IAM) untuk mengontrol akses ke data log di Logging API, Logs Explorer, dan Google Cloud CLI.
Ringkasan
Izin dan peran IAM menentukan kemampuan Anda untuk mengakses data log di Logging API, Logs Explorer, dan Google Cloud CLI.
Peran adalah kumpulan izin. Anda tidak dapat memberikan izin utama secara langsung, tetapi berikan peran kepada akun utama. Saat peran diberikan ke akun utama, semua izin pada peran tersebut juga diberikan. Anda dapat memberikan beberapa peran ke akun utama yang sama.
Untuk menggunakan Logging dalam resource Google Cloud, seperti project, folder, bucket, atau organisasi Google Cloud, akun utama harus memiliki peran IAM yang berisi izin yang sesuai.
Peran yang telah ditetapkan
IAM menyediakan peran bawaan untuk memberikan akses terperinci ke resource Google Cloud tertentu dan mencegah akses yang tidak diinginkan ke resource lain. Google Cloud membuat dan mengelola peran ini serta otomatis memperbarui izinnya jika diperlukan, seperti saat Logging menambahkan fitur baru.
Tabel berikut mencantumkan peran bawaan untuk Logging. Untuk setiap peran, tabel menampilkan judul peran, deskripsi, izin yang terdapat, dan jenis resource level terendah tempat peran dapat diberikan. Anda dapat memberikan peran yang telah ditetapkan di level project Google Cloud atau, pada umumnya, jenis apa pun yang lebih tinggi dalam hierarki Google Cloud. Untuk mengatur cakupan peran Logs View Accessor lebih ketat ke level bucket, gunakan atribut resource untuk IAM Conditions.
Untuk mendapatkan daftar semua izin individual yang terdapat dalam peran, lihat Mendapatkan metadata peran.
Role | Permissions |
---|---|
Logging Admin( Provides all permissions necessary to use all features of Cloud Logging. Lowest-level resources where you can grant this role:
|
|
Logs Bucket Writer( Ability to write logs to a log bucket. Lowest-level resources where you can grant this role:
|
|
Logs Configuration Writer( Provides permissions to read and write the configurations of logs-based metrics and sinks for exporting logs. Lowest-level resources where you can grant this role:
|
|
Log Field Accessor( Ability to read restricted fields in a log bucket. Lowest-level resources where you can grant this role:
|
|
Log Link Accessor( Ability to see links for a bucket. |
|
Logs Writer( Provides the permissions to write log entries. Lowest-level resources where you can grant this role:
|
|
Private Logs Viewer( Provides permissions of the Logs Viewer role and in addition, provides read-only access to log entries in private logs. Lowest-level resources where you can grant this role:
|
|
SQL Alert Writer Beta( Ability to write SQL Alerts. |
|
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
|
Logs Viewer( Provides access to view logs. Lowest-level resources where you can grant this role:
|
|
Bagian berikut memberikan informasi tambahan untuk membantu Anda menentukan peran yang berlaku untuk kasus penggunaan akun utama Anda.
Peran logging
Untuk mengizinkan pengguna melakukan semua tindakan di Logging, berikan peran Logging Admin (
roles/logging.admin
).Agar pengguna dapat membuat dan mengubah konfigurasi logging, seperti sink, bucket, tampilan, link, metrik berbasis log, atau pengecualian, berikan peran Logs Configuration Writer (
roles/logging.configWriter
).Untuk mengizinkan pengguna membaca log di bucket
_Required
dan_Default
, gunakan Logs Explorer, dan gunakan halaman Log Analytics, berikan salah satu peran berikut:- Untuk akses ke semua log di bucket
_Required
, dan akses ke tampilan_Default
di bucket_Default
, berikan peran Logs Viewer (roles/logging.viewer
). - Untuk akses ke semua log di bucket
_Required
dan_Default
, termasuk log akses data, berikan peran Private Logs Viewer (roles/logging.privateLogViewer
).
- Untuk akses ke semua log di bucket
Untuk mengizinkan pengguna membaca log yang disimpan di bucket yang ditentukan pengguna, berikan peran Logs View Accessor (
roles/logging.viewAccessor
). Anda dapat membatasi otorisasi untuk tampilan log tertentu di bucket tertentu menggunakan kondisi IAM. Baca bagian Memberikan akses ke tampilan log.Untuk memberi pengguna akses ke kolom
LogEntry
yang dibatasi, jika ada, di bucket tertentu, berikan peran Logs Field Accessor (roles/logging.fieldAccessor
). Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi akses tingkat kolom.Untuk mengizinkan pengguna menulis log dengan menggunakan Logging API, berikan peran Logs Writer (
roles/logging.logWriter
). Peran ini tidak memberikan izin lihat.Agar akun layanan dari sink merutekan log ke bucket dalam project Google Cloud lain, berikan peran Logs Bucket Writer (
roles/logging.bucketWriter
) ke akun layanan. Untuk petunjuk tentang memberikan izin ke akun layanan, lihat Menetapkan izin tujuan.
Peran level project
Untuk memberikan akses lihat ke sebagian besar layanan Google Cloud, berikan peran Viewer (
roles/viewer
).Peran ini mencakup semua izin yang diberikan oleh peran Logs Viewer (
roles/logging.viewer
).Untuk memberikan akses editor ke sebagian besar layanan Google Cloud, berikan peran Editor (
roles/editor
).Peran ini mencakup semua izin yang diberikan oleh peran Logs Viewer (
roles/logging.viewer
), serta izin untuk menulis entri log, menghapus log, dan membuat metrik berbasis log. Namun, peran ini tidak memungkinkan pengguna membuat sink, membaca log audit Akses Data yang ada di bucket_Default
, atau membaca log yang ada di bucket log yang ditentukan pengguna.Untuk memberikan akses penuh ke sebagian besar layanan Google Cloud, berikan peran Owner (
roles/owner
).
Pemberian peran
Untuk mempelajari cara memberikan peran ke akun utama, lihat Memberikan, mengubah, dan mencabut akses.
Anda dapat memberikan beberapa peran kepada pengguna yang sama. Untuk mendapatkan daftar izin yang terdapat dalam peran, lihat Mendapatkan metadata peran.
Jika Anda mencoba mengakses resource Google Cloud dan tidak memiliki izin yang diperlukan, hubungi akun utama yang tercantum sebagai Pemilik untuk resource tersebut.
Peran khusus
Untuk membuat peran khusus dengan izin Logging, lakukan hal berikut:
Untuk izin pemberian peran untuk Logging API, pilih izin dari izin API, lalu ikuti petunjuk untuk membuat peran kustom.
Untuk izin yang memberikan peran untuk menggunakan Logs Explorer, pilih dari grup izin di izin Konsol, lalu ikuti petunjuk untuk membuat peran khusus.
Guna mengetahui izin pemberian peran untuk menggunakan
gcloud logging
, lihat bagian Izin command line di halaman ini, lalu ikuti petunjuk untuk membuat peran khusus.
Untuk mengetahui informasi selengkapnya tentang peran khusus, baca artikel Memahami peran khusus IAM.
Izin untuk Logging API
Metode Logging API memerlukan izin IAM tertentu. Tabel berikut mencantumkan izin yang diperlukan oleh metode API.
Jika Anda tertarik dengan log yang disimpan di organisasi, akun penagihan, dan folder Google Cloud, perhatikan bahwa resource tersebut memiliki metode API sendiri untuk logs
dan sinks
. Daripada mengulangi semua metode dalam
tabel, hanya metode projects
yang ditampilkan satu per satu.
Metode logging | Izin yang diperlukan | Jenis aset |
---|---|---|
billingAccounts.logs.* |
logging.logs.* (Lihat projects.logs.* ) |
akun penagihan |
billingAccounts.sinks.* |
logging.sinks.* (Lihat projects.sinks.* .) |
akun penagihan |
billingAccounts.locations.buckets.* |
logging.buckets.* (Lihat projects.locations.buckets.* .) |
akun penagihan |
entries.list |
logging.logEntries.list ataulogging.privateLogEntries.list |
project, organisasi, folder, akun penagihan |
entries.tail |
logging.logEntries.list ataulogging.privateLogEntries.list |
project, organisasi, folder, akun penagihan |
entries.write |
logging.logEntries.create |
project, organisasi, folder, akun penagihan |
folders.logs.* |
logging.logs.* (Lihat projects.logs.* ) |
folder |
folders.sinks.* |
logging.sinks.* (Lihat projects.sinks.* ) |
folder |
folders.locations.buckets.* |
logging.buckets.* (Lihat projects.locations.buckets.* ) |
folder |
monitoredResourceDescriptors.list |
(tidak ada) | (tidak ada) |
organizations.logs.* |
logging.logs.* (Lihat projects.logs.* ) |
organizations |
organizations.sinks.* |
logging.sinks.* (Lihat projects.sinks.* ) |
organizations |
organizations.locations.buckets.* |
logging.buckets.* (Lihat projects.locations.buckets.* ) |
organizations |
projects.exclusions.create |
logging.exclusions.create |
projects |
projects.exclusions.delete |
logging.exclusions.delete |
projects |
projects.exclusions.get |
logging.exclusions.get |
projects |
projects.exclusions.list |
logging.exclusions.list |
projects |
projects.exclusions.patch |
logging.exclusions.update |
projects |
projects.logs.list |
logging.logs.list |
projects |
projects.logs.delete |
logging.logs.delete |
projects |
projects.sinks.list |
logging.sinks.list |
projects |
projects.sinks.get |
logging.sinks.get |
projects |
projects.sinks.create |
logging.sinks.create |
projects |
projects.sinks.update |
logging.sinks.update |
projects |
projects.sinks.delete |
logging.sinks.delete |
projects |
projects.locations.buckets.list |
logging.buckets.list |
projects |
projects.locations.buckets.get |
logging.buckets.get |
projects |
projects.locations.buckets.patch |
logging.buckets.update |
projects |
projects.locations.buckets.create |
logging.buckets.create |
projects |
projects.locations.buckets.delete |
logging.buckets.delete |
projects |
projects.locations.buckets.undelete |
logging.buckets.undelete |
projects |
projects.metrics.list |
logging.logMetrics.list |
projects |
projects.metrics.get |
logging.logMetrics.get |
projects |
projects.metrics.create |
logging.logMetrics.create |
projects |
projects.metrics.update |
logging.logMetrics.update |
projects |
projects.metrics.delete |
logging.logMetrics.delete |
projects |
Izin untuk konsol Google Cloud
Tabel berikut mencantumkan izin yang diperlukan untuk menggunakan Logs Explorer.
Dalam tabel, a.b.{x,y}
berarti a.b.x
dan a.b.y
.
Aktivitas konsol | Izin yang diperlukan |
---|---|
Akses hanya baca minimal | logging.logEntries.list logging.logs.list logging.logServiceIndexes.list logging.logServices.list resourcemanager.projects.get |
Menambahkan kemampuan untuk melihat log audit Akses Data | Tambahkan logging.privateLogEntries.list |
Tambahkan kemampuan untuk melihat metrik berbasis log | Tambahkan logging.logMetrics. {list , get } |
Menambahkan kemampuan untuk melihat sink | Tambahkan logging.sinks. {list , get } |
Menambahkan kemampuan untuk melihat penggunaan log | Tambahkan logging.usage.get |
Menambahkan kemampuan untuk mengecualikan log | Tambahkan logging.exclusions. {list , create , get , update , delete } |
Menambahkan kemampuan untuk menggunakan sink | Menambahkan logging.sinks.{list , create , get , update , delete } |
Menambahkan kemampuan untuk membuat metrik berbasis log | Tambahkan logging.logMetrics. {list , create , get , update , delete } |
Tambahkan kemampuan untuk menyimpan kueri | Tambahkan logging.queries. {list , create , get , update , delete } |
Tambahkan kemampuan untuk membagikan kueri | Tambahkan logging.queries.share |
Tambahkan kemampuan untuk menggunakan kueri terbaru | Tambahkan logging.queries. {create , list } |
Izin untuk command line
Perintah gcloud logging
dikontrol oleh izin IAM.
Untuk menggunakan salah satu perintah gcloud logging
, akun utama harus memiliki
izin serviceusage.services.use
.
Akun utama juga harus memiliki peran IAM yang sesuai dengan resource log dan kasus penggunaan. Untuk mengetahui detailnya, lihat izin antarmuka command line.
Izin untuk set data BigQuery tertaut
Daftar berikut ini menjelaskan peran yang telah ditetapkan dan izin yang sesuai untuk mengelola set data BigQuery tertaut:
Peran Logging Admin (
roles/logging.admin
) dan Logs Configuration Writer (roles/logging.configWriter
) berisi izin berikut:logging.links.list
logging.links.create
logging.links.get
logging.links.delete
Peran Log Link Accessor (
roles/logging.linkViewer
), Private Logs Viewer (roles/logging.privateLogViewer
), dan Logs Viewer (roles/logging.viewer
) berisi izin berikut:logging.links.list
logging.links.get
Peran dan izin yang tercantum sebelumnya hanya berlaku untuk halaman Logging, seperti halaman Log Analytics. Jika Anda menggunakan antarmuka BigQuery untuk mengelola set data, Anda mungkin memerlukan peran dan izin BigQuery yang terpisah. Lihat Kontrol akses dengan IAM untuk BigQuery guna mengetahui informasi selengkapnya.
Izin untuk merutekan log
Untuk mengetahui informasi tentang cara menetapkan kontrol akses saat membuat dan mengelola sink untuk merutekan log, lihat Menetapkan izin tujuan.
Perhatikan bahwa pengelolaan filter pengecualian terintegrasi dengan mengonfigurasi sink. Semua
izin yang terkait dengan pengelolaan sink, termasuk menyetel filter pengecualian, disertakan dalam izin logging.sinks.*
. Saat membuat peran kustom yang
menyertakan izin untuk mengelola filter pengecualian, tambahkan izin logging.sinks.*
ke peran, bukan menambahkan izin
logging.exclusions.*
.
Setelah entri log Anda dirutekan ke tujuan yang didukung, akses ke salinan log dikontrol sepenuhnya oleh izin dan peran IAM pada tujuan: Cloud Storage, BigQuery, atau Pub/Sub.
Izin untuk metrik berbasis log
Berikut adalah ringkasan peran dan izin umum yang diperlukan akun utama untuk mengakses metrik berbasis log:
Peran Logs Configuration Writer (
roles/logging.configWriter
) memungkinkan akun utama mencantumkan, membuat, mendapatkan, memperbarui, dan menghapus metrik berbasis log.Peran Logs Viewer (
roles/logging.viewer
) berisi izin untuk melihat metrik yang ada. Secara khusus, akun utama memerlukan izinlogging.logMetrics.get
danlogging.logMetrics.list
untuk melihat metrik yang ada.Peran Monitoring Viewer (
roles/monitoring.viewer
) berisi izin untuk membaca data TimeSeries. Secara khusus, akun utama memerlukan izinmonitoring.timeSeries.list
untuk membaca data deret waktu.Peran Logging Admin (
roles/logging.admin
), Project Editor (roles/editor
), dan Project Owner (roles/owner
) berisi izin untuk membuat metrik berbasis log. Secara khusus, akun utama memerlukan izinlogging.logMetrics.create
untuk membuat metrik berbasis log.
Izin untuk notifikasi berbasis log
Untuk membuat dan mengelola pemberitahuan berbasis log, akun utama memerlukan peran dan izin Logging dan Pemantauan berikut:
-
Untuk mendapatkan izin yang diperlukan untuk membaca log dan mengelola aturan notifikasi Logging, minta administrator untuk memberi Anda peran IAM Admin Logging (
roles/logging.admin
) pada project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
-
Untuk mendapatkan izin yang Anda perlukan untuk mengelola kebijakan dan saluran pemberitahuan yang digunakan oleh pemberitahuan berbasis log, minta administrator untuk memberi Anda peran IAM berikut pada project Anda:
-
Monitoring AlertPolicy Editor (
roles/monitoring.alertPolicyEditor
) -
Monitoring NotificationChannel Editor (
roles/monitoring.notificationChannelEditor
)
-
Monitoring AlertPolicy Editor (
-
Untuk mendapatkan izin yang diperlukan guna membuat kebijakan pemberitahuan di Google Cloud CLI, minta administrator untuk memberi Anda peran IAM Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer
) di project Anda.
Logging cakupan akses
Cakupan akses adalah metode lama untuk menentukan izin bagi akun layanan di instance VM Compute Engine Anda.
Cakupan akses berikut berlaku untuk Logging API:
Cakupan akses | Izin yang diberikan |
---|---|
https://www.googleapis.com/auth/logging.read | roles/logging.viewer |
https://www.googleapis.com/auth/logging.write | roles/logging.logWriter |
https://www.googleapis.com/auth/logging.admin | Akses penuh ke Logging API. |
https://www.googleapis.com/auth/cloud-platform | Akses penuh ke Logging API dan ke semua Google Cloud API lainnya yang diaktifkan. |
Untuk mengetahui informasi tentang cara menggunakan metode lama ini dalam menetapkan tingkat akses akun layanan, lihat Izin akun layanan.