Log audit Akses Data memungkinkan Anda mencatat panggilan API yang membaca konfigurasi atau metadata resource, serta panggilan API berbasis pengguna yang membuat, mengubah, atau membaca data resource yang disediakan pengguna. Karena log ini dinonaktifkan secara default untuk sebagian besar layanan, Anda dapat mengaktifkan, mengonfigurasi, atau menonaktifkannya secara eksplisit untuk project, akun penagihan, folder, dan organisasi Google Cloud Anda menggunakan konsol Google Cloud atau API.
Sebelum memulai
Sebelum melanjutkan konfigurasi log audit Akses Data, pahami informasi berikut:
Log audit Akses Data dinonaktifkan secara default untuk semua layanan, kecuali beberapa layanan BigQuery. Jika Anda ingin log audit Akses Data ditulis untuk layanan yang menonaktifkan log ini secara default, Anda harus mengaktifkannya secara eksplisit di konsol Google Cloud , atau dengan menggunakan API.
Log audit Akses Data disimpan di bucket
_Default, kecuali jika Anda telah merutekannya ke tempat lain. Untuk mengetahui informasi selengkapnya, lihat Menyimpan dan merutekan log audit.Log audit Akses Data membantu Dukungan Google memecahkan masalah terkait akun Anda. Oleh karena itu, sebaiknya aktifkan log audit Akses Data jika memungkinkan.
-
Untuk mendapatkan izin yang diperlukan agar dapat mengakses semua log di bucket
_Requireddan_Default, termasuk log Akses Data, minta administrator untuk memberi Anda peran IAM Private Logs Viewer (roles/logging.privateLogViewer) di project Anda.Peran Private Logs Viewer
(roles/logging.privateLogViewer)mencakup izin yang ada dalam peran Logs Viewer (roles/logging.viewer), dan izin yang diperlukan untuk membaca log audit Akses Data di bucket_Default.Peran Editor (
roles/editor) tidak menyertakan izin yang diperlukan untuk melihat log Akses Data.Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM yang berlaku untuk data log audit, lihat Kontrol akses dengan IAM.
Ringkasan konfigurasi
Anda dapat mengonfigurasi cara mengaktifkan log audit Akses Data untuk resource dan layananGoogle Cloud Anda:
Organisasi: Anda dapat mengaktifkan dan mengonfigurasi log audit Akses Data di organisasi, yang berlaku untuk semua project dan folderGoogle Cloud yang sudah ada dan yang baru di organisasi.
Folder: Anda dapat mengaktifkan dan mengonfigurasi log audit Akses Data di folder, yang berlaku untuk semua project Google Cloud yang sudah ada dan baru di folder tersebut. Anda tidak dapat menonaktifkan log audit Akses Data yang diaktifkan di organisasi induk project.
Project: Anda dapat mengonfigurasi log audit Akses Data untuk setiap projectGoogle Cloud . Anda tidak dapat menonaktifkan log audit Akses Data yang diaktifkan di organisasi atau folder induk.
Akun penagihan: Untuk mengonfigurasi log audit Akses Data untuk akun penagihan, gunakan Google Cloud CLI. Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud CLI dengan log audit Akses Data dan akun penagihan, lihat dokumentasi
gcloud beta billing accounts set-iam-policy.Konfigurasi default: Anda dapat menentukan konfigurasi log audit Akses Data default di organisasi, folder, atau project Google Cloud yang berlaku untuk layanan Google Cloud mendatang yang mulai menghasilkan log audit Akses Data. Untuk mengetahui petunjuknya, lihat Menetapkan konfigurasi default.
Jenis izin: Anda dapat menentukan bahwa API Google Cloud yang hanya memeriksa jenis izin tertentu akan memunculkan log audit. Untuk mengetahui informasi selengkapnya, lihat bagian Jenis izin di halaman ini.
Akun utama yang dikecualikan: Anda dapat mengecualikan akun utama tertentu agar akses datanya tidak dicatat. Misalnya, Anda dapat mengecualikan akun pengujian internal agar tidak tercatat operasi Cloud Monitoring-nya. Untuk mengetahui daftar akun utama yang valid, termasuk pengguna dan grup, lihat referensi jenis
Binding.
Anda dapat mengonfigurasi log audit Akses Data melalui halaman Audit Logs IAM di konsol Google Cloud , atau menggunakan API. Metode ini dijelaskan di bagian berikut.
Jenis izin
Metode API memeriksa izin IAM. Setiap izin IAM memiliki jenis izin, yang ditentukan oleh properti type.
Jenis izin dikategorikan sebagai jenis izin Akses Data
atau sebagai jenis izin Aktivitas Admin:
Jenis izin Akses Data:
ADMIN_READ: Izin IAM jenis ini diperiksa untuk metode APIGoogle Cloud yang membaca metadata atau informasi konfigurasi. Biasanya, log auditADMIN_READdinonaktifkan secara default dan harus diaktifkan.DATA_READ: Izin IAM jenis ini diperiksa untuk metode APIGoogle Cloud yang membaca data yang disediakan pengguna. Biasanya, log auditDATA_READdinonaktifkan secara default dan harus diaktifkan.DATA_WRITE: Izin IAM jenis ini diperiksa untuk metode APIGoogle Cloud yang menulis data yang disediakan pengguna. Biasanya, log auditDATA_WRITEdinonaktifkan secara default dan harus diaktifkan.
Jenis izin Aktivitas Admin:
ADMIN_WRITE: Izin IAM jenis ini diperiksa untuk metode APIGoogle Cloud yang menulis metadata atau informasi konfigurasi. Log audit yang terkait dengan jenis ini, Log audit Aktivitas Admin, aktif secara default dan tidak dapat dinonaktifkan.
Anda dapat mengaktifkan atau menonaktifkan jenis izin untuk layanan dengan menggunakan konsolGoogle Cloud atau dengan memanggil API.
Sebagian besar API Google Cloud hanya memeriksa apakah pemanggil memiliki satu izin IAM. Jika jenis izin yang terkait dengan izin tersebut diaktifkan untuk layanan yang API-nya dipanggil, API akan membuat log audit.
Bagian berikut umumnya menjelaskan cara lain metode API Google Cloudmemeriksa izin IAM. Untuk mengetahui informasi khusus layanan tentang metode mana yang diperiksa untuk jenis izin tertentu, lihat dokumentasi logging audit layanan.
Pemeriksaan izin IAM untuk jenis izin Akses Data
Beberapa metode API Google Cloud memeriksa apakah pemanggil memiliki beberapa izin IAM dengan jenis izin Akses Data yang berbeda. Log audit ditulis saat salah satu jenis izin Akses Data tersebut diaktifkan di project.
Misalnya, metode API mungkin memeriksa apakah akun utama yang mengeluarkan permintaan API memiliki izin example.resource.get (DATA_READ) dan example.resource.write (DATA_WRITE). Project hanya perlu mengaktifkan DATA_WRITE atau DATA_READ agar layanan dapat memunculkan log audit saat mengeluarkan panggilan.
Jenis izin IAM Aktivitas Admin dan Akses Data yang diperiksa
Beberapa metode API Google Cloud memeriksa izin IAM
yang memiliki jenis izin ADMIN_WRITE, dan satu atau beberapa
izin yang memiliki jenis izin Akses Data.
Jenis panggilan API ini memunculkan log audit Aktivitas Admin, yang aktif secara default dan tidak dapat dinonaktifkan.
Pemeriksaan metode API untuk izin IAM yang tidak dimiliki oleh layanan
Beberapa layanan Google Cloud memiliki metode API yang menghasilkan log audit hanya jika jenis izin tertentu diaktifkan untuk layanan yang berbeda.
Misalnya, Penagihan Cloud memiliki metode API yang memeriksa jenis izin ADMIN_READ
yang dimiliki oleh Resource Manager. ADMIN_READ harus diaktifkan untuk layanan cloudresourcemanager.googleapis.com guna mengaktifkan log audit yang terkait dengan Cloud Billing API.
Pemeriksaan metode API yang sama untuk izin IAM yang berbeda
Untuk beberapa API Google Cloud , cara metode dipanggil menentukan jenis izin IAM yang harus diaktifkan pada project agar log audit dapat dibuat.
Misalnya, Spanner memiliki metode API yang terkadang memeriksa izin IAM dengan jenis DATA_WRITE, dan terkadang memeriksa izin IAM dengan jenis DATA_READ, bergantung pada cara metode dipanggil. Dalam hal ini, mengaktifkan DATA_WRITE untuk Spanner
pada project panggilan API hanya akan mengaktifkan log audit yang terkait dengan API
saat izin IAM dengan jenis DATA_WRITE diperiksa.
Konfigurasi khusus layanan
Jika ada konfigurasi Google Cloud seluruh layanan (allServices)
dan konfigurasi untuk layanan Google Cloud tertentu, konfigurasi yang dihasilkan untuk layanan tersebut adalah gabungan dari kedua konfigurasi.
Dengan kata lain:
Anda dapat mengaktifkan log audit Akses Data untuk layanan Google Cloud tertentu, tetapi Anda tidak dapat menonaktifkan log audit Akses Data untuk layananGoogle Cloud yang diaktifkan dalam konfigurasi yang lebih luas.
Anda dapat menambahkan jenis informasi tambahan ke log audit Akses Data layanan Google Cloud, tetapi Anda tidak dapat menghapus jenis informasi yang ditentukan dalam konfigurasi yang lebih luas.
Anda dapat menambahkan akun utama ke daftar pengecualian, tetapi Anda tidak dapat menghapusnya dari daftar pengecualian dalam konfigurasi yang lebih luas.
Untuk BigQuery Data Transfer Service, konfigurasi log audit Akses Data diwarisi dari konfigurasi log audit default Anda.
Server MCP Google Cloud menulis log audit Akses Data yang bersifat khusus layanan dan menggunakan format SERVICE_NAME.googleapis.com/mcp. Anda dapat mengaktifkan log Akses Data ini dengan mengaktifkan logging audit untuk mcp.googleapis.com di objek AuditConfig IAM.
Untuk mengetahui informasi selengkapnya tentang logging audit untuk server MCP Google Cloud, lihat
Logging audit server MCP Google Cloud.
Konfigurasi resourceGoogle Cloud
Anda dapat mengonfigurasi log audit Akses Data untuk Google Cloud project, akun penagihan, folder, dan organisasi. Jika ada konfigurasi untuk layananGoogle Cloud di seluruh hierarki, konfigurasi yang dihasilkan adalah gabungan dari konfigurasi tersebut. Dengan kata lain, di level projectGoogle Cloud :
Anda dapat mengaktifkan log untuk layanan Google Cloud , tetapi Anda tidak dapat menonaktifkan log untuk layanan Google Cloud yang diaktifkan di organisasi atau folder induk.
Anda dapat mengaktifkan jenis informasi, tetapi Anda tidak dapat menonaktifkan jenis informasi yang diaktifkan di organisasi atau folder induk.
Anda dapat menambahkan akun utama ke daftar pengecualian, tetapi Anda tidak dapat menghapusnya dari daftar pengecualian di organisasi atau folder induk.
Di tingkat organisasi atau folder induk, Anda dapat mengaktifkan log audit Akses Data untuk project Google Cloud dalam organisasi atau folder tersebut, meskipun log audit Akses Data belum dikonfigurasi dalam projectGoogle Cloud .
Kontrol akses
Peran dan izin Identity and Access Management mengatur akses ke data Logging, termasuk melihat dan mengelola kebijakan IAM yang mendasari konfigurasi logging audit Akses Data.
Untuk melihat atau menetapkan kebijakan yang terkait dengan konfigurasi Akses Data, Anda memerlukan peran dengan izin di tingkat resource yang sesuai. Untuk mengetahui petunjuk tentang cara memberikan peran level resource ini, lihat Mengelola akses ke Google Cloud project, folder, dan organisasi.
Untuk menetapkan kebijakan IAM, Anda memerlukan peran dengan izin
resourcemanager.RESOURCE_TYPE.setIamPolicy.Untuk melihat kebijakan IAM, Anda memerlukan peran dengan izin
resourcemanager.RESOURCE_TYPE.getIamPolicy.
Untuk mengetahui daftar izin dan peran yang Anda perlukan untuk melihat log audit Akses Data, lihat Kontrol akses dengan IAM.
Mengonfigurasi log audit Akses Data dengan konsol Google Cloud
Bagian ini menjelaskan cara menggunakan konsol Google Cloud untuk mengonfigurasi log audit Akses Data.
Anda juga dapat menggunakan API atau Google Cloud CLI untuk melakukan tugas ini secara terprogram; lihat Mengonfigurasi log audit Akses Data dengan API untuk mengetahui detailnya.
Untuk mengakses opsi konfigurasi log audit di konsol Google Cloud , ikuti langkah-langkah berikut:
-
Di konsol Google Cloud , buka halaman Log Audit:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.
Pilih organisasi, folder, atau project Google Cloud yang sudah ada.
Mengaktifkan log audit
Untuk mengaktifkan log audit Akses Data, lakukan hal berikut:
Di tabel Data Access audit logs configuration, pilih satu atau beberapa layananGoogle Cloud dari kolom Service.
Di tab Permission types, pilih jenis log audit Akses Data yang ingin Anda aktifkan untuk layanan yang dipilih.
Klik Simpan.
Jika Anda telah berhasil mengaktifkan log audit, tabel akan menyertakan ikon check_circle Check.
Dalam contoh berikut, Anda akan melihat bahwa, untuk layanan Persetujuan Akses, jenis log audit Data Read diaktifkan:
Anda juga dapat mengaktifkan log audit untuk semua layanan Google Cloud yang menghasilkan log audit Akses Data. Di tabel konfigurasi log audit Akses Data, pilih semua Google Cloud layanan.
Perhatikan bahwa metode konfigurasi massal ini hanya berlaku untuk layanan Google Cloud yang tersedia untuk resource Anda. Jika layananGoogle Cloud baru ditambahkan, layanan tersebut akan mewarisi konfigurasi audit default Anda.
Menonaktifkan log audit Akses Data
Untuk menonaktifkan log audit Akses Data, lakukan hal berikut:
Di tabel Konfigurasi log audit Akses Data, pilih satu atau beberapa layananGoogle Cloud .
Di tab Log Types pada panel informasi, pilih jenis log audit Akses Data yang ingin Anda nonaktifkan untuk layanan yang dipilih.
Klik Simpan.
Jika Anda berhasil menonaktifkan log audit Akses Data, tabel akan menunjukkan hal ini dengan tanda hubung. Log audit Akses Data yang diaktifkan ditunjukkan dengan ikon check_circle Check.
Menetapkan pengecualian
Anda dapat menetapkan pengecualian untuk mengontrol akun utama mana yang menghasilkan log audit Akses Data untuk layanan tertentu. Saat Anda menambahkan akun utama yang dikecualikan, log audit tidak akan dibuat untuk akun utama tersebut untuk jenis log yang dipilih.
Untuk menetapkan pengecualian, lakukan tindakan berikut:
Di tabel Data Access audit logs configuration, pilih layananGoogle Cloud dari kolom Service.
Pilih tab Exempted Principals di panel informasi.
Di Add exempted principal, masukkan akun utama yang ingin Anda kecualikan dari pembuatan log audit Akses Data untuk layanan yang Anda pilih.
Anda dapat menambahkan beberapa akun utama dengan mengklik tombol Tambahkan akun utama yang dikecualikan sebanyak yang diperlukan.
Untuk mengetahui daftar akun utama yang valid, termasuk pengguna dan grup, lihat referensi jenis
Binding.Di Disabled Log Types, pilih jenis log audit Akses Data yang ingin Anda nonaktifkan.
Klik Simpan.
Jika Anda telah berhasil menambahkan akun utama yang dikecualikan ke layanan, tabel Data Access audit logs configuration akan menunjukkan hal ini dengan angka di kolom Exempted principals.
Untuk menghapus akun utama dari daftar pengecualian, lakukan hal berikut:
Di tabel Data Access audit logs configuration, pilih layananGoogle Cloud dari kolom Service.
Pilih tab Exempted Principals di panel informasi.
Arahkan kursor ke nama akun utama, lalu pilih Delete.
Setelah nama akun utama ditampilkan dalam teks yang dicoret, klik Save.
Untuk mengedit informasi akun utama yang dikecualikan, lakukan hal berikut:
Di tabel Data Access audit logs configuration, pilih layananGoogle Cloud dari kolom Service.
Pilih tab Exempted Principals di panel informasi.
Temukan akun utama dan pilih luaskan expand_more Tampilkan lebih banyak.
Pilih atau batalkan pilihan jenis log audit Akses Data yang sesuai untuk principal.
Klik Simpan.
Menetapkan konfigurasi default
Anda dapat menetapkan konfigurasi yang diwarisi oleh semua layanan Google Cloud baru dan yang sudah ada di project, folder, atau organisasi Google Cloud Anda. Menetapkan konfigurasi default ini berlaku jika layanan Google Cloud baru tersedia dan akun utama di organisasi Anda mulai menggunakannya: layanan tersebut mewarisi kebijakan logging audit yang telah Anda tetapkan untuk layanan Google Cloud lain, sehingga memastikan log audit Akses Data dicatat.
Untuk menetapkan atau mengedit konfigurasi default, lakukan hal berikut:
Klik Set Default Configuration.
Di tab Log Types pada panel informasi, pilih jenis log audit Akses Data yang ingin Anda aktifkan atau nonaktifkan.
Klik Simpan.
Pilih tab Exempted Principals di panel informasi.
Di Add exempted principal, masukkan akun utama yang ingin Anda kecualikan dari pembuatan log audit Akses Data untuk layanan yang Anda pilih.
Anda dapat menambahkan beberapa akun utama dengan mengklik tombol Tambahkan akun utama yang dikecualikan sebanyak yang diperlukan.
Untuk mengetahui daftar akun utama yang valid, termasuk pengguna dan grup, lihat referensi jenis
Binding.Di Disabled Log Types, pilih jenis log audit Akses Data yang ingin Anda nonaktifkan.
Klik Simpan.
Mengonfigurasi log audit Akses Data dengan API
Bagian ini menjelaskan cara menggunakan API dan gcloud CLI untuk mengonfigurasi log audit Akses Data secara terprogram.
Banyak dari tugas ini juga dapat dilakukan menggunakan konsol Google Cloud ; untuk mengetahui petunjuknya, lihat Mengonfigurasi log audit Akses Data dengan konsol Google Cloud di halaman ini.
Beberapa layanan BigQuery, seperti BigQuery Reservation API, mengharuskan Anda mengaktifkan log audit Akses Data secara eksplisit. Untuk mengaktifkan log audit akses data untuk BigQuery Reservation API, Anda harus mengedit konfigurasi untuk mengaktifkan log audit ADMIN_READ untuk bigquery.googleapis.com.
Objek kebijakan IAM
Untuk mengonfigurasi log audit Akses Data menggunakan API, Anda harus mengedit kebijakan IAM yang terkait dengan project, folder, atau organisasi Google Cloud Anda. Konfigurasi log audit ada di bagian auditConfigs pada kebijakan:
"auditConfigs": [
{
object(AuditConfig)
}
]
Untuk mengetahui detailnya, lihat jenis Kebijakan IAM.
Bagian berikut menjelaskan objek AuditConfig secara lebih mendetail.
Untuk perintah API dan gcloud CLI yang digunakan untuk mengubah konfigurasi,
lihat bagian berjudul
getIamPolicy dan setIamPolicy.
AuditConfig objek
Konfigurasi log audit terdiri dari daftar objek AuditConfig. Setiap objek mengonfigurasi log untuk satu layanan, atau membuat konfigurasi yang lebih luas untuk semua layanan. Setiap objek terlihat seperti berikut:
{
"service": SERVICE_NAME,
"auditLogConfigs": [
{
"logType": "ADMIN_READ"
"exemptedMembers": [ PRINCIPAL,]
},
{
"logType": "DATA_READ"
"exemptedMembers": [ PRINCIPAL,]
},
{
"logType": "DATA_WRITE"
"exemptedMembers": [ PRINCIPAL,]
},
]
},
SERVICE_NAME memiliki nilai seperti "appengine.googleapis.com", atau merupakan nilai khusus, "allServices". Jika konfigurasi tidak menyebutkan layanan tertentu, konfigurasi yang lebih luas akan digunakan untuk layanan tersebut. Jika tidak ada konfigurasi, log audit Akses Data tidak akan diaktifkan untuk layanan tersebut.
Untuk mengetahui daftar nama layanan, lihat
Layanan log.
Bagian auditLogConfigs dari objek AuditConfig adalah daftar yang berisi 0 hingga 3 objek, yang masing-masing mengonfigurasi satu jenis informasi log audit. Jika Anda menghapus
salah satu jenis dari daftar, jenis informasi tersebut tidak akan diaktifkan
untuk layanan.
PRINCIPAL adalah pengguna yang log audit Akses Datanya tidak dikumpulkan. Jenis Binding menjelaskan berbagai jenis akun utama, termasuk pengguna dan grup, tetapi tidak semuanya dapat digunakan untuk mengonfigurasi log audit Akses Data.
Berikut adalah contoh konfigurasi audit dalam format JSON dan YAML. Format YAML adalah format default saat menggunakan Google Cloud CLI.
JSON
"auditConfigs": [
{
"auditLogConfigs": [
{
"logType": "ADMIN_READ"
},
{
"logType": "DATA_WRITE"
},
{
"logType": "DATA_READ"
}
],
"service": "allServices"
},
{
"auditLogConfigs": [
{
"exemptedMembers": [
"499862534253-compute@developer.gserviceaccount.com"
],
"logType": "ADMIN_READ"
}
],
"service": "cloudsql.googleapis.com"
}
],
YAML
auditConfigs:
- auditLogConfigs:
- logType: ADMIN_READ
- logType: DATA_WRITE
- logType: DATA_READ
service: allServices
- auditLogConfigs:
- exemptedMembers:
- 499862534253-compute@developer.gserviceaccount.com
logType: ADMIN_READ
service: cloudsql.googleapis.com
Konfigurasi umum
Berikut adalah beberapa konfigurasi log audit umum untuk project Google Cloud .
Mengaktifkan semua log audit Akses Data
Bagian auditConfigs berikut mengaktifkan log audit Akses Data untuk semua layanan dan akun utama:
JSON
"auditConfigs": [
{
"service": "allServices",
"auditLogConfigs": [
{ "logType": "ADMIN_READ" },
{ "logType": "DATA_READ" },
{ "logType": "DATA_WRITE" },
]
},
]
YAML
auditConfigs:
- auditLogConfigs:
- logType: ADMIN_READ
- logType: DATA_WRITE
- logType: DATA_READ
service: allServices
Mengaktifkan satu jenis layanan dan informasi
Konfigurasi berikut mengaktifkan log audit Akses Data DATA_WRITE untuk Cloud SQL:
JSON
"auditConfigs": [
{
"service": "cloudsql.googleapis.com",
"auditLogConfigs": [
{ "logType": "DATA_WRITE" },
]
},
]
YAML
auditConfigs:
- auditLogConfigs:
- logType: DATA_WRITE
service: cloudsql.googleapis.com
Menonaktifkan semua log audit Akses Data
Untuk menonaktifkan semua log audit Akses Data (kecuali untuk beberapa log BigQuery) di project Google Cloud , sertakan bagian auditConfigs: kosong dalam kebijakan IAM baru Anda:
JSON
"auditConfigs": [],
YAML
auditConfigs:
Jika Anda menghapus seluruh bagian auditConfigs dari kebijakan baru,
setIamPolicy tidak akan mengubah konfigurasi log audit Akses Data
yang ada. Untuk mengetahui informasi selengkapnya, lihat bagian berjudul
Masker update setIamPolicy.
Log audit Akses Data BigQuery tidak dapat dinonaktifkan.
getIamPolicy dan setIamPolicy
Anda menggunakan metode getIamPolicy dan setIamPolicy Cloud Resource Manager API untuk membaca dan menulis kebijakan IAM Anda. Anda memiliki beberapa pilihan untuk
metode spesifik yang akan digunakan:
Cloud Resource Manager API memiliki metode berikut:
projects.getIamPolicy projects.setIamPolicy organizations.getIamPolicy organizations.setIamPolicyGoogle Cloud CLI memiliki perintah Resource Manager berikut:
gcloud projects get-iam-policy gcloud projects set-iam-policy gcloud resource-manager folders get-iam-policy gcloud resource-manager folders set-iam-policy gcloud organizations get-iam-policy gcloud organizations set-iam-policy gcloud beta billing accounts get-iam-policy gcloud beta billing accounts set-iam-policy
Apa pun pilihan Anda, ikuti tiga langkah berikut:
- Baca kebijakan saat ini menggunakan salah satu metode
getIamPolicy. Simpan kebijakan ke file sementara. - Edit kebijakan dalam file sementara.
Ubah (atau tambahkan) hanya bagian
auditConfigs. - Tulis kebijakan yang telah diedit dalam file sementara,
menggunakan salah satu metode
setIamPolicy.
setIamPolicy akan gagal jika Resource Manager mendeteksi bahwa orang lain mengubah kebijakan setelah Anda membacanya di langkah pertama. Jika ini terjadi,
ulangi ketiga langkah tersebut.
Contoh
Contoh berikut menunjukkan cara mengonfigurasi log audit Akses Data project Anda menggunakan perintah gcloud dan Cloud Resource Manager API.
Untuk mengonfigurasi log audit Akses Data organisasi, ganti versi "projects" dari perintah dan metode API dengan versi "organizations".
gcloud
Untuk mengonfigurasi log audit Akses Data menggunakan perintah gcloud projects, lakukan hal berikut:
Baca kebijakan IAM project Anda dan simpan dalam file:
gcloud projects get-iam-policy PROJECT_ID > /tmp/policy.yamlBerikut ini menunjukkan kebijakan yang ditampilkan. Kebijakan ini tidak memiliki bagian
auditConfigs:bindings: - members: - user:colleague@example.com role: roles/editor - members: - user:myself@example.com role: roles/owner etag: BwVM-FDzeYM= version: 1Edit kebijakan Anda di
/tmp/policy.yaml, dengan hanya menambahkan atau mengubah konfigurasi log audit Akses Data.Contoh kebijakan yang telah Anda edit, yang mengaktifkan log audit Akses Data penulisan data Cloud SQL:
auditConfigs: - auditLogConfigs: - logType: DATA_WRITE service: cloudsql.googleapis.com bindings: - members: - user:colleague@example.com role: roles/editor - members: - user:myself@example.com role: roles/owner etag: BwVM-FDzeYM= version: 1Seperti yang ditunjukkan contoh sebelumnya, empat baris telah ditambahkan ke awal kebijakan.
Tulis kebijakan IAM baru Anda:
gcloud projects set-iam-policy PROJECT_ID /tmp/policy.yamlJika perintah sebelumnya melaporkan konflik dengan perubahan lain, ulangi langkah-langkah ini, dimulai dengan langkah pertama.
JSON
Untuk menggunakan kebijakan IAM dalam format JSON, bukan YAML,
ganti perintah gcloud berikut ke dalam contoh:
gcloud projects get-iam-policy PROJECT_ID --format=json >/tmp/policy.json
gcloud projects set-iam-policy PROJECT_ID /tmp/policy.json
API
Untuk mengonfigurasi log audit Akses Data menggunakan Cloud Resource Manager API, lakukan hal berikut:
Baca kebijakan IAM project Anda, dengan menentukan parameter berikut ke metode getIamPolicy API:
- resource:
projects/PROJECT_ID - Isi permintaan: kosong
Metode ini akan menampilkan objek kebijakan saat ini:
{ "version": 1, "etag": "BwXqwxkr40M=", "bindings": [ { "role": "roles/owner", "members": [ "user:myself@example.com" ] } ] }Contoh sebelumnya menunjukkan bahwa kebijakan project tidak memiliki bagian
auditConfigs.- resource:
Edit kebijakan saat ini:
Ubah atau tambahkan bagian
auditConfigs.Untuk menonaktifkan log audit Akses Data, sertakan nilai kosong untuk bagian:
auditConfigs:[].Pertahankan nilai
etag.
Anda juga dapat menghapus semua informasi lain dari objek kebijakan baru, asalkan Anda berhati-hati dalam menetapkan
updateMaskdi langkah berikutnya. Berikut ini menunjukkan kebijakan yang diedit, yang mengaktifkan log auditDATA_WRITECloud SQL:{ "policy": { "auditConfigs": [ { "auditLogConfigs": [ { "logType": "DATA_WRITE" } ], "service": "cloudsql.googleapis.com" } ], "etag": "BwXqwxkr40M=" }, "updateMask": "auditConfigs,etag" }Tulis kebijakan baru menggunakan metode API
setIamPolicy, dengan menentukan parameter berikut:- resource:
projects/PROJECT_ID - Isi permintaan: Sertakan kebijakan yang telah diedit.
- resource:
Masker update setIamPolicy
Bagian ini menjelaskan pentingnya parameter updateMask dalam metode setIamPolicy, dan menjelaskan alasan Anda harus berhati-hati dengan perintah set-iam-policy gcloud CLI agar tidak menyebabkan bahaya yang tidak disengaja pada project atau organisasi Google Cloud Anda.
Metode API setIamPolicy menggunakan parameter updateMask untuk mengontrol kolom kebijakan mana yang diperbarui. Misalnya, jika mask tidak
berisi bindings, Anda tidak dapat mengubah bagian kebijakan tersebut secara tidak sengaja. Di
sisi lain, jika mask berisi bindings, bagian tersebut
selalu diperbarui. Jika Anda tidak menyertakan nilai yang diperbarui untuk bindings, bagian tersebut akan dihapus sepenuhnya dari kebijakan.
Perintah gcloud projects set-iam-policy, yang memanggil setIamPolicy,
tidak memungkinkan Anda menentukan parameter updateMask. Sebagai gantinya, perintah
ini menghitung nilai untuk updateMask dengan cara berikut:
updateMaskselalu berisi kolombindingsdanetag.- Jika objek kebijakan yang diberikan di
set-iam-policyberisi kolom tingkat teratas lainnya—sepertiauditConfigs—kolom tersebut akan ditambahkan keupdateMask.
Sebagai konsekuensi dari aturan ini, perintah set-iam-policy memiliki perilaku
berikut:
Jika Anda menghapus bagian
auditConfigsdalam kebijakan baru, nilai sebelumnya dari bagianauditConfigs(jika ada) tidak akan diubah, karena bagian tersebut tidak ada dalam update mask. Hal ini tidak berbahaya, tetapi mungkin membingungkan.Jika Anda menghapus
bindingsdi objek kebijakan baru, bagianbindingsakan dihapus dari kebijakan Anda, karena bagian ini muncul di masker update. Hal ini sangat berbahaya, dan menyebabkan semua akun utama kehilangan akses ke project Google Cloud Anda.Jika Anda menghilangkan
etagdi objek kebijakan baru, tindakan ini akan menonaktifkan pemeriksaan perubahan serentak pada kebijakan Anda dan dapat menyebabkan perubahan Anda secara tidak sengaja menimpa perubahan orang lain.