Mengaktifkan log audit Akses Data

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 _Required dan _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 audit ADMIN_READ dinonaktifkan secara default dan harus diaktifkan.

    • DATA_READ: Izin IAM jenis ini diperiksa untuk metode APIGoogle Cloud yang membaca data yang disediakan pengguna. Biasanya, log audit DATA_READ dinonaktifkan secara default dan harus diaktifkan.

    • DATA_WRITE: Izin IAM jenis ini diperiksa untuk metode APIGoogle Cloud yang menulis data yang disediakan pengguna. Biasanya, log audit DATA_WRITE dinonaktifkan 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:

  1. Di konsol Google Cloud , buka halaman Log Audit:

    Buka Log Audit

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

  2. Pilih organisasi, folder, atau project Google Cloud yang sudah ada.

Mengaktifkan log audit

Untuk mengaktifkan log audit Akses Data, lakukan hal berikut:

  1. Di tabel Data Access audit logs configuration, pilih satu atau beberapa layananGoogle Cloud dari kolom Service.

  2. Di tab Permission types, pilih jenis log audit Akses Data yang ingin Anda aktifkan untuk layanan yang dipilih.

  3. Klik Simpan.

Jika Anda telah berhasil mengaktifkan log audit, tabel akan menyertakan ikon Check.

Dalam contoh berikut, Anda akan melihat bahwa, untuk layanan Persetujuan Akses, jenis log audit Data Read diaktifkan:

Konfigurasi Log Audit

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:

  1. Di tabel Konfigurasi log audit Akses Data, pilih satu atau beberapa layananGoogle Cloud .

  2. Di tab Log Types pada panel informasi, pilih jenis log audit Akses Data yang ingin Anda nonaktifkan untuk layanan yang dipilih.

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

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:

  1. Di tabel Data Access audit logs configuration, pilih layananGoogle Cloud dari kolom Service.

  2. Pilih tab Exempted Principals di panel informasi.

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

  4. Di Disabled Log Types, pilih jenis log audit Akses Data yang ingin Anda nonaktifkan.

  5. 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:

  1. Di tabel Data Access audit logs configuration, pilih layananGoogle Cloud dari kolom Service.

  2. Pilih tab Exempted Principals di panel informasi.

  3. Arahkan kursor ke nama akun utama, lalu pilih Delete.

  4. Setelah nama akun utama ditampilkan dalam teks yang dicoret, klik Save.

Untuk mengedit informasi akun utama yang dikecualikan, lakukan hal berikut:

  1. Di tabel Data Access audit logs configuration, pilih layananGoogle Cloud dari kolom Service.

  2. Pilih tab Exempted Principals di panel informasi.

  3. Temukan akun utama dan pilih luaskan Tampilkan lebih banyak.

  4. Pilih atau batalkan pilihan jenis log audit Akses Data yang sesuai untuk principal.

  5. 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:

  1. Klik Set Default Configuration.

  2. Di tab Log Types pada panel informasi, pilih jenis log audit Akses Data yang ingin Anda aktifkan atau nonaktifkan.

  3. Klik Simpan.

  4. Pilih tab Exempted Principals di panel informasi.

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

  6. Di Disabled Log Types, pilih jenis log audit Akses Data yang ingin Anda nonaktifkan.

  7. 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.setIamPolicy
    
  • Google 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:

  1. Baca kebijakan saat ini menggunakan salah satu metode getIamPolicy. Simpan kebijakan ke file sementara.
  2. Edit kebijakan dalam file sementara. Ubah (atau tambahkan) hanya bagian auditConfigs.
  3. 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:

  1. Baca kebijakan IAM project Anda dan simpan dalam file:

    gcloud projects get-iam-policy PROJECT_ID > /tmp/policy.yaml
    

    Berikut 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: 1
    
  2. Edit 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: 1
    

    Seperti yang ditunjukkan contoh sebelumnya, empat baris telah ditambahkan ke awal kebijakan.

  3. Tulis kebijakan IAM baru Anda:

    gcloud projects set-iam-policy PROJECT_ID /tmp/policy.yaml
    

    Jika 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:

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

  2. 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 updateMask di langkah berikutnya. Berikut ini menunjukkan kebijakan yang diedit, yang mengaktifkan log audit DATA_WRITE Cloud SQL:

    {
      "policy": {
        "auditConfigs": [
          {
            "auditLogConfigs": [
              {
                "logType": "DATA_WRITE"
              }
            ],
            "service": "cloudsql.googleapis.com"
          }
        ],
        "etag": "BwXqwxkr40M="
      },
      "updateMask": "auditConfigs,etag"
    }
    
  3. Tulis kebijakan baru menggunakan metode API setIamPolicy, dengan menentukan parameter berikut:

    • resource: projects/PROJECT_ID
    • Isi permintaan: Sertakan kebijakan yang telah diedit.

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:

  • updateMask selalu berisi kolom bindings dan etag.
  • Jika objek kebijakan yang diberikan di set-iam-policy berisi kolom tingkat teratas lainnya—seperti auditConfigs—kolom tersebut akan ditambahkan ke updateMask.

Sebagai konsekuensi dari aturan ini, perintah set-iam-policy memiliki perilaku berikut:

  • Jika Anda menghapus bagian auditConfigs dalam kebijakan baru, nilai sebelumnya dari bagian auditConfigs (jika ada) tidak akan diubah, karena bagian tersebut tidak ada dalam update mask. Hal ini tidak berbahaya, tetapi mungkin membingungkan.

  • Jika Anda menghapus bindings di objek kebijakan baru, bagian bindings akan 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 etag di 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.