Mengumpulkan log Snowflake
Dokumen ini menjelaskan cara menyerap log Snowflake ke Google Security Operations. Anda dapat mengonfigurasi penyerapan menggunakan dua metode: Cloud Storage V2 (direkomendasikan) atau Amazon S3 V2. Kedua metode menggunakan mekanisme yang sama di sisi Snowflake: tugas terjadwal membongkar data penggunaan akun ke tahap eksternal, dan Google SecOps membaca file yang diekspor dengan feed.
Snowflake adalah platform data cloud yang menyimpan aktivitas akun dalam skema SNOWFLAKE.ACCOUNT_USAGE. Tampilan LOGIN_HISTORY mencatat upaya autentikasi, termasuk alamat IP klien, faktor autentikasi, dan alasan kegagalan. Tampilan QUERY_HISTORY mencatat setiap pernyataan yang dijalankan di akun, termasuk pengguna, peran, gudang, dan objek yang diakses.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Akses ke Snowflake dengan peran yang dapat membuat integrasi penyimpanan (hanya
ACCOUNTADMINyang memiliki hak istimewa ini secara default), database, warehouse, tahap, dan tugas - Untuk Cloud Storage V2: a Google Cloud project dengan Cloud Storage API yang diaktifkan, dan izin untuk membuat bucket, membuat peran Identity and Access Management (IAM), dan mengelola kebijakan IAM bucket
- Untuk Amazon S3 V2: akses istimewa ke AWS untuk membuat bucket S3, kebijakan IAM, peran IAM, dan pengguna IAM
Memberikan akses ke data penggunaan akun Snowflake
Tampilan SNOWFLAKE.ACCOUNT_USAGE hanya dapat dibaca oleh ACCOUNTADMIN hingga akses diberikan secara eksplisit. Buat peran khusus untuk ekspor dan berikan dua peran database yang mencakup tampilan yang diekspor dokumen ini.
- Login ke Snowflake dan buka worksheet.
Buat peran ekspor dan berikan akses baca ke tampilan penggunaan akun sebagai berikut:
USE ROLE ACCOUNTADMIN; CREATE ROLE IF NOT EXISTS SECOPS_EXPORTER; GRANT DATABASE ROLE SNOWFLAKE.SECURITY_VIEWER TO ROLE SECOPS_EXPORTER; GRANT DATABASE ROLE SNOWFLAKE.GOVERNANCE_VIEWER TO ROLE SECOPS_EXPORTER;Buat database, skema, dan data warehouse yang digunakan ekspor, lalu berikan akses ke peran tersebut sebagai berikut:
CREATE DATABASE IF NOT EXISTS SECOPS_EXPORT; CREATE SCHEMA IF NOT EXISTS SECOPS_EXPORT.ACTIVITY; CREATE WAREHOUSE IF NOT EXISTS SECOPS_EXPORT_WH WITH WAREHOUSE_SIZE = 'XSMALL' AUTO_SUSPEND = 60 AUTO_RESUME = TRUE INITIALLY_SUSPENDED = TRUE; GRANT USAGE ON DATABASE SECOPS_EXPORT TO ROLE SECOPS_EXPORTER; GRANT USAGE, CREATE STAGE, CREATE TABLE, CREATE PROCEDURE, CREATE TASK, CREATE FILE FORMAT ON SCHEMA SECOPS_EXPORT.ACTIVITY TO ROLE SECOPS_EXPORTER; GRANT USAGE, OPERATE ON WAREHOUSE SECOPS_EXPORT_WH TO ROLE SECOPS_EXPORTER; GRANT EXECUTE TASK ON ACCOUNT TO ROLE SECOPS_EXPORTER; GRANT ROLE SECOPS_EXPORTER TO USER <YOUR_USER>;- Ganti
<YOUR_USER>dengan pengguna Snowflake yang memiliki ekspor.
- Ganti
Metode 1: Cloud Storage V2 (direkomendasikan)
Membuat bucket Cloud Storage
- Buka Google Cloud console.
- Pilih project Anda atau buat project baru.
- Di menu navigasi, buka Cloud Storage > Buckets.
- Klik Create bucket.
Berikan detail konfigurasi berikut:
Setelan Nilai Beri nama bucket Anda Masukkan nama yang unik secara global (misalnya, snowflake-activity-logs)Location type Pilih berdasarkan kebutuhan Anda (Region, Dual-region, Multi-region) Location Pilih lokasi (misalnya, us-central1)Kelas penyimpanan Standar (direkomendasikan untuk log yang sering diakses) Kontrol akses Seragam (direkomendasikan) Alat perlindungan Opsional: Aktifkan pembuatan versi objek atau kebijakan retensi Klik Create.
Membuat peran Cloud Storage kustom untuk Snowflake
- Di konsol Google Cloud , buka IAM & Admin > Roles.
- Klik Buat peran.
- Berikan detail konfigurasi berikut:
- Judul: Masukkan
Snowflake Unload - ID: Masukkan
snowflake_unload - Tahap peluncuran peran: Pilih Ketersediaan Umum
- Judul: Masukkan
- Klik Add permissions dan tambahkan izin berikut:
storage.buckets.getstorage.objects.createstorage.objects.deletestorage.objects.list
Klik Create.
Membuat integrasi penyimpanan Snowflake untuk Cloud Storage
Di worksheet Snowflake, buat integrasi penyimpanan sebagai berikut:
USE ROLE ACCOUNTADMIN; CREATE STORAGE INTEGRATION SECOPS_GCS_INT TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = 'GCS' ENABLED = TRUE STORAGE_ALLOWED_LOCATIONS = ('gcs://snowflake-activity-logs/snowflake/'); GRANT USAGE ON INTEGRATION SECOPS_GCS_INT TO ROLE SECOPS_EXPORTER;- Ganti
snowflake-activity-logsdengan nama bucket Anda.
- Ganti
Ambil akun layanan yang dibuat Snowflake untuk integrasi sebagai berikut:
DESC STORAGE INTEGRATION SECOPS_GCS_INT;Salin nilai properti
STORAGE_GCP_SERVICE_ACCOUNT. Nilai memiliki format berikut:service-account-id@project1-123456.iam.gserviceaccount.com
Memberi akun layanan Snowflake akses ke bucket
- Di konsol Google Cloud , buka Cloud Storage > Buckets.
- Klik bucket yang Anda buat (misalnya,
snowflake-activity-logs). - Buka tab Izin.
- Klik Grant access.
- Berikan detail konfigurasi berikut:
- Tambahkan prinsipal: Tempelkan nilai
STORAGE_GCP_SERVICE_ACCOUNT - Tetapkan peran: Pilih Snowflake Unload
- Tambahkan prinsipal: Tempelkan nilai
- Klik Simpan.
Buat format file dan tahap eksternal
Di worksheet Snowflake, buat format file dan tahap yang menulis ke bucket sebagai berikut:
USE ROLE SECOPS_EXPORTER; USE SCHEMA SECOPS_EXPORT.ACTIVITY; CREATE OR REPLACE FILE FORMAT SECOPS_JSON_FORMAT TYPE = JSON; CREATE OR REPLACE STAGE SECOPS_EXPORT_STAGE URL = 'gcs://snowflake-activity-logs/snowflake/' STORAGE_INTEGRATION = SECOPS_GCS_INT FILE_FORMAT = SECOPS_JSON_FORMAT;
Buat tabel status ekspor
Ekspor melacak seberapa jauh data telah dibaca di setiap tampilan. Tanpa tanda air tersebut, setiap proses akan mengekspor ulang seluruh tampilan dan peristiwa yang sama akan diproses lagi.
Buat tabel status dan isi seperti berikut:
CREATE TABLE IF NOT EXISTS SECOPS_EXPORT_STATE ( VIEW_NAME STRING NOT NULL, LAST_EXPORTED TIMESTAMP_LTZ NOT NULL, WINDOW_END TIMESTAMP_LTZ ); INSERT INTO SECOPS_EXPORT_STATE (VIEW_NAME, LAST_EXPORTED) SELECT 'LOGIN_HISTORY', DATEADD('day', -7, CURRENT_TIMESTAMP()) UNION ALL SELECT 'QUERY_HISTORY', DATEADD('day', -7, CURRENT_TIMESTAMP());
Buat prosedur ekspor
Buat prosedur yang membongkar kedua tampilan dan memajukan tanda air sebagai berikut:
CREATE OR REPLACE PROCEDURE SECOPS_EXPORT_ACTIVITY() RETURNS STRING LANGUAGE SQL AS $$ BEGIN UPDATE SECOPS_EXPORT_STATE SET WINDOW_END = DATEADD('hour', -3, CURRENT_TIMESTAMP()); COPY INTO @SECOPS_EXPORT_STAGE/login_history/ FROM ( SELECT OBJECT_CONSTRUCT( 'application', 'snowflake', 'log_type', 'login_history', 'EVENT_TIMESTAMP', EVENT_TIMESTAMP, 'EVENT_TYPE', EVENT_TYPE, 'USER_NAME', USER_NAME, 'CLIENT_IP', CLIENT_IP, 'REPORTED_CLIENT_TYPE', REPORTED_CLIENT_TYPE, 'REPORTED_CLIENT_VERSION', REPORTED_CLIENT_VERSION, 'FIRST_AUTHENTICATION_FACTOR', FIRST_AUTHENTICATION_FACTOR, 'SECOND_AUTHENTICATION_FACTOR', SECOND_AUTHENTICATION_FACTOR, 'IS_SUCCESS', IS_SUCCESS, 'ERROR_CODE', ERROR_CODE, 'ERROR_MESSAGE', ERROR_MESSAGE) FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY WHERE EVENT_TIMESTAMP > (SELECT LAST_EXPORTED FROM SECOPS_EXPORT_STATE WHERE VIEW_NAME = 'LOGIN_HISTORY') AND EVENT_TIMESTAMP <= (SELECT WINDOW_END FROM SECOPS_EXPORT_STATE WHERE VIEW_NAME = 'LOGIN_HISTORY') ) FILE_FORMAT = (TYPE = JSON) INCLUDE_QUERY_ID = TRUE; UPDATE SECOPS_EXPORT_STATE SET LAST_EXPORTED = WINDOW_END WHERE VIEW_NAME = 'LOGIN_HISTORY'; COPY INTO @SECOPS_EXPORT_STAGE/query_history/ FROM ( SELECT OBJECT_CONSTRUCT( 'application', 'snowflake', 'log_type', 'query_history', 'START_TIME', START_TIME, 'END_TIME', END_TIME, 'QUERY_ID', QUERY_ID, 'QUERY_TYPE', QUERY_TYPE, 'EXECUTION_STATUS', EXECUTION_STATUS, 'ERROR_MESSAGE', ERROR_MESSAGE, 'USER_NAME', USER_NAME, 'ROLE_NAME', ROLE_NAME, 'WAREHOUSE_NAME', WAREHOUSE_NAME, 'WAREHOUSE_SIZE', WAREHOUSE_SIZE, 'DATABASE_NAME', DATABASE_NAME, 'SCHEMA_NAME', SCHEMA_NAME, 'SESSION_ID', SESSION_ID, 'BYTES_SCANNED', BYTES_SCANNED, 'ROWS_PRODUCED', ROWS_PRODUCED, 'TOTAL_ELAPSED_TIME', TOTAL_ELAPSED_TIME) FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY WHERE START_TIME > (SELECT LAST_EXPORTED FROM SECOPS_EXPORT_STATE WHERE VIEW_NAME = 'QUERY_HISTORY') AND START_TIME <= (SELECT WINDOW_END FROM SECOPS_EXPORT_STATE WHERE VIEW_NAME = 'QUERY_HISTORY') ) FILE_FORMAT = (TYPE = JSON) INCLUDE_QUERY_ID = TRUE; UPDATE SECOPS_EXPORT_STATE SET LAST_EXPORTED = WINDOW_END WHERE VIEW_NAME = 'QUERY_HISTORY'; RETURN 'Export completed'; END; $$;
Setiap elemen prosedur ada karena suatu alasan:
- Jendela ditutup tiga jam setelah waktu saat ini. Snowflake mengisi
LOGIN_HISTORYdengan latensi hingga dua jam danQUERY_HISTORYdengan latensi hingga 45 menit, sehingga jendela yang berakhir sekarang akan melewati baris yang belum diwujudkan oleh tampilan. Oleh karena itu, peristiwa akan mencapai Google SecOps sekitar tiga jam setelah terjadi. Memperpendek jeda akan mengorbankan kelengkapan demi keaktualan. WINDOW_ENDditulis ke tabel sebelum pelepasan, sehingga nilai yang digunakan oleh pernyataanCOPY INTOdan nilai yang ditulis kembali keLAST_EXPORTEDidentik. Menghitung ulang waktu saat ini dalam pernyataan kedua akan melewati semua yang terjadi di antaranya.- Setiap pembaruan
LAST_EXPORTEDberjalan setelah pernyataanCOPY INTO-nya sendiri. Jika pelepasan gagal, prosedur akan berhenti, tanda air tetap berada di tempatnya, dan proses berikutnya akan mengulangi jendela tersebut, bukan melewatinya. INCLUDE_QUERY_ID = TRUEmenambahkan UUID ke setiap nama file. Tanpa opsi ini, file yang tidak dimuat akan diberi namadata_0_0_0dan ekspor berulang ke jalur yang sama akan bertabrakan, yang didokumentasikan Snowflake sebagai sumber data duplikat di tahap.
Jadwalkan tugas ekspor
Buat dan mulai tugas sebagai berikut:
CREATE OR REPLACE TASK SECOPS_EXPORT_TASK WAREHOUSE = SECOPS_EXPORT_WH SCHEDULE = 'USING CRON 0 * * * * UTC' AS CALL SECOPS_EXPORT_ACTIVITY(); ALTER TASK SECOPS_EXPORT_TASK RESUME;Jalankan tugas satu kali untuk memverifikasi penyiapan tanpa menunggu jadwal sebagai berikut:
EXECUTE TASK SECOPS_EXPORT_TASK;Periksa hasil eksekusi dan file yang mencapai tahap tersebut sebagai berikut:
SELECT NAME, STATE, ERROR_MESSAGE, SCHEDULED_TIME FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(TASK_NAME => 'SECOPS_EXPORT_TASK')) ORDER BY SCHEDULED_TIME DESC LIMIT 5; LIST @SECOPS_EXPORT_STAGE;
Mengambil akun layanan Google SecOps
Google SecOps menggunakan akun layanan unik untuk membaca data dari bucket Cloud Storage Anda. Anda harus memberi akun layanan ini akses ke bucket Anda.
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Snowflake activity logs). - Pilih Google Cloud Storage V2 sebagai Source type.
- Pilih Snowflake sebagai Jenis log.
- Klik Get Service Account.
Email akun layanan yang unik akan ditampilkan, misalnya:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comSalin alamat email ini untuk digunakan di langkah berikutnya.
Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
URL bucket penyimpanan: Masukkan URI bucket Cloud Storage dengan jalur awalan:
gs://snowflake-activity-logs/snowflake/
Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda:
- Jangan pernah menghapus file: Jangan pernah menghapus file dari sumber (direkomendasikan untuk pengujian).
- Hapus file yang ditransfer dan direktori kosong: Menghapus file dan direktori kosong dari sumber setelah pengambilan yang berhasil selesai.
Usia File Maksimum: Menyertakan file yang diubah dalam beberapa hari terakhir (default adalah 180 hari)
Namespace aset: Namespace aset
Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.
Memberikan izin IAM ke akun layanan Google SecOps
Akun layanan Google SecOps memerlukan dua peran di bucket Cloud Storage Anda: Storage Object Viewer untuk membaca objek log, dan peran tingkat bucket untuk membaca metadata bucket.
- Buka Cloud Storage > Buckets.
- Klik nama bucket Anda.
- Buka tab Izin.
- Klik Grant access.
- Berikan detail konfigurasi berikut:
- Add principals: Tempel email akun layanan Google SecOps
- Tetapkan peran: Pilih kedua opsi berikut:
- Storage Object Viewer: membaca objek log.
- Storage Legacy Bucket Reader: membaca metadata bucket. Jika Anda memilih opsi penghapusan Hapus file yang ditransfer dan direktori kosong, pilih Storage Legacy Bucket Writer, yang juga memberikan izin penghapusan.
- Klik Simpan.
Metode 2: Amazon S3 V2
Gunakan metode ini jika log harus berada di Amazon S3. Sisi Snowflake identik, kecuali integrasi penyimpanan dan tahapannya, sehingga prosedur dan tugas ekspor dari Metode 1 digunakan kembali tanpa perubahan.
Mengonfigurasi bucket Amazon S3
- Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket.
- Simpan Nama dan Region bucket untuk referensi di masa mendatang. Misalnya,
snowflake-activity-logs.
Mengonfigurasi kebijakan IAM AWS Snowflake
- Login ke AWS Management Console.
- Telusuri dan pilih IAM.
- Pilih Setelan akun.
- Di bagian Security Token Service (STS) dalam daftar Endpoints, temukan region Snowflake tempat akun Anda berada.
- Jika status STS tidak aktif, geser tombol ke Aktif.
- Pilih Kebijakan.
- Pilih Create Policy.
- Di Policy editor, pilih JSON.
Salin dan tempel kebijakan berikut, yang memberikan izin yang diperlukan Snowflake untuk menghapus muatan data ke satu bucket dan jalur folder:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": "arn:aws:s3:::snowflake-activity-logs/snowflake/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::snowflake-activity-logs", "Condition": { "StringLike": { "s3:prefix": [ "snowflake/*" ] } } } ] }Klik Berikutnya.
Masukkan Nama kebijakan (misalnya,
snowflake_access) dan deskripsi opsional.Klik Create policy.
Mengonfigurasi peran IAM AWS Snowflake
- Di IAM, pilih Roles.
- Klik Buat peran.
- Pilih Akun AWS sebagai jenis entitas tepercaya.
- Pilih Another AWS account.
- Di kolom Account ID, masukkan ID akun AWS Anda sendiri untuk sementara. Anda dapat mengubah hubungan kepercayaan nanti dan memberikan akses ke Snowflake.
- Pilih opsi Require external ID.
- Masukkan ID placeholder seperti
0000. Anda akan menggantinya dengan ID eksternal integrasi penyimpanan nanti. - Klik Berikutnya.
- Pilih kebijakan IAM yang Anda buat sebelumnya.
- Klik Berikutnya.
- Masukkan nama dan deskripsi peran.
- Klik Buat peran.
- Di halaman ringkasan peran, salin dan simpan nilai Role ARN.
Buat integrasi penyimpanan Snowflake untuk Amazon S3
Di worksheet Snowflake, buat integrasi penyimpanan sebagai berikut:
USE ROLE ACCOUNTADMIN; CREATE STORAGE INTEGRATION SECOPS_S3_INT TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = 'S3' ENABLED = TRUE STORAGE_AWS_ROLE_ARN = '<IAM_ROLE_ARN>' STORAGE_ALLOWED_LOCATIONS = ('s3://snowflake-activity-logs/snowflake/'); GRANT USAGE ON INTEGRATION SECOPS_S3_INT TO ROLE SECOPS_EXPORTER;- Ganti
<IAM_ROLE_ARN>dengan ARN Peran yang Anda simpan.
- Ganti
Ambil identitas AWS yang dibuat Snowflake untuk integrasi sebagai berikut:
DESC INTEGRATION SECOPS_S3_INT;Salin dan simpan nilai properti berikut sebagai berikut:
- STORAGE_AWS_IAM_USER_ARN
- STORAGE_AWS_EXTERNAL_ID
Memberi pengguna IAM Snowflake akses ke bucket
- Buka AWS Management Console.
- Pilih IAM > Roles.
- Pilih peran yang Anda buat sebelumnya.
- Pilih tab Hubungan kepercayaan.
- Klik Edit trust policy.
Perbarui dokumen kebijakan dengan nilai output
DESC INTEGRATIONsebagai berikut:{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "<STORAGE_AWS_IAM_USER_ARN>" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<STORAGE_AWS_EXTERNAL_ID>" } } } ] }Klik Update policy.
Membuat format file, tahap, dan objek ekspor
Di worksheet Snowflake, buat format file dan tahap yang menulis ke bucket sebagai berikut:
USE ROLE SECOPS_EXPORTER; USE SCHEMA SECOPS_EXPORT.ACTIVITY; CREATE OR REPLACE FILE FORMAT SECOPS_JSON_FORMAT TYPE = JSON; CREATE OR REPLACE STAGE SECOPS_EXPORT_STAGE URL = 's3://snowflake-activity-logs/snowflake/' STORAGE_INTEGRATION = SECOPS_S3_INT FILE_FORMAT = SECOPS_JSON_FORMAT;Buat tabel status, prosedur, dan tugas persis seperti yang dijelaskan dalam Metode 1, di bagian Buat tabel status ekspor, Buat prosedur ekspor, dan Jadwalkan tugas ekspor. Pernyataan merujuk ke tahap berdasarkan nama, sehingga tidak perlu diubah.
Mengonfigurasi AWS IAM untuk Google SecOps
- Login ke AWS Management Console.
- Buat Pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
- Pilih Pengguna yang dibuat.
- Pilih tab Kredensial keamanan.
- Klik Create Access Key di bagian Access Keys.
- Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
- Klik Berikutnya.
- Opsional: Tambahkan tag deskripsi.
- Klik Create access key.
- Klik Download file .csv untuk menyimpan Access Key dan Secret Access Key untuk referensi di masa mendatang.
- Klik Done.
- Pilih tab Izin.
- Klik Add permissions di bagian Permissions policies.
- Pilih Tambahkan izin.
- Pilih Lampirkan kebijakan secara langsung.
- Telusuri dan pilih kebijakan AmazonS3FullAccess.
- Klik Berikutnya.
- Klik Add permissions.
Mengonfigurasi feed di Google SecOps untuk menyerap log Snowflake
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Snowflake activity logs). - Pilih Amazon S3 V2 sebagai Jenis sumber.
- Pilih Snowflake sebagai Jenis log.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut sebagai berikut:
- URI S3:
s3://snowflake-activity-logs/snowflake/ - Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda
- Usia File Maksimum: Menyertakan file yang diubah dalam beberapa hari terakhir (default adalah 180 hari)
- Access Key ID: Kunci akses pengguna dengan akses ke bucket S3
- Secret Access Key: Kunci rahasia pengguna dengan akses ke bucket S3
- Namespace aset: Namespace aset
- Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini
- URI S3:
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
column4_label |
additional.fields |
Digabung |
column7_label |
additional.fields |
Digabung |
first_authentication_factor_label |
additional.fields |
Digabung |
host_list |
additional.fields |
Digabung |
query_text_label |
additional.fields |
Digabung |
query_type_label |
additional.fields |
Digabung |
roleIds_list |
additional.fields |
Digabung |
roleNames_list |
additional.fields |
Digabung |
rolecount_label |
additional.fields |
Digabung |
user_count_label |
additional.fields |
Digabung |
has_principal |
extensions.auth.type |
Dipetakan: true → AUTHTYPE_UNSPECIFIED |
START_TIME |
metadata.event_timestamp |
Diuraikan sebagai yyyy-MM-dd HH:mm:ss.SSS Z |
column2 |
metadata.event_timestamp |
Diuraikan sebagai yyyy-MM-dd HH:mm:ss.SSS Z |
column20 |
metadata.event_timestamp |
Diuraikan sebagai yyyy-MM-dd HH:mm:ss.SSS Z |
ts |
metadata.event_timestamp |
Diuraikan sebagai ISO8601 |
event_type |
metadata.event_type |
Dipetakan secara langsung |
has_principal |
metadata.event_type |
Dipetakan: true → NETWORK_CONNECTION, true → STATUS_UPDATE, true → USER_LOGIN |
has_principal_user |
metadata.event_type |
Dipetakan: true → USER_UNCATEGORIZED |
column10 |
metadata.product_event_type |
Dipetakan secara langsung |
QUERY_ID |
metadata.product_log_id |
Dipetakan secara langsung |
column1 |
metadata.product_log_id |
Dipetakan secara langsung |
column6 |
metadata.product_version |
Dipetakan secara langsung |
SESSION_ID |
network.http.session_id |
Dipetakan secara langsung |
RECEIVED_BYTES |
network.received_bytes |
Diganti nama/dipetakan |
BYTES_SENT_OVER_THE_NETWORK |
network.sent_bytes |
Diganti nama/dipetakan |
SENT_BYTES |
network.sent_bytes |
Diganti nama/dipetakan |
APPLICATION |
principal.application |
Dipetakan secara langsung |
data.user_name |
principal.asset.hostname |
Dipetakan secara langsung |
CLIENT_IP |
principal.asset.ip |
Digabung |
IP |
principal.asset.ip |
Digabung |
column5 |
principal.asset.ip |
Digabung |
SOURCE_REGION |
principal.cloud.availability_zone |
Dipetakan secara langsung |
SOURCE_CLOUD |
principal.cloud.environment |
Dipetakan: (?i)azure → MICROSOFT_AZURE, (?i)amazon → AMAZON_WEB_SERVICES, (?i)google ... |
data.user_name |
principal.hostname |
Dipetakan secara langsung |
CLIENT_IP |
principal.ip |
Digabung |
IP |
principal.ip |
Digabung |
column5 |
principal.ip |
Digabung |
OS |
principal.platform |
Dipetakan: (?i)Linux → LINUX, (?i)windows → WINDOWS, (?i)mac/ios → MAC |
OS_VERSION |
principal.platform_version |
Dipetakan secara langsung |
SOURCE_CLOUD_label |
principal.resource.attribute.labels |
Digabung |
roles |
principal.user.attribute.roles |
Digabung |
data.role_name |
principal.user.role_name |
Dipetakan secara langsung |
column9 |
principal.user.user_display_name |
Dipetakan secara langsung |
USER_NAME |
principal.user.userid |
Dipetakan secara langsung |
column10 |
principal.user.userid |
Dipetakan secara langsung |
column3 |
principal.user.userid |
Dipetakan secara langsung |
EXECUTION_STATUS |
security_result.action |
Dipetakan: (?i)success → action, (?i)fail → security_result_action_block |
STATUS |
security_result.action |
Dipetakan: (?i)success → action, (?i)fail → action |
action |
security_result.action |
Digabung |
security_result_action_block |
security_result.action |
Digabung |
OCSP_MODE |
security_result.action_details |
Dipetakan secara langsung |
column11 |
security_result.action_details |
Dipetakan secara langsung |
column3 |
security_result.action_details |
Dipetakan secara langsung |
BYTES_DELETED_label |
security_result.detection_fields |
Digabung |
BYTES_READ_FROM_RESULT_label |
security_result.detection_fields |
Digabung |
BYTES_SCANNED_label |
security_result.detection_fields |
Digabung |
BYTES_SPILLED_TO_LOCAL_STORAGE_label |
security_result.detection_fields |
Digabung |
BYTES_SPILLED_TO_REMOTE_STORAGE_label |
security_result.detection_fields |
Digabung |
BYTES_WRITTEN_TO_RESULT_label |
security_result.detection_fields |
Digabung |
BYTES_WRITTEN_label |
security_result.detection_fields |
Digabung |
CHILD_QUERIES_WAIT_TIME_label |
security_result.detection_fields |
Digabung |
CLUSTER_NUMBER_label |
security_result.detection_fields |
Digabung |
COMPILATION_TIME_label |
security_result.detection_fields |
Digabung |
CREDITS_USED_CLOUD_SERVICES_label |
security_result.detection_fields |
Digabung |
DATABASE_ID_label |
security_result.detection_fields |
Digabung |
DATABASE_NAME_label |
security_result.detection_fields |
Digabung |
END_TIME_label |
security_result.detection_fields |
Digabung |
ERROR_MESSAGE_label |
security_result.detection_fields |
Digabung |
EXECUTION_TIME_label |
security_result.detection_fields |
Digabung |
EXTERNAL_FUNCTION_TOTAL_INVOCATIONS_label |
security_result.detection_fields |
Digabung |
EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES_label |
security_result.detection_fields |
Digabung |
EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS_label |
security_result.detection_fields |
Digabung |
EXTERNAL_FUNCTION_TOTAL_SENT_BYTES_label |
security_result.detection_fields |
Digabung |
EXTERNAL_FUNCTION_TOTAL_SENT_ROWS_label |
security_result.detection_fields |
Digabung |
INBOUND_DATA_TRANSFER_BYTES_label |
security_result.detection_fields |
Digabung |
IS_CLIENT_GENERATED_STATEMENT_label |
security_result.detection_fields |
Digabung |
LIST_EXTERNAL_FILES_TIME_label |
security_result.detection_fields |
Digabung |
OUTBOUND_DATA_TRANSFER_BYTES_label |
security_result.detection_fields |
Digabung |
PARTITIONS_SCANNED_label |
security_result.detection_fields |
Digabung |
PARTITIONS_TOTAL_label |
security_result.detection_fields |
Digabung |
PERCENTAGE_SCANNED_FROM_CACHE_label |
security_result.detection_fields |
Digabung |
QUERY_ACCELERATION_BYTES_SCANNED_label |
security_result.detection_fields |
Digabung |
QUERY_ACCELERATION_PARTITIONS_SCANNED_label |
security_result.detection_fields |
Digabung |
QUERY_ACCELERATION_UPPER_LIMIT_SCALE_FACTOR_label |
security_result.detection_fields |
Digabung |
QUERY_HASH_VERSION_label |
security_result.detection_fields |
Digabung |
QUERY_HASH_label |
security_result.detection_fields |
Digabung |
QUERY_LOAD_PERCENT_label |
security_result.detection_fields |
Digabung |
QUERY_PARAMETERIZED_HASH_VERSION_label |
security_result.detection_fields |
Digabung |
QUERY_TAG_label |
security_result.detection_fields |
Digabung |
QUERY_TYPE_label |
security_result.detection_fields |
Digabung |
QUEUED_OVERLOAD_TIME_label |
security_result.detection_fields |
Digabung |
QUEUED_PROVISIONING_TIME_label |
security_result.detection_fields |
Digabung |
QUEUED_REPAIR_TIME_label |
security_result.detection_fields |
Digabung |
RELEASE_VERSION_label |
security_result.detection_fields |
Digabung |
ROLE_TYPE_label |
security_result.detection_fields |
Digabung |
ROWS_DELETED_label |
security_result.detection_fields |
Digabung |
ROWS_INSERTED_label |
security_result.detection_fields |
Digabung |
ROWS_PRODUCED_label |
security_result.detection_fields |
Digabung |
ROWS_UNLOADED_label |
security_result.detection_fields |
Digabung |
ROWS_UPDATED_label |
security_result.detection_fields |
Digabung |
ROWS_WRITTEN_TO_RESULT_label |
security_result.detection_fields |
Digabung |
SCHEMA_ID_label |
security_result.detection_fields |
Digabung |
SCHEMA_NAME_label |
security_result.detection_fields |
Digabung |
TOTAL_ELAPSED_TIME_label |
security_result.detection_fields |
Digabung |
TRANSACTION_BLOCKED_TIME_label |
security_result.detection_fields |
Digabung |
TRANSACTION_ID_label |
security_result.detection_fields |
Digabung |
WAREHOUSE_ID_label |
security_result.detection_fields |
Digabung |
WAREHOUSE_NAME_label |
security_result.detection_fields |
Digabung |
WAREHOUSE_SIZE_label |
security_result.detection_fields |
Digabung |
WAREHOUSE_TYPE_label |
security_result.detection_fields |
Digabung |
authentication_factor_label |
security_result.detection_fields |
Digabung |
column4_label |
security_result.detection_fields |
Digabung |
column6_label |
security_result.detection_fields |
Digabung |
column7_label |
security_result.detection_fields |
Digabung |
column8_label |
security_result.detection_fields |
Digabung |
event_id_label |
security_result.detection_fields |
Digabung |
event_type_label |
security_result.detection_fields |
Digabung |
is_success_label |
security_result.detection_fields |
Digabung |
python_compiler_label |
security_result.detection_fields |
Digabung |
python_runtime_label |
security_result.detection_fields |
Digabung |
python_version_label |
security_result.detection_fields |
Digabung |
reported_client_type_label |
security_result.detection_fields |
Digabung |
reported_client_version_label |
security_result.detection_fields |
Digabung |
tracing_label |
security_result.detection_fields |
Digabung |
EXECUTION_STATUS |
security_result.summary |
Dipetakan secara langsung |
STATUS |
security_result.summary |
Dipetakan secara langsung |
column17 |
security_result.summary |
Dipetakan secara langsung |
TARGET_REGION |
target.cloud.availability_zone |
Dipetakan secara langsung |
TARGET_CLOUD |
target.cloud.environment |
Dipetakan: (?i)azure → MICROSOFT_AZURE, (?i)amazon → AMAZON_WEB_SERVICES, (?i)google ... |
TARGET_CLOUD_label |
target.resource.attribute.labels |
Digabung |
column2_label |
target.resource.attribute.labels |
Digabung |
column7_label |
target.resource.attribute.labels |
Digabung |
USER_NAME |
target.user.userid |
Dipetakan secara langsung |
column4 |
target.user.userid |
Dipetakan secara langsung |
| T/A | extensions.auth.type |
Konstanta: AUTHTYPE_UNSPECIFIED |
| T/A | metadata.event_type |
Konstanta: NETWORK_CONNECTION |
| T/A | metadata.product_name |
Konstanta: SNOWFLAKE |
| T/A | metadata.vendor_name |
Konstanta: SNOWFLAKE |
| T/A | principal.cloud.environment |
Konstanta: MICROSOFT_AZURE |
| T/A | principal.platform |
Konstanta: LINUX |
| T/A | target.cloud.environment |
Konstanta: MICROSOFT_AZURE |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.