Logging audit Kontrol Layanan VPC

Dokumen ini menjelaskan log audit yang dibuat oleh Kontrol Layanan VPC sebagai bagian dari Cloud Audit Logs.

Ringkasan

Layanan Google Cloud menulis log audit untuk membantu Anda menjawab pertanyaan, "Siapa yang melakukan apa, di mana, dan kapan?" dalam resource Google Cloud.

Project Google Cloud Anda hanya berisi log audit untuk resource yang berada langsung dalam project Google Cloud. Resource Google Cloud lainnya, seperti folder, organisasi, dan akun penagihan, berisi log audit untuk entity itu sendiri.

Untuk membaca ringkasan umum tentang Cloud Audit Logs, lihat Ringkasan Cloud Audit Logs. Untuk mendapatkan pemahaman yang lebih mendalam tentang format log audit, lihat Memahami log audit.

Log audit yang tersedia

Jenis log audit berikut tersedia untuk Kontrol Layanan VPC:

  • Log audit Kebijakan Ditolak

    Mengidentifikasi saat pengguna atau akun layanan ditolak aksesnya karena pelanggaran kebijakan keamanan. Nama layanan dan nama metode dalam log audit Kebijakan Ditolak menunjukkan nama resource yang tidak dapat diakses oleh pengguna atau akun layanan.

    Anda tidak dapat menonaktifkan log audit Kebijakan Ditolak. Namun, Anda dapat menambahkan hal berikut ke filter pengecualian di sink _Default untuk mengecualikan log audit Kebijakan Ditolak: LOG_ID("cloudaudit.googleapis.com/policy"). Anda juga dapat menonaktifkan sink _Default untuk Cloud Logging, yang mencegah perutean log ke bucket _Default.

Untuk deskripsi yang lebih lengkap tentang jenis log audit, lihat Jenis log audit.

Operasi yang diaudit

Tabel berikut meringkas operasi API yang sesuai dengan setiap jenis log audit di Kontrol Layanan VPC:

Kategori log audit Metode Kontrol Layanan VPC
Log audit Kebijakan Ditolak Metode layanan yang terintegrasi dengan Kontrol Layanan VPC didukung.

Konten catatan log audit

Setiap data log audit berisi informasi yang dapat dibagi menjadi dua kategori utama: informasi tentang panggilan awal, dan informasi tentang pelanggaran kebijakan keamanan. VPC tersebut diisi oleh VPC Service Controls API sebagai berikut:

Kolom log audit Deskripsi
serviceName Layanan yang aksesnya dibatasi oleh perimeter layanan. Permintaan ke layanan ini telah melanggar pemeriksaan Kontrol Layanan VPC dan mengakibatkan pembuatan log audit ini.
methodName Nama panggilan metode yang mengakibatkan pelanggaran kebijakan keamanan yang dijelaskan dalam kumpulan data. Sering kali, methodName adalah metode yang terkait dengan layanan Google Cloud yang ditentukan dalam kolom serviceName.
authenticationInfo.principalEmail Alamat email pengguna atau akun layanan yang mengajukan permintaan.
Beberapa alamat email mungkin akan disamarkan. Untuk mengetahui informasi selengkapnya, lihat Identitas penelepon di log audit.
resourceName Resource Google Cloud yang ditentukan dalam permintaan asli dari klien. resourceName dapat berupa project, folder, organisasi, atau resource seperti bucket Google Cloud.
requestMetadata.callerIp

Alamat IP pemanggil.

Jika panggilan berasal dari internet, maka requestMetadata.callerIp adalah alamat IPv4 atau IPv6 publik.

Jika panggilan berasal dari VM Compute Engine, requestMetadata.callerIp adalah alamat IP VM. Alamat IP VM dapat berupa alamat IP internal atau alamat IP eksternal.

Jika panggilan berasal dari dalam jaringan produksi internal Google, nilai dalam kolom ini adalah private. Kasus ini terjadi saat panggilan dikirim dari satu layanan Google Cloud ke layanan Google Cloud lainnya.

request_metadata.caller_network Nama jaringan pemanggil. Nilai ini ditetapkan hanya jika project host jaringan dimiliki oleh organisasi atau project Google Cloud yang sama dengan yang memiliki resource yang diakses tersebut. Untuk informasi selengkapnya, lihat Jaringan VPC.
status Status keseluruhan penanganan operasi yang dijelaskan dalam kumpulan data.
metadata Informasi tentang pelanggaran kebijakan keamanan.
metadata.resourceNames Nama resource yang terlibat dalam pelanggaran kebijakan keamanan yang dijelaskan dalam data.
metadata.dryRun Nilai boolean True jika log audit digunakan untuk pemeriksaan kebijakan uji coba.
metadata.vpcServiceControlsUniqueId ID Unik pelanggaran Kontrol Layanan VPC yang dijelaskan dalam data.
metadata.violationReason Alasan pelanggaran. Misalnya, RESOURCE_NOT_IN_SAME_SERVICE_PERIMETER berarti resource yang diakses tidak termasuk dalam perimeter layanan yang sama.
metadata.securityPolicyInfo Nama perimeter layanan tempat terjadinya pelanggaran dan ID unik organisasi tempat perimeter tersebut berada.
metadata.egressViolations Pelanggaran traffic keluar biasanya terjadi saat permintaan gagal karena sumber dilindungi oleh perimeter layanan dan resource target berada di luar perimeter. Sumber dapat berupa project atau jaringan VPC.
metadata.ingressViolations Jenis pelanggaran. Sering kali, pelanggaran ini terjadi jika permintaan mencoba mengakses resource target yang dilindungi oleh perimeter layanan. Sumber dapat berupa project atau jaringan VPC. Kolom ini berisi struktur yang menjelaskan pelanggaran traffic masuk.
metadata.accessLevels Semua tingkat akses yang cocok dalam organisasi yang termasuk dalam kebijakan akses yang sama. Tingkat akses ini mungkin tidak ditentukan dalam perimeter yang dilanggar dan dengan demikian dapat menyebabkan pelanggaran NO_MATCHING_ACCESS_LEVEL.
metadata.intermediateServices Daftar layanan yang terlibat dalam rantai permintaan. Kolom ini kosong untuk permintaan yang dimulai pengguna.
metadata.deviceState Status perangkat yang membuat permintaan jika kebijakan perangkat diaktifkan. Nilai default untuk kolom ini adalah Unknown.

Format log audit

Entri log audit mencakup objek berikut:

  • Entri log itu sendiri, yang merupakan objek dengan jenis LogEntry. Kolom berguna yang meliputi hal berikut ini:

    • logName berisi ID resource dan jenis log audit.
    • resource berisi target operasi yang diaudit.
    • timeStamp berisi waktu operasi yang diaudit.
    • protoPayload berisi informasi yang diaudit.
  • Data logging audit, yang merupakan objek AuditLog yang disimpan di kolom protoPayload entri log.

  • Informasi audit khusus layanan opsional, yang merupakan objek khusus layanan. Untuk integrasi sebelumnya, objek ini disimpan di kolom serviceData dari objek AuditLog; integrasi berikutnya menggunakan kolom metadata.

Untuk kolom lain dalam objek ini, dan cara menafsirkannya, tinjau Memahami log audit.

Nama log

Nama log Cloud Audit Logs mencakup ID resource yang menunjukkan project Google Cloud atau entity Google Cloud lainnya yang memiliki log audit, dan apakah log berisi Aktivitas Admin, Akses Data, Kebijakan Ditolak, atau data logging audit Peristiwa Sistem.

Berikut adalah nama log audit, termasuk variabel untuk ID resource:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

Nama layanan

Log audit Kontrol Layanan VPC menggunakan nama layanan layanan yang terintegrasi dengan Kontrol Layanan VPC.

Untuk mengetahui daftar lengkap semua nama layanan Cloud Logging API dan jenis resource yang dimonitor, lihat Memetakan layanan ke resource.

Jenis resource

Log audit Kontrol Layanan VPC menggunakan jenis resource yang didukung oleh layanan yang terintegrasi dengan Kontrol Layanan VPC.

Untuk mengetahui daftar semua jenis resource yang dimonitor dan informasi deskriptif Cloud Logging, lihat Jenis resource yang dimonitor.

Identitas pemanggil

Alamat IP pemanggil disimpan di kolom RequestMetadata.caller_ip pada objek AuditLog. Logging mungkin menyamarkan identitas pemanggil dan alamat IP tertentu.

Untuk mengetahui informasi tentang informasi yang disamarkan dalam log audit, lihat Identitas pemanggil di log audit.

Mengaktifkan logging audit

Log audit Aktivitas Admin selalu diaktifkan; Anda tidak dapat menonaktifkannya.

Izin dan peran

Izin dan peran IAM menentukan kemampuan Anda untuk mengakses data log audit di resource Google Cloud.

Saat memutuskan Izin dan peran khusus logging mana yang berlaku untuk kasus penggunaan Anda, pertimbangkan hal berikut:

  • Peran Logs Viewer (roles/logging.viewer) memberi Anda akses hanya baca ke log audit Aktivitas Admin, Kebijakan Ditolak, dan Peristiwa Sistem. Jika hanya memiliki peran ini, Anda tidak dapat melihat log audit Akses Data yang ada di bucket _Default.

  • Peran Private Logs Viewer(roles/logging.privateLogViewer) mencakup izin yang ada di roles/logging.viewer, serta kemampuan untuk membaca log audit Akses Data di bucket _Default.

    Perlu diperhatikan bahwa jika log pribadi ini disimpan dalam bucket yang ditentukan pengguna, maka setiap pengguna yang memiliki izin untuk membaca log dalam bucket tersebut dapat membaca log pribadi. Untuk informasi selengkapnya tentang bucket log, lihat Ringkasan perutean dan penyimpanan.

Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM yang berlaku untuk data log audit, lihat Kontrol akses dengan IAM.

Lihat log

Anda dapat membuat kueri untuk semua log audit atau membuat kueri untuk log berdasarkan nama log auditnya. Nama log audit mencakup ID resource project, folder, akun penagihan, atau organisasi Google Cloud yang informasi logging auditnya ingin Anda lihat. Kueri Anda dapat menentukan kolom LogEntry yang diindeks, dan jika menggunakan halaman Log Analytics, yang mendukung Kueri SQL, Anda dapat melihat hasil kueri sebagai diagram.

Untuk mengetahui informasi selengkapnya tentang cara membuat kueri log Anda, lihat halaman berikut:

Anda dapat melihat log audit di Cloud Logging menggunakan Konsol Google Cloud, Google Cloud CLI, atau Logging API.

Konsol

Di Konsol Google Cloud, Anda dapat menggunakan Logs Explorer guna mengambil entri log audit untuk project, folder, atau organisasi Google Cloud Anda:

  1. Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih Logs Explorer:

    Buka Logs Explorer

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

  3. Untuk menampilkan semua log audit, masukkan salah satu kueri berikut ke kolom editor kueri, lalu klik Jalankan kueri:

    logName:"cloudaudit.googleapis.com"
    
    protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
    
  4. Agar dapat menampilkan log audit untuk jenis log audit dan resource tertentu, di panel Builder kueri, lakukan langkah berikut ini:

    • Di Jenis resource, pilih resource Google Cloud yang log auditnya ingin Anda lihat.

    • Di Log name, pilih jenis log audit yang ingin dilihat:

      • Untuk log audit Aktivitas Admin, pilih activity.
      • Untuk log audit Akses Data, pilih data_access.
      • Untuk log audit Peristiwa Sistem, pilih system_event.
      • Untuk log audit Kebijakan Ditolak, pilih policy.
    • Klik Jalankan kueri.

    Jika Anda tidak melihat opsi ini, maka tidak ada log audit dengan jenis tersebut yang tersedia di project, folder, atau organisasi Google Cloud.

    Jika mengalami masalah saat mencoba melihat log di Logs Explorer, lihat informasi pemecahan masalah.

    Untuk mengetahui informasi selengkapnya tentang pembuatan kueri menggunakan Logs Explorer, lihat Membangun kueri di Logs Explorer. Untuk mengetahui informasi tentang cara meringkas entri log di Logs Explorer menggunakan Gemini, lihat Meringkas entri log dengan bantuan Gemini.

gcloud

Google Cloud CLI menyediakan antarmuka command line ke Logging API. Berikan ID resource yang valid di setiap nama log. Misalnya, jika kueri Anda menyertakan PROJECT_ID, ID project yang Anda berikan harus merujuk ke project Google Cloud yang saat ini dipilih.

Untuk membaca entri log audit level project Google Cloud Anda, jalankan perintah berikut:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \
    --project=PROJECT_ID

Untuk membaca entri log audit level folder, jalankan perintah berikut:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \
    --folder=FOLDER_ID

Untuk membaca entri log audit level organisasi, jalankan perintah berikut:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \
    --organization=ORGANIZATION_ID

Untuk membaca entri log audit level akun Penagihan Cloud Anda, jalankan perintah berikut:

gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \
    --billing-account=BILLING_ACCOUNT_ID

Tambahkan flag --freshness ke perintah Anda untuk membaca log yang berusia lebih dari 1 hari.

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud CLI, lihat gcloud logging read.

API

Saat membangun kueri, sediakan ID resource yang valid di setiap nama log. Misalnya, jika kueri Anda menyertakan PROJECT_ID, ID project yang Anda berikan harus merujuk ke project Google Cloud yang saat ini dipilih.

Misalnya, untuk menggunakan Logging API guna melihat entri log audit level project Anda, lakukan tindakan berikut:

  1. Buka bagian Coba API ini dalam dokumentasi untuk metode entries.list.

  2. Masukkan string berikut ke dalam bagian Isi permintaan di formulir Coba API ini. Mengklik formulir yang telah diisi ini akan otomatis mengisi isi permintaan, tetapi Anda harus memberikan PROJECT_ID yang valid di setiap nama log.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. Klik Jalankan.

Sampel kueri

Untuk menemukan log audit untuk Kontrol Layanan VPC, gunakan kueri berikut di Logs Explorer:

Deskripsi kueri Ekspresi
Detail pelanggaran berdasarkan ID penolakan
log_id("cloudaudit.googleapis.com/policy") severity=ERROR
resource.type="audited_resource"
protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
protoPayload.metadata.vpcServiceControlsUniqueId="UNIQUE_ID" 

Ganti UNIQUE_ID dengan ID unik penolakan.

Pelanggaran alamat IP
log_id("cloudaudit.googleapis.com/policy")
severity=ERROR
resource.type="audited_resource"
protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
protoPayload.requestMetadata.callerIp="IP_ADDRESS"

Ganti IP_ADDRESS dengan alamat IP pemanggil.

Pelanggaran untuk layanan
log_id("cloudaudit.googleapis.com/policy")
severity=ERROR
resource.type="audited_resource"
protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
protoPayload.serviceName="SERVICE_NAME"

Ganti SERVICE_NAME dengan nama layanan yang dibatasi.

Perubahan tingkat akses dilakukan ke perimeter
logName="organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity"
severity=NOTICE
protoPayload.serviceName="accesscontextmanager.googleapis.com"
protoPayload.methodName="google.identity.accesscontextmanager.v1.AccessContextManager.UpdateServicePerimeter"
-protoPayload.metadata.previousState:"ACCESS_LEVEL"
protoPayload.request.servicePerimeter.status.accessLevels:"ACCESS_LEVEL"

Ganti ORGANIZATION_ID dengan ID numerik organisasi Anda dan ACCESS_LEVEL dengan nama unik tingkat akses.

Operasi CRUD perimeter
logName="organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity"
severity=NOTICE
protoPayload.serviceName="accesscontextmanager.googleapis.com"
protoPayload.methodName=~"google.identity.accesscontextmanager.v1.AccessContextManager.ServicePerimeter"
protoPayload.request.servicePerimeter.name=~".PERIMETER_NAME$"
Ganti PERIMETER_NAME dengan nama perimeter.
Operasi CRUD tingkat akses
logName="organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity"
severity=NOTICE
protoPayload.serviceName="accesscontextmanager.googleapis.com"
protoPayload.methodName=~"google.identity.accesscontextmanager.v1.AccessContextManager.AccessLevel"
protoPayload.request.accessLevel.name=~".ACCESS_LEVEL$"
Membuat dan memperbarui operasi untuk aturan masuk
logName="organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload.serviceName="accesscontextmanager.googleapis.com"
protoPayload.methodName=~"google.identity.accesscontextmanager.v1.AccessContextManager.ServicePerimeter"
protoPayload.request.servicePerimeter.status.ingressPolicies:""
Membuat dan memperbarui operasi untuk aturan traffic keluar
logName="organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload.serviceName="accesscontextmanager.googleapis.com"
protoPayload.methodName=~"google.identity.accesscontextmanager.v1.AccessContextManager.ServicePerimeter"
protoPayload.request.servicePerimeter.status.egressPolicies:""

Untuk menggunakan sampel kueri, lakukan hal berikut:

  1. Ganti variabel dengan informasi project Anda sendiri, lalu salin ekspresi menggunakan ikon papan klip .

  2. Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih Logs Explorer:

    Buka Logs Explorer

  3. Aktifkan Show query untuk membuka kolom editor kueri, lalu tempel ekspresi ke dalam kolom editor kueri:

    Editor kueri tempat Anda memasukkan contoh kueri.

  4. Klik Jalankan kueri. Log yang cocok dengan kueri Anda akan tercantum di panel Query results.

Merutekan log audit

Anda dapat merutekan log audit ke tujuan yang didukung dengan cara yang sama seperti saat merutekan jenis log lainnya. Berikut adalah beberapa alasan mengapa Anda mungkin ingin merutekan log audit Anda:

  • Untuk menyimpan log audit dalam jangka panjang atau untuk menggunakan kemampuan penelusuran yang lebih andal, Anda dapat merutekan salinan log audit Anda ke Cloud Storage, BigQuery, atau Pub/Sub. Dengan Pub/Sub, Anda dapat merutekan log audit ke aplikasi lain, repositori lain, dan ke pihak ketiga.

  • Untuk mengelola log audit di seluruh organisasi, Anda dapat membuat sink gabungan yang dapat merutekan log dari salah satu atau semua project Google Cloud di organisasi.

Untuk mendapatkan petunjuk tentang cara merutekan log, lihat Merutekan log ke tujuan yang didukung.

Harga

Untuk mengetahui informasi selengkapnya tentang harga, lihat ringkasan harga Cloud Logging.