Mengumpulkan Log Audit Slack
Dokumen ini menjelaskan cara menyerap log Audit Slack ke Google Security Operations menggunakan fungsi Google Cloud Run atau Amazon S3 dengan AWS Lambda.
Log Audit Slack memberikan catatan mendetail tentang peristiwa terkait keamanan di seluruh organisasi Slack Enterprise Grid Anda. Audit Logs API memungkinkan Anda memantau tindakan pengguna seperti login, download file, penginstalan aplikasi, dan perubahan administratif untuk tujuan pemantauan kepatuhan dan keamanan.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps.
Paket Slack Enterprise Grid dengan akses Pemilik organisasi.
Akses istimewa ke:
- Google Cloud (untuk Opsi 1: Cloud Run Functions dan Cloud Scheduler), atau
- AWS (untuk Opsi 2: S3, IAM, Lambda, EventBridge).
Mengumpulkan kredensial Slack
Membuat aplikasi Slack
Slack Audit Logs API memerlukan Token OAuth Pengguna dengan cakupan auditlogs:read. Token ini harus diperoleh dengan menginstal aplikasi di tingkat organisasi Enterprise Grid, bukan di tingkat ruang kerja.
- Login ke Slack sebagai pemilik organisasi Enterprise Grid Anda.
- Buka halaman Aplikasi Slack API.
- Klik Create New App.
- Pilih Dari awal.
- Berikan detail konfigurasi berikut:
- Nama Aplikasi: Masukkan nama deskriptif (misalnya,
Google SecOps Audit Integration). - Pilih ruang kerja untuk mengembangkan aplikasi Anda: Pilih Ruang Kerja Slack Pengembangan Anda (ruang kerja apa pun di organisasi).
- Nama Aplikasi: Masukkan nama deskriptif (misalnya,
- Klik Create App.
Mengonfigurasi cakupan OAuth
- Di halaman setelan aplikasi, pilih OAuth & Izin dari navigasi kiri.
- Buka bagian Scopes.
- Di bagian Cakupan Token Pengguna (BUKAN Cakupan Token Bot), klik Tambahkan Cakupan OAuth.
- Tambahkan cakupan berikut:
auditlogs:read— Cakupan ini memungkinkan akses ke Audit Logs API untuk organisasi Enterprise Grid.
- Di bagian Cakupan Token Bot, klik Tambahkan Cakupan OAuth.
- Tambahkan cakupan berikut:
users:read— Hadir agar aplikasi dapat diinstal di tingkat organisasi.
Menginstal aplikasi di organisasi Enterprise
Audit Logs API membaca peristiwa untuk seluruh organisasi Enterprise, sehingga aplikasi harus diinstal di tingkat organisasi, bukan di satu ruang kerja. Slack mendokumentasikan dua cara untuk melakukannya. Keduanya menghasilkan Token OAuth Pengguna tingkat organisasi yang sama. Gunakan salah satunya.
Opsi A: Menginstal dari setelan aplikasi (aplikasi tingkat organisasi)
Ini adalah jalur dari halaman Mengembangkan aplikasi untuk organisasi Enterprise di Slack. Tidak memerlukan URL pengalihan, tidak ada distribusi publik, dan tidak ada layanan web.
- Di halaman setelan aplikasi Anda, pilih Aplikasi Tingkat Org. dari navigasi kiri.
- Klik Ikut Serta.
Pada perintah konfirmasi, klik Ya, Aktifkan.
Login sebagai pemilik organisasi Enterprise.
Pilih OAuth & Izin dari navigasi kiri.
Klik Install to Organization.
Tinjau izin yang diminta di layar konfirmasi, lalu klik Izinkan.
Opsi B: Distribusi publik dan URL yang Dapat Dibagikan
Ini adalah jalur dari halaman Audit Logs API Slack. Mengaktifkan distribusi publik tidak mencantumkan aplikasi di Slack Marketplace; tindakan ini hanya mengizinkan penginstalan di luar ruang kerja pengembangan.
- Di halaman setelan aplikasi, pilih OAuth & Izin dari navigasi kiri.
Di bagian URL Pengalihan, klik Tambahkan URL Pengalihan Baru, masukkan URL, klik Tambahkan, lalu klik Simpan URL.
Pilih Kelola Distribusi dari navigasi kiri.
Di bagian Bagikan Aplikasi Anda ke Ruang Kerja Lain, pastikan keempat bagian checklist menampilkan tanda centang hijau. Jika bagian menampilkan X merah, luaskan bagian tersebut dan selesaikan tindakan yang diperlukan.
Centang kotak Saya telah meninjau dan menghapus informasi yang dikodekan secara permanen.
Klik Aktifkan Distribusi Publik.
Login sebagai Pemilik organisasi Perusahaan.
Di bagian Share Your App with Your Workspace, salin Sharable URL dan buka di browser Anda.
Di layar penginstalan, buka drop-down di pojok kanan atas dan pilih Organisasi perusahaan, bukan ruang kerja perorangan.
Tinjau izin yang diminta, lalu klik Izinkan.
Mengambil kredensial
- Setelah penginstalan selesai, Anda akan kembali ke halaman OAuth & Izin.
- Di bagian OAuth Tokens, temukan User OAuth Token.
- Token dimulai dengan
xoxp-. Klik Salin dan simpan token ini dengan aman.
Penting: Ini adalah
SLACK_ADMIN_TOKENuntuk fungsi Cloud Run atau fungsi Lambda. Simpan dengan aman. Peran ini memberikan akses baca ke semua log audit di organisasi Enterprise Grid Anda.Catat ID Organisasi Anda:
- Buka Slack di browser web menggunakan URL organisasi Anda (misalnya,
acmeinc.enterprise.slack.com). - Setelah halaman dimuat, baca URL-nya. Formatnya adalah
https://app.slack.com/client/EXXXXXXX/CXXXXXXX. - Salin string yang dimulai dengan
E. Itu adalah ID organisasi Anda.
- Buka Slack di browser web menggunakan URL organisasi Anda (misalnya,
Memverifikasi izin
Untuk memverifikasi bahwa aplikasi Anda memiliki izin yang diperlukan:
- Buka halaman Aplikasi Slack API.
- Pilih aplikasi Anda.
- Pilih OAuth & Izin dari navigasi kiri.
- Di bagian Token OAuth, pastikan Token OAuth Pengguna ditampilkan (dimulai dengan
xoxp-). - Di bagian Scopes, pastikan
auditlogs:readmuncul di bagian User Token Scopes.
Menguji akses API
Uji token Anda sebelum melanjutkan integrasi:
SLACK_TOKEN="xoxp-your-token-here" curl -H "Authorization: Bearer $SLACK_TOKEN" \ "https://api.slack.com/audit/v1/logs?limit=1"
Respons yang berhasil berisi array entries dengan peristiwa log audit. Jika Anda menerima error invalid_auth atau missing_scope, verifikasi token dan cakupan Anda.
Opsi 1: Mengonfigurasi ekspor Log Audit Slack menggunakan fungsi Google Cloud Run
Opsi ini menggunakan fungsi Google Cloud Run dan Cloud Scheduler untuk mengumpulkan Log Audit Slack dan menyerapnya langsung ke Google SecOps menggunakan skrip penyerapan Google SecOps.
Sebelum Anda memulai (Opsi 1)
Pastikan Anda memiliki prasyarat tambahan berikut:
- Project Google Cloud dengan API berikut diaktifkan:
- Cloud Run Admin API
- API Eventarc
- Pub/Sub API
- Cloud Scheduler API
- Secret Manager API
- Izin untuk membuat fungsi Cloud Run, topik Pub/Sub, pemicu Eventarc, tugas Cloud Scheduler, dan secret di Secret Manager.
- File JSON akun layanan Google SecOps.
Mendapatkan akun layanan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Klik Download untuk mendownload file autentikasi penyerapan.
- Simpan file JSON dengan aman. Anda akan menguploadnya sebagai secret di Google Secret Manager.
Menyiapkan kode fungsi
Download file deployment dari repositori GitHub ingestion-scripts Google SecOps:
- Dari folder
slack, download:.env.ymlmain.pyrequirements.txt
Dari root repositori, download seluruh direktori
commonbeserta semua filenya.Direktori deployment Anda harus memiliki struktur berikut:
``` deployment_directory/ ├── common/ │ ├── __init__.py │ ├── auth.py │ ├── env_constants.py │ ├── ingest.py │ ├── status.py │ └── utils.py ├── .env.yml ├── main.py └── requirements.txt ```
Mengonfigurasi secret di Google Secret Manager
Simpan kredensial sensitif di Secret Manager untuk akses yang aman oleh fungsi Cloud Run.
Buat secret untuk akun layanan Google SecOps
- Di Google Cloud console, buka Security > Secret Manager.
- Klik Buat Secret.
- Berikan detail konfigurasi berikut:
- Nama: Masukkan
chronicle-service-account. - Nilai rahasia: Tempelkan seluruh konten file JSON akun layanan Google SecOps.
- Nama: Masukkan
- Klik Buat Secret.
Salin nama resource rahasia. Formatnya adalah:
projects/PROJECT_ID/secrets/chronicle-service-account/versions/latest
Buat secret untuk token Slack
- Di halaman Secret Manager, klik Create Secret.
- Berikan detail konfigurasi berikut:
- Nama: Masukkan
slack-admin-token. - Nilai rahasia: Tempelkan Token OAuth Pengguna Slack (dimulai dengan
xoxp-).
- Nama: Masukkan
- Klik Buat Secret.
Salin nama resource rahasia. Formatnya adalah:
projects/PROJECT_ID/secrets/slack-admin-token/versions/latest
Mengonfigurasi variabel lingkungan
Buka file
.env.ymldi direktori deployment Anda dan konfigurasikan variabel lingkungan:CHRONICLE_CUSTOMER_ID: "<your-chronicle-customer-id>" CHRONICLE_REGION: "us" CHRONICLE_SERVICE_ACCOUNT: "projects/<PROJECT_ID>/secrets/chronicle-service-account/versions/latest" CHRONICLE_NAMESPACE: "" POLL_INTERVAL: "5" SLACK_ADMIN_TOKEN: "projects/<PROJECT_ID>/secrets/slack-admin-token/versions/latest"Ganti kode berikut:
<your-chronicle-customer-id>: ID pelanggan Google SecOps Anda.<PROJECT_ID>: Project ID Google Cloud Anda.CHRONICLE_REGION: Setel ke region Google SecOps Anda. Nilai yang valid:us,asia-northeast1,asia-south1,asia-southeast1,australia-southeast1,europe,europe-west2,europe-west3,europe-west6,europe-west9,europe-west12,me-central1,me-central2,me-west1,northamerica-northeast2,southamerica-east1.POLL_INTERVAL: Interval frekuensi (dalam menit) saat fungsi dijalankan. Durasi ini harus sama dengan interval tugas Cloud Scheduler.
Simpan file
.env.yml.
Membuat topik Pub/Sub
Cloud Scheduler memicu fungsi Cloud Run melalui topik Pub/Sub.
- Di Konsol GCP, buka Pub/Sub > Topics.
- Klik Create topic.
- Di kolom Topic ID, masukkan
slack-audit-trigger. - Klik Create.
Men-deploy fungsi Cloud Run
Buka terminal atau Cloud Shell di konsol Google Cloud . Buka direktori deployment Anda dan jalankan perintah berikut:
gcloud run deploy slack-audit-to-chronicle \ --source . \ --function main \ --base-image google-22/python312 \ --region <REGION> \ --service-account <SERVICE_ACCOUNT_EMAIL> \ --env-vars-file .env.yml \ --memory 512Mi \ --timeout 540 \ --max-instances 1 \ --no-allow-unauthenticated- Ganti
<REGION>dengan region (misalnya,us-central1) dan<SERVICE_ACCOUNT_EMAIL>dengan alamat email akun layanan yang ingin Anda gunakan untuk fungsi Cloud Run.
- Ganti
Buat pemicu Pub/Sub untuk fungsi sebagai berikut:
gcloud eventarc triggers create slack-audit-trigger \ --location <REGION> \ --destination-run-service slack-audit-to-chronicle \ --destination-run-region <REGION> \ --event-filters "type=google.cloud.pubsub.topic.v1.messagePublished" \ --transport-topic projects/<PROJECT_ID>/topics/slack-audit-trigger \ --service-account <SERVICE_ACCOUNT_EMAIL>- Ganti
<PROJECT_ID>dengan project ID Google Cloud Anda.
- Ganti
Tunggu hingga deployment selesai.
Menyiapkan Cloud Scheduler
- Di GCP Console, buka Cloud Scheduler > Create job.
Berikan detail konfigurasi berikut:
Setelan Nilai Nama slack-audit-schedulerRegion Pilih region yang sama dengan tempat Anda men-deploy fungsi Cloud Run Frekuensi */5 * * * *(setiap 5 menit, cocok dengan nilaiPOLL_INTERVAL)Zona Waktu Pilih zona waktu (UTC direkomendasikan) Klik Lanjutkan.
Di bagian Configure the execution:
- Jenis target: Pilih Pub/Sub.
- Topik: Pilih
slack-audit-trigger. - Isi pesan: Masukkan
run.
Klik Create.
Opsi frekuensi jadwal
Pilih frekuensi berdasarkan volume log dan persyaratan latensi:
| Frekuensi | Ekspresi Cron | Kasus Penggunaan |
|---|---|---|
| Setiap 5 menit | */5 * * * * |
Standar (direkomendasikan) |
| Setiap 15 menit | */15 * * * * |
Volume sedang |
| Setiap jam | 0 * * * * |
Volume rendah |
Menguji integrasi (Opsi 1)
- Di konsol Cloud Scheduler, temukan tugas Anda (
slack-audit-scheduler). - Klik Force run untuk memicu tugas secara manual.
- Tunggu beberapa detik.
- Buka Cloud Run.
- Klik nama layanan (
slack-audit-to-chronicle). - Klik tab Logs.
Pastikan fungsi berhasil dieksekusi. Cari:
Retrieving the Slack Audit logs since: YYYY-MM-DDTHH:MM:SSZ Processing logs... Retrieved X audit logs from the API call Logs processed successfully.
Opsi 2: Mengonfigurasi ekspor Log Audit Slack menggunakan AWS S3
Opsi ini menggunakan AWS Lambda untuk mengumpulkan Log Audit Slack dan menyimpannya di Amazon S3, lalu mengonfigurasi feed Google SecOps untuk menyerap log.
Sebelum Anda memulai (Opsi 2)
Pastikan Anda memiliki prasyarat tambahan berikut:
- Akun AWS dengan izin untuk membuat bucket S3, pengguna/peran/kebijakan IAM, fungsi Lambda, dan aturan EventBridge.
Buat bucket Amazon S3
- Buat bucket Amazon S3 dengan mengikuti panduan pengguna Membuat bucket.
- Simpan Name dan Region bucket untuk referensi di masa mendatang (misalnya,
slack-audit-logs).
Mengonfigurasi kebijakan dan peran IAM untuk upload S3
- Di AWS Console, buka tab IAM > Policies > Create policy > JSON.
Salin dan tempel kebijakan berikut. Ganti
slack-audit-logsjika Anda menggunakan nama bucket yang berbeda:{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutObjects", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::slack-audit-logs/*" }, { "Sid": "AllowGetStateObject", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::slack-audit-logs/slack-audit-state.json" } ] }Klik Berikutnya.
Masukkan nama kebijakan
SlackAuditS3Policy.Klik Create policy.
Buka IAM > Roles > Create role > AWS service > Lambda.
Lampirkan kebijakan
SlackAuditS3Policyyang baru dibuat.Beri nama peran
SlackAuditToS3Role, lalu klik Buat peran.
Buat fungsi Lambda
- Di AWS Console, buka Lambda > Functions > Create function.
- Klik Buat dari awal.
Berikan detail konfigurasi berikut:
Setelan Nilai Nama slack_audit_to_s3Runtime Python 3.13 Arsitektur x86_64 Peran eksekusi SlackAuditToS3RoleKlik Create function.
Setelah fungsi dibuat, buka tab Code, hapus stub, dan tempelkan kode berikut (
slack_audit_to_s3.py).#!/usr/bin/env python3 # Lambda: Pull Slack Audit Logs (Enterprise Grid) to S3 (JSONL format) import os, json, time, urllib.parse from urllib.request import Request, urlopen from urllib.error import HTTPError, URLError import boto3 BASE_URL = "https://api.slack.com/audit/v1/logs" TOKEN = os.environ["SLACK_AUDIT_TOKEN"] BUCKET = os.environ["S3_BUCKET"] PREFIX = os.environ.get("S3_PREFIX", "slack/audit/") STATE_KEY = os.environ.get("STATE_KEY", "slack-audit-state.json") LIMIT = int(os.environ.get("LIMIT", "200")) MAX_PAGES = int(os.environ.get("MAX_PAGES", "20")) LOOKBACK_SEC = int(os.environ.get("LOOKBACK_SECONDS", "3600")) HTTP_TIMEOUT = int(os.environ.get("HTTP_TIMEOUT", "60")) HTTP_RETRIES = int(os.environ.get("HTTP_RETRIES", "3")) RETRY_AFTER_DEFAULT = int(os.environ.get("RETRY_AFTER_DEFAULT", "2")) # Optional server-side filters (comma-separated 'action' values) ACTIONS = os.environ.get("ACTIONS", "").strip() s3 = boto3.client("s3") def _get_state() -> dict: try: obj = s3.get_object(Bucket=BUCKET, Key=STATE_KEY) st = json.loads(obj["Body"].read() or b"{}") return {"cursor": st.get("cursor")} except Exception: return {"cursor": None} def _put_state(state: dict) -> None: body = json.dumps(state, separators=(",", ":")).encode("utf-8") s3.put_object( Bucket=BUCKET, Key=STATE_KEY, Body=body, ContentType="application/json" ) def _http_get(params: dict) -> dict: qs = urllib.parse.urlencode(params, doseq=True) url = f"{BASE_URL}?{qs}" if qs else BASE_URL req = Request(url, method="GET") req.add_header("Authorization", f"Bearer {TOKEN}") req.add_header("Accept", "application/json") attempt = 0 while True: try: with urlopen(req, timeout=HTTP_TIMEOUT) as r: return json.loads(r.read().decode("utf-8")) except HTTPError as e: # Respect Retry-After on 429/5xx if e.code in (429, 500, 502, 503, 504) and attempt < HTTP_RETRIES: retry_after = 0 try: retry_after = int( e.headers.get("Retry-After", RETRY_AFTER_DEFAULT) ) except Exception: retry_after = RETRY_AFTER_DEFAULT time.sleep(max(1, retry_after)) attempt += 1 continue raise except URLError: if attempt < HTTP_RETRIES: time.sleep(RETRY_AFTER_DEFAULT) attempt += 1 continue raise def _write_page(data: dict, page_idx: int) -> str: """Extract entries from Slack API response and write as JSONL.""" entries = data.get("entries") or [] if not entries: return None lines = [json.dumps(entry, separators=(",", ":")) for entry in entries] body = "\n".join(lines).encode("utf-8") ts = time.strftime("%Y/%m/%d/%H%M%S", time.gmtime()) key = f"{PREFIX}{ts}-slack-audit-p{page_idx:05d}.json" s3.put_object( Bucket=BUCKET, Key=key, Body=body, ContentType="application/json" ) return key def lambda_handler(event=None, context=None): state = _get_state() cursor = state.get("cursor") params = {"limit": LIMIT} if ACTIONS: params["action"] = [a.strip() for a in ACTIONS.split(",") if a.strip()] if cursor: params["cursor"] = cursor else: # First run (or reset): fetch a recent window by time params["oldest"] = int(time.time()) - LOOKBACK_SEC pages = 0 total = 0 last_cursor = None while pages < MAX_PAGES: data = _http_get(params) _write_page(data, pages) entries = data.get("entries") or [] total += len(entries) # Cursor for next page meta = data.get("response_metadata") or {} next_cursor = meta.get("next_cursor") or data.get("next_cursor") if next_cursor: params = {"limit": LIMIT, "cursor": next_cursor} if ACTIONS: params["action"] = [ a.strip() for a in ACTIONS.split(",") if a.strip() ] last_cursor = next_cursor pages += 1 continue break if last_cursor: _put_state({"cursor": last_cursor}) return { "ok": True, "pages": pages + (1 if total or last_cursor else 0), "entries": total, "cursor": last_cursor, } if __name__ == "__main__": print(lambda_handler())
Mengonfigurasi variabel lingkungan Lambda
- Buka Configuration > Variabel lingkungan > Edit > Tambahkan variabel lingkungan.
Masukkan variabel lingkungan berikut, ganti dengan nilai Anda:
Kunci Nilai Contoh SLACK_AUDIT_TOKENxoxp-...(token pengguna tingkat organisasi denganauditlogs:read)S3_BUCKETslack-audit-logsS3_PREFIXslack/audit/STATE_KEYslack-audit-state.jsonLIMIT200MAX_PAGES20LOOKBACK_SECONDS3600HTTP_TIMEOUT60HTTP_RETRIES3RETRY_AFTER_DEFAULT2ACTIONS(opsional, filter tindakan yang dipisahkan koma) Klik Simpan.
Pilih tab Configuration Di panel General configuration, klik Edit.
Ubah Waktu Tunggu menjadi
5 minutes(300 detik), lalu klik Simpan.
Membuat jadwal EventBridge
- Buka Amazon EventBridge > Scheduler > Create schedule.
- Berikan detail konfigurasi berikut:
- Nama: Masukkan
slack-audit-1h. - Jadwal berulang: Pilih Jadwal berbasis tarif.
- Ekspresi tarif: Masukkan
1 hours. - Jangka waktu fleksibel: Pilih Nonaktif.
- Nama: Masukkan
- Klik Berikutnya.
- Pilih Target:
- Target API: Pilih AWS Lambda Invoke.
- Fungsi Lambda: Pilih
slack_audit_to_s3.
- Klik Berikutnya.
- Klik Berikutnya (lewati setelan opsional).
- Tinjau, lalu klik Buat jadwal.
(Opsional) Buat pengguna IAM hanya baca untuk Google SecOps
- Buka AWS Console > IAM > Users > Create user.
- Berikan detail konfigurasi berikut:
- Nama pengguna: Masukkan
secops-reader. - Jenis akses: Pilih Akses terprogram.
- Nama pengguna: Masukkan
- Klik Berikutnya.
- Pilih Lampirkan kebijakan secara langsung.
Klik Create policy. Di tab JSON, tempelkan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::slack-audit-logs/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::slack-audit-logs" } ] }Klik Berikutnya.
Masukkan nama kebijakan
secops-reader-policy.Klik Create policy.
Kembali ke halaman pembuatan pengguna, muat ulang daftar kebijakan, lalu pilih
secops-reader-policy.Klik Berikutnya.
Klik Create user.
Pilih pengguna yang dibuat
secops-reader.Buka Kredensial keamanan > Kunci akses > Buat kunci akses.
Pilih Layanan pihak ketiga.
Klik Berikutnya.
Klik Create access key.
Klik Download file .csv untuk menyimpan kredensial.
Mengonfigurasi feed di Google SecOps untuk menyerap log Audit Slack
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Slack Audit Logs). - Pilih Amazon S3 V2 sebagai Jenis sumber.
- Pilih Slack Audit sebagai Jenis log.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
URI S3: Masukkan URI bucket S3 dengan jalur awalan:
``` s3://slack-audit-logs/slack/audit/ ``` Replace `slack-audit-logs` with your actual S3 bucket name.Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda.
Usia File Maksimum: Menyertakan file yang diubah dalam beberapa hari terakhir. Defaultnya adalah 180 hari.
ID Kunci Akses: Kunci akses pengguna dengan akses ke bucket S3 (dari pengguna Pengelolaan Akses dan Identitas (IAM)
secops-reader).Kunci Akses Rahasia: Kunci rahasia pengguna dengan akses ke bucket S3 (dari pengguna IAM
secops-reader).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.
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
action |
metadata.product_event_type |
Dipetakan langsung dari kolom action |
actor.type |
principal.labels |
Dipetakan langsung dengan kunci actor.type |
actor.user.email |
principal.user.email_addresses |
Dipetakan secara langsung |
actor.user.id |
principal.user.product_object_id |
Dipetakan secara langsung |
actor.user.id |
principal.user.userid |
Dipetakan secara langsung |
actor.user.name |
principal.user.user_display_name |
Dipetakan secara langsung |
actor.user.team |
principal.user.group_identifiers |
Dipetakan secara langsung |
context.ip_address |
principal.ip |
Dipetakan secara langsung |
context.location.domain |
about.resource.attribute.labels |
Dipetakan langsung dengan kunci context.location.domain |
context.location.id |
about.resource.id |
Dipetakan secara langsung |
context.location.name |
about.resource.name |
Dipetakan secara langsung |
context.location.name |
about.resource.attribute.labels |
Dipetakan langsung dengan kunci context.location.name |
context.location.type |
about.resource.resource_subtype |
Dipetakan secara langsung |
context.session_id |
network.session_id |
Dipetakan secara langsung |
context.ua |
network.http.user_agent |
Dipetakan secara langsung |
context.ua |
network.http.parsed_user_agent |
Agen pengguna yang diuraikan berasal dari kolom context.ua |
country |
principal.location.country_or_region |
Dipetakan secara langsung |
date_create |
metadata.event_timestamp.seconds |
Stempel waktu epoch yang dikonversi menjadi objek stempel waktu |
details.inviter.email |
target.user.email_addresses |
Dipetakan secara langsung |
details.inviter.id |
target.user.product_object_id |
Dipetakan secara langsung |
details.inviter.name |
target.user.user_display_name |
Dipetakan secara langsung |
details.inviter.team |
target.user.group_identifiers |
Dipetakan secara langsung |
details.reason |
security_result.description |
Dipetakan secara langsung; jika array, digabungkan dengan koma |
details.type |
about.resource.attribute.labels |
Dipetakan langsung dengan kunci details.type |
details.type |
security_result.summary |
Dipetakan secara langsung |
entity.app.id |
target.resource.id |
Dipetakan secara langsung |
entity.app.name |
target.resource.name |
Dipetakan secara langsung |
entity.channel.id |
target.resource.id |
Dipetakan secara langsung |
entity.channel.name |
target.resource.name |
Dipetakan secara langsung |
entity.channel.privacy |
target.resource.attribute.labels |
Dipetakan langsung dengan kunci entity.channel.privacy |
entity.file.filetype |
target.resource.attribute.labels |
Dipetakan langsung dengan kunci entity.file.filetype |
entity.file.id |
target.resource.id |
Dipetakan secara langsung |
entity.file.name |
target.resource.name |
Dipetakan secara langsung |
entity.file.title |
target.resource.attribute.labels |
Dipetakan langsung dengan kunci entity.file.title |
entity.huddle.date_end |
about.resource.attribute.labels |
Dipetakan langsung dengan kunci entity.huddle.date_end |
entity.huddle.date_start |
about.resource.attribute.labels |
Dipetakan langsung dengan kunci entity.huddle.date_start |
entity.huddle.id |
about.resource.attribute.labels |
Dipetakan langsung dengan kunci entity.huddle.id |
entity.huddle.participants.0 |
about.resource.attribute.labels |
Dipetakan langsung dengan kunci entity.huddle.participants.0 |
entity.huddle.participants.1 |
about.resource.attribute.labels |
Dipetakan langsung dengan kunci entity.huddle.participants.1 |
entity.type |
target.resource.resource_subtype |
Dipetakan secara langsung |
entity.user.email |
target.user.email_addresses |
Dipetakan secara langsung |
entity.user.id |
target.user.product_object_id |
Dipetakan secara langsung |
entity.user.name |
target.user.user_display_name |
Dipetakan secara langsung |
entity.user.team |
target.user.group_identifiers |
Dipetakan secara langsung |
entity.workflow.id |
target.resource.id |
Dipetakan secara langsung |
entity.workflow.name |
target.resource.name |
Dipetakan secara langsung |
id |
metadata.product_log_id |
Dipetakan secara langsung |
ip |
principal.ip |
Dipetakan secara langsung |
user_agent |
network.http.user_agent |
Dipetakan secara langsung |
user_id |
principal.user.product_object_id |
Dipetakan secara langsung |
username |
principal.user.product_object_id |
Dipetakan secara langsung |
metadata.event_type |
Defaultnya adalah USER_COMMUNICATION; ditetapkan ke USER_CREATION jika tindakan adalah user_created, USER_LOGIN jika tindakan adalah user_login atau user_login_failed, USER_LOGOUT jika tindakan adalah user_logout, USER_RESOURCE_ACCESS jika tindakan cocok dengan file_, USER_RESOURCE_UPDATE_PERMISSIONS jika tindakan cocok dengan app_, private_, public_, atau auth_policy_, USER_CHANGE_PERMISSIONS jika tindakan cocok dengan pref, legal_hold_, workflow_, channel_, user_deactivated, user_reactivated, role_change_, atau user_channel_ |
|
metadata.log_type |
Hardcode ke SLACK_AUDIT |
|
metadata.product_name |
Disetel ke Enterprise Grid jika date_create ada, atau Audit Logs jika user_id ada |
|
metadata.vendor_name |
Hardcode ke Slack |
|
extensions.auth.mechanism |
Hardcode ke REMOTE |
|
extensions.auth.type |
Disetel ke SSO jika tindakan berisi user_login atau user_logout, jika tidak MACHINE |
|
security_result.action |
Nilai defaultnya adalah ALLOW; setel ke BLOCK jika tindakan adalah user_login_failed |
|
target.application |
Disetel ke Slack jika date_create ada, atau SLACK jika user_id ada |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.