Slack-Audit-Logs erfassen
In diesem Leitfaden wird beschrieben, wie Sie Slack-Audit-Logs mit Google Cloud Run Functions oder Amazon S3 mit AWS Lambda in Google Security Operations aufnehmen.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Google SecOps-Instanz.
- Slack Enterprise Grid-Abo mit Organisationsinhaber- oder Administrator-Zugriff.
- Privilegierter Zugriff auf Folgendes:
- Google Cloud (für Option 1: Cloud Run Functions und Cloud Scheduler) oder
- AWS (für Option 2: S3, IAM, Lambda, EventBridge).
Voraussetzungen für das Erfassen von Slack-Audit-Logs (App-ID, OAuth-Token, Organisations-ID)
Für die Slack Audit Logs API ist ein User-OAuth-Token mit dem Bereich auditlogs:read erforderlich. Dieses Token muss durch die Installation einer App auf Enterprise Grid-Organisationsebene und nicht auf Arbeitsbereichsebene abgerufen werden.
Slack-App für Audit-Logs erstellen
- Melden Sie sich mit einem Konto als Organisationsinhaber oder Administrator in der Slack-Admin-Konsole an.
- Rufen Sie https://api.slack.com/apps auf und klicken Sie auf Create New App > From scratch (Neue App erstellen > Von Grund auf).
- Geben Sie die folgenden Konfigurationsdetails an:
- App-Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
Google SecOps Audit Integration. - Arbeitsbereich für die Entwicklung Ihrer App auswählen: Wählen Sie Ihren Slack-Entwicklungsarbeitsbereich aus (ein beliebiger Arbeitsbereich in der Organisation).
- App-Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
- Klicken Sie auf Anwendung erstellen.
OAuth-Bereiche konfigurieren
- Rufen Sie in der linken Seitenleiste OAuth & Permissions (OAuth und Berechtigungen) auf.
- Scrollen Sie nach unten zum Abschnitt Bereiche.
- Klicken Sie unter Bereiche für Nutzer-Token (NICHT Bereiche für Bot-Token) auf OAuth-Bereich hinzufügen.
- Fügen Sie den Bereich
auditlogs:readhinzu.
Öffentlichen Vertrieb aktivieren
- Klicken Sie in der linken Seitenleiste auf Manage Distribution (Verteilung verwalten).
- Prüfen Sie unter Anwendung für andere Arbeitsbereiche freigeben, ob alle vier Abschnitte grüne Häkchen haben:
- Fest codierte Informationen entfernen
- Öffentliche Bereitstellung aktivieren
- Weiterleitungs-URL festlegen
- OAuth-Bereich hinzufügen
- Klicken Sie auf Öffentliche Verteilung aktivieren.
App in einer Enterprise Grid-Organisation installieren
- Rufen Sie in der linken Seitenleiste OAuth & Permissions (OAuth und Berechtigungen) auf.
- Klicken Sie auf In Organisation installieren (NICHT „Im Workspace installieren“).
WICHTIG:Prüfen Sie im Drop-down-Menü rechts oben auf dem Installationsbildschirm, ob Sie die App in der Unternehmensorganisation und nicht in einem einzelnen Arbeitsbereich installieren.
- Prüfen Sie die angeforderten Berechtigungen und klicken Sie auf Zulassen.
- Nach Abschluss der Autorisierung werden Sie zur Seite „OAuth und Berechtigungen“ zurückgeleitet.
Anmeldedaten abrufen
- Suchen Sie unter OAuth-Tokens für Ihren Arbeitsbereich nach dem OAuth-Nutzer-Token.
- Kopieren und speichern Sie das Token, das mit
xoxp-beginnt (z. B.xoxp-1234567890-0987654321-1234567890-abc123def456).
Wichtig:Dies ist Ihr SLACK_ADMIN_TOKEN für die Lambda-Funktion oder Cloud Run-Funktion. Bewahren Sie sie an einem sicheren Ort auf.
- Notieren Sie sich Ihre Organisations-ID:
- Rufen Sie die Slack-Admin-Konsole auf.
- Gehen Sie zu Einstellungen und Berechtigungen > Organisationseinstellungen.
- Kopieren Sie die Organisations-ID.
Option 1: Export von Slack-Audit-Logs mit Google Cloud Run Functions konfigurieren
Bei dieser Option werden Google Cloud Run Functions und Cloud Scheduler verwendet, um Slack-Audit-Logs zu erfassen und direkt in Google SecOps aufzunehmen.
Verzeichnis einrichten
- Erstellen Sie auf Ihrem lokalen Computer ein neues Verzeichnis für die Bereitstellung der Cloud Run-Funktion.
- Laden Sie die folgenden Dateien aus dem GitHub-Repository für Chronicle-Aufnahmeskripts herunter:
- Laden Sie aus dem Ordner slack Folgendes herunter:
.env.ymlmain.pyrequirements.txt
- Laden Sie das gesamte Verzeichnis common mit allen Dateien aus dem Stammverzeichnis des Repositorys herunter:
common/__init__.pycommon/auth.pycommon/env_constants.pycommon/ingest.pycommon/status.pycommon/utils.py
- Laden Sie aus dem Ordner slack Folgendes herunter:
- Legen Sie alle heruntergeladenen Dateien in Ihrem Bereitstellungsverzeichnis ab.
Die Verzeichnisstruktur sollte so aussehen:
deployment_directory/
├─common/
│ ├─__init__.py
│ ├─auth.py
│ ├─env_constants.py
│ ├─ingest.py
│ ├─status.py
│ └─utils.py
├─.env.yml
├─main.py
└─requirements.txt
Secrets in Google Secret Manager erstellen
- Rufen Sie in der Google Cloud Console Sicherheit > Secret Manager auf.
- Klicken Sie auf Secret erstellen.
- Geben Sie die folgenden Konfigurationsdetails für das Chronicle-Dienstkonto an:
- Name: Geben Sie
chronicle-service-accountein. - Secret value (Geheimer Wert): Fügen Sie den Inhalt Ihrer JSON-Datei für die Google SecOps-Aufnahmeauthentifizierung ein.
- Name: Geben Sie
- Klicken Sie auf Secret erstellen.
- Kopieren Sie den Namen der Secret-Ressource im Format
projects/<PROJECT_ID>/secrets/chronicle-service-account/versions/latest. - Klicken Sie noch einmal auf Secret erstellen, um ein zweites Secret zu erstellen.
- Geben Sie die folgenden Konfigurationsdetails für das Slack-Token an:
- Name: Geben Sie
slack-admin-tokenein. - Geheimer Schlüsselwert: Fügen Sie Ihr Slack-Nutzer-OAuth-Token (beginnend mit
xoxp-) ein.
- Name: Geben Sie
- Klicken Sie auf Secret erstellen.
- Kopieren Sie den Namen der Secret-Ressource im Format
projects/<PROJECT_ID>/secrets/slack-admin-token/versions/latest.
Erforderliche Laufzeit-Umgebungsvariablen festlegen
- Öffnen Sie die Datei
.env.ymlin Ihrem Bereitstellungsverzeichnis. - Konfigurieren Sie die Umgebungsvariablen mit Ihren Werten:
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"
Ersetzen Sie Folgendes:
<your-chronicle-customer-id>: Ihre Google SecOps-Kunden-ID.<PROJECT_ID>: Ihre Google Cloud-Projekt-ID.- CHRONICLE_REGION: Auf Ihre Google SecOps-Region festgelegt. Gültige Werte:
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: Häufigkeitsintervall (in Minuten), in dem die Funktion ausgeführt wird. Diese Dauer muss mit dem Intervall des Cloud Scheduler-Jobs übereinstimmen.
- Speichern Sie die Datei
.env.yml.
Cloud Run-Funktion bereitstellen
- Öffnen Sie ein Terminal oder eine Cloud Shell in der Google Cloud Console.
- Wechseln Sie zu Ihrem Bereitstellungsverzeichnis:
cd /path/to/deployment_directory
- Führen Sie den folgenden Befehl aus, um die Cloud Run-Funktion bereitzustellen:
gcloud functions deploy slack-audit-to-chronicle \
--entry-point main \
--trigger-http \
--runtime python39 \
--env-vars-file .env.yml \
--timeout 300s \
--memory 512MB \
--service-account <SERVICE_ACCOUNT_EMAIL>
Ersetzen Sie <SERVICE_ACCOUNT_EMAIL> durch die E-Mail-Adresse des Dienstkontos, das von Ihrer Cloud Run-Funktion verwendet werden soll.
- Warten Sie, bis die Bereitstellung abgeschlossen ist.
- Notieren Sie sich nach der Bereitstellung die Funktions-URL aus der Ausgabe.
Cloud Scheduler einrichten
- Rufen Sie in der Google Cloud Console Cloud Scheduler > Job erstellen auf.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie
slack-audit-schedulerein. - Region: Wählen Sie dieselbe Region aus, in der Sie die Cloud Run-Funktion bereitgestellt haben.
- Häufigkeit: Geben Sie
*/5 * * * *ein (wird alle 5 Minuten ausgeführt, passend zum WertPOLL_INTERVAL). - Zeitzone: Wählen Sie UTC aus.
- Zieltyp: Wählen Sie HTTP aus.
- URL: Geben Sie die Cloud Run-Funktions-URL aus der Bereitstellungsausgabe ein.
- HTTP-Methode: Wählen Sie POST aus.
- Auth-Header: Wählen Sie OIDC-Token hinzufügen aus.
- Dienstkonto: Wählen Sie dasselbe Dienstkonto aus, das für die Cloud Run-Funktion verwendet wird.
- Name: Geben Sie
- Klicken Sie auf Erstellen.
Option 2: Slack-Audit-Logs-Export mit AWS S3 konfigurieren
Bei dieser Option werden AWS Lambda verwendet, um Slack-Audit-Logs zu erfassen und in S3 zu speichern. Anschließend wird ein Google SecOps-Feed konfiguriert, um die Logs aufzunehmen.
AWS S3-Bucket und IAM für Google SecOps konfigurieren
- Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu der Anleitung unter Bucket erstellen.
- Speichern Sie den Namen und die Region des Buckets zur späteren Verwendung (z. B.
slack-audit-logs). - Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Abschnitt Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
- Wählen Sie Drittanbieterdienst als Anwendungsfall aus.
- Klicken Sie auf Weiter.
- Optional: Fügen Sie ein Beschreibungstag hinzu.
- Klicken Sie auf Zugriffsschlüssel erstellen.
- Klicken Sie auf CSV-Datei herunterladen, um den Access Key (Zugriffsschlüssel) und den Secret Access Key (geheimer Zugriffsschlüssel) für die zukünftige Verwendung zu speichern.
- Klicken Sie auf Fertig.
- Wählen Sie den Tab Berechtigungen aus.
- Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
- Wählen Sie Berechtigungen hinzufügen aus.
- Wählen Sie Richtlinien direkt anhängen aus.
- Suchen Sie nach der Richtlinie AmazonS3FullAccess.
- Wählen Sie die Richtlinie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
IAM-Richtlinie und ‑Rolle für S3-Uploads konfigurieren
- Rufen Sie in der AWS-Konsole IAM > Richtlinien > Richtlinie erstellen > Tab „JSON“ auf.
- Kopieren Sie die Richtlinie unten und fügen Sie sie ein.
- Richtlinien-JSON (ersetzen Sie
slack-audit-logs, wenn Sie einen anderen Bucket-Namen eingegeben haben):
{
"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"
}
]
}
- Klicken Sie auf Weiter.
- Geben Sie den Richtliniennamen
SlackAuditS3Policyein. - Klicken Sie auf Richtlinie erstellen.
- Gehen Sie zu IAM > Rollen > Rolle erstellen > AWS-Service > Lambda.
- Hängen Sie die neu erstellte Richtlinie
SlackAuditS3Policyan. - Geben Sie der Rolle den Namen
SlackAuditToS3Roleund klicken Sie auf Rolle erstellen.
Lambda-Funktion erstellen
- Rufen Sie in der AWS Console Lambda > Funktionen > Funktion erstellen auf.
- Klicken Sie auf Von Grund auf erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
| Einstellung | Wert |
|---|---|
| Name | slack_audit_to_s3 |
| Laufzeit | Python 3.13 |
| Architektur | x86_64 |
| Ausführungsrolle | SlackAuditToS3Role |
- Klicken Sie auf Funktion erstellen.
- Nachdem die Funktion erstellt wurde, öffnen Sie den Tab Code, löschen Sie den Stub und fügen Sie den Code unten (
slack_audit_to_s3.py) ein.
#!/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"] # org-level user token with auditlogs:read
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")) # Slack recommends <= 200
MAX_PAGES = int(os.environ.get("MAX_PAGES", "20"))
LOOKBACK_SEC = int(os.environ.get("LOOKBACK_SECONDS", "3600")) # First-run window
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), empty means no filter
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
# Re-raise other HTTP errors
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 (one event per line).
Chronicle requires newline-delimited JSON, not a JSON array.
"""
entries = data.get("entries") or []
if not entries:
# No entries to write, skip file creation
return None
# Convert each entry to a single-line JSON string
lines = [json.dumps(entry, separators=(",", ":")) for entry in entries]
# Join with newlines to create JSONL format
body = "\n".join(lines).encode("utf-8")
# Write to S3
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 entries in JSONL format
written_key = _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())
- Klicken Sie auf Konfiguration > Umgebungsvariablen > Bearbeiten > Umgebungsvariable hinzufügen.
- Geben Sie die unten angegebenen Umgebungsvariablen ein und ersetzen Sie die Platzhalter durch Ihre Werte.
Umgebungsvariablen
| Schlüssel | Beispielwert |
|---|---|
S3_BUCKET |
slack-audit-logs |
S3_PREFIX |
slack/audit/ |
STATE_KEY |
slack/audit/state.json |
SLACK_AUDIT_TOKEN |
xoxp-*** (Nutzer-Token auf Organisationsebene mit auditlogs:read) |
LIMIT |
200 |
MAX_PAGES |
20 |
LOOKBACK_SECONDS |
3600 |
HTTP_TIMEOUT |
60 |
HTTP_RETRIES |
3 |
RETRY_AFTER_DEFAULT |
2 |
ACTIONS |
(optional, CSV) user_login,app_installed |
- Klicken Sie auf Speichern.
- Wählen Sie den Tab Konfiguration aus.
- Klicken Sie im Bereich Allgemeine Konfiguration auf Bearbeiten.
- Ändern Sie Zeitlimit in 5 Minuten (300 Sekunden) und klicken Sie auf Speichern.
EventBridge-Zeitplan erstellen
- Gehen Sie zu Amazon EventBridge > Scheduler > Create schedule (Amazon EventBridge > Scheduler > Zeitplan erstellen).
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie
slack-audit-1hein. - Wiederkehrender Zeitplan: Wählen Sie Ratenbasierter Zeitplan aus.
- Raten-Ausdruck: Geben Sie
1Stunden ein. - Flexibles Zeitfenster: Wählen Sie Aus aus.
- Name: Geben Sie
- Klicken Sie auf Weiter.
- Wählen Sie Ziel aus:
- Ziel-API: Wählen Sie AWS Lambda Invoke aus.
- Lambda-Funktion: Wählen Sie
slack_audit_to_s3aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Weiter (optionale Einstellungen überspringen).
- Prüfen Sie den Zeitplan und klicken Sie auf Zeitplan erstellen.
(Optional) IAM-Nutzer mit Lesezugriff und Schlüssel für Google SecOps erstellen
- Rufen Sie die AWS-Konsole > IAM > Nutzer > Nutzer erstellen auf.
- Geben Sie die folgenden Konfigurationsdetails an:
- Nutzername: Geben Sie
secops-readerein. - Zugriffstyp: Wählen Sie Programmatischer Zugriff aus.
- Nutzername: Geben Sie
- Klicken Sie auf Weiter.
- Wählen Sie Richtlinien direkt anhängen aus.
- Klicken Sie auf Richtlinie erstellen.
- Fügen Sie auf dem Tab JSON Folgendes ein:
{
"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"
}
]
}
- Klicken Sie auf Weiter.
- Geben Sie den Richtliniennamen
secops-reader-policyein. - Klicken Sie auf Richtlinie erstellen.
- Kehren Sie zur Seite zur Nutzererstellung zurück, aktualisieren Sie die Richtlinienliste und wählen Sie
secops-reader-policyaus. - Klicken Sie auf Weiter.
- Klicken Sie auf Nutzer erstellen.
- Wählen Sie den erstellten Nutzer
secops-readeraus. - Rufen Sie Sicherheitsanmeldedaten > Zugriffsschlüssel > Zugriffsschlüssel erstellen auf.
- Wählen Sie Drittanbieterdienst aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Zugriffsschlüssel erstellen.
- Klicken Sie auf CSV-Datei herunterladen, um die Anmeldedaten zu speichern.
Feed in Google SecOps konfigurieren, um Slack-Audit-Logs aufzunehmen
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neu hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Slack Audit Logs. - Wählen Sie Amazon S3 V2 als Quelltyp aus.
- Wählen Sie Slack Audit als Logtyp aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- S3-URI:
s3://slack-audit-logs/slack/audit/ - Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus.
- Maximales Dateialter: Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
- Zugriffsschlüssel-ID: Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket (aus
secops-reader). - Geheimer Zugriffsschlüssel: Der geheime Schlüssel des Nutzers mit Zugriff auf den S3-Bucket (aus
secops-reader). - Asset-Namespace: Der Asset-Namespace.
- Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
- S3-URI:
- Klicken Sie auf Weiter.
- Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
action |
metadata.product_event_type |
Direkt aus dem Feld action im Rohlog zugeordnet. |
actor.type |
principal.labels.value |
Direkt aus dem Feld actor.type zugeordnet, mit dem Schlüssel actor.type. |
actor.user.email |
principal.user.email_addresses |
Direkt aus dem Feld actor.user.email zugeordnet. |
actor.user.id |
principal.user.product_object_id |
Direkt aus dem Feld actor.user.id zugeordnet. |
actor.user.id |
principal.user.userid |
Direkt aus dem Feld actor.user.id zugeordnet. |
actor.user.name |
principal.user.user_display_name |
Direkt aus dem Feld actor.user.name zugeordnet. |
actor.user.team |
principal.user.group_identifiers |
Direkt aus dem Feld actor.user.team zugeordnet. |
context.ip_address |
principal.ip |
Direkt aus dem Feld context.ip_address zugeordnet. |
context.location.domain |
about.resource.attribute.labels.value |
Direkt aus dem Feld context.location.domain zugeordnet, mit dem Schlüssel context.location.domain. |
context.location.id |
about.resource.id |
Direkt aus dem Feld context.location.id zugeordnet. |
context.location.name |
about.resource.name |
Direkt aus dem Feld context.location.name zugeordnet. |
context.location.name |
about.resource.attribute.labels.value |
Direkt aus dem Feld context.location.name zugeordnet, mit dem Schlüssel context.location.name. |
context.location.type |
about.resource.resource_subtype |
Direkt aus dem Feld context.location.type zugeordnet. |
context.session_id |
network.session_id |
Direkt aus dem Feld context.session_id zugeordnet. |
context.ua |
network.http.user_agent |
Direkt aus dem Feld context.ua zugeordnet. |
context.ua |
network.http.parsed_user_agent |
Geparte User-Agent-Informationen, die aus dem Feld context.ua mit dem Filter parseduseragent abgeleitet wurden. |
country |
principal.location.country_or_region |
Direkt aus dem Feld country zugeordnet. |
date_create |
metadata.event_timestamp.seconds |
Der Epoch-Zeitstempel aus dem Feld date_create wird in ein Zeitstempelobjekt konvertiert. |
details.inviter.email |
target.user.email_addresses |
Direkt aus dem Feld details.inviter.email zugeordnet. |
details.inviter.id |
target.user.product_object_id |
Direkt aus dem Feld details.inviter.id zugeordnet. |
details.inviter.name |
target.user.user_display_name |
Direkt aus dem Feld details.inviter.name zugeordnet. |
details.inviter.team |
target.user.group_identifiers |
Direkt aus dem Feld details.inviter.team zugeordnet. |
details.reason |
security_result.description |
Direkt aus dem Feld details.reason zugeordnet oder, falls es sich um ein Array handelt, durch Kommas verkettet. |
details.type |
about.resource.attribute.labels.value |
Direkt aus dem Feld details.type zugeordnet, mit dem Schlüssel details.type. |
details.type |
security_result.summary |
Direkt aus dem Feld details.type zugeordnet. |
entity.app.id |
target.resource.id |
Direkt aus dem Feld entity.app.id zugeordnet. |
entity.app.name |
target.resource.name |
Direkt aus dem Feld entity.app.name zugeordnet. |
entity.channel.id |
target.resource.id |
Direkt aus dem Feld entity.channel.id zugeordnet. |
entity.channel.name |
target.resource.name |
Direkt aus dem Feld entity.channel.name zugeordnet. |
entity.channel.privacy |
target.resource.attribute.labels.value |
Direkt aus dem Feld entity.channel.privacy zugeordnet, mit dem Schlüssel entity.channel.privacy. |
entity.file.filetype |
target.resource.attribute.labels.value |
Direkt aus dem Feld entity.file.filetype zugeordnet, mit dem Schlüssel entity.file.filetype. |
entity.file.id |
target.resource.id |
Direkt aus dem Feld entity.file.id zugeordnet. |
entity.file.name |
target.resource.name |
Direkt aus dem Feld entity.file.name zugeordnet. |
entity.file.title |
target.resource.attribute.labels.value |
Direkt aus dem Feld entity.file.title zugeordnet, mit dem Schlüssel entity.file.title. |
entity.huddle.date_end |
about.resource.attribute.labels.value |
Direkt aus dem Feld entity.huddle.date_end zugeordnet, mit dem Schlüssel entity.huddle.date_end. |
entity.huddle.date_start |
about.resource.attribute.labels.value |
Direkt aus dem Feld entity.huddle.date_start zugeordnet, mit dem Schlüssel entity.huddle.date_start. |
entity.huddle.id |
about.resource.attribute.labels.value |
Direkt aus dem Feld entity.huddle.id zugeordnet, mit dem Schlüssel entity.huddle.id. |
entity.huddle.participants.0 |
about.resource.attribute.labels.value |
Direkt aus dem Feld entity.huddle.participants.0 zugeordnet, mit dem Schlüssel entity.huddle.participants.0. |
entity.huddle.participants.1 |
about.resource.attribute.labels.value |
Direkt aus dem Feld entity.huddle.participants.1 zugeordnet, mit dem Schlüssel entity.huddle.participants.1. |
entity.type |
target.resource.resource_subtype |
Direkt aus dem Feld entity.type zugeordnet. |
entity.user.email |
target.user.email_addresses |
Direkt aus dem Feld entity.user.email zugeordnet. |
entity.user.id |
target.user.product_object_id |
Direkt aus dem Feld entity.user.id zugeordnet. |
entity.user.name |
target.user.user_display_name |
Direkt aus dem Feld entity.user.name zugeordnet. |
entity.user.team |
target.user.group_identifiers |
Direkt aus dem Feld entity.user.team zugeordnet. |
entity.workflow.id |
target.resource.id |
Direkt aus dem Feld entity.workflow.id zugeordnet. |
entity.workflow.name |
target.resource.name |
Direkt aus dem Feld entity.workflow.name zugeordnet. |
id |
metadata.product_log_id |
Direkt aus dem Feld id zugeordnet. |
ip |
principal.ip |
Direkt aus dem Feld ip zugeordnet. Wird durch Logik basierend auf dem Feld action bestimmt. Der Standardwert ist USER_COMMUNICATION. Er ändert sich jedoch in andere Werte wie USER_CREATION, USER_LOGIN, USER_LOGOUT, USER_RESOURCE_ACCESS, USER_RESOURCE_UPDATE_PERMISSIONS oder USER_CHANGE_PERMISSIONS, je nach Wert von action. Fest codiert auf „SLACK_AUDIT“. Auf „Enterprise Grid“ festlegen, wenn date_create vorhanden ist, andernfalls auf „Audit-Logs“, wenn user_id vorhanden ist. Fest codiert auf „Slack“. Fest codiert auf „REMOTE“. Auf „SSO“ festgelegt, wenn action „user_login“ oder „user_logout“ enthält. Andernfalls auf „MACHINE“ setzen. In den bereitgestellten Beispielen nicht zugeordnet. Der Standardwert ist „ALLOW“, wird aber auf „BLOCK“ gesetzt, wenn action „user_login_failed“ ist. Auf „Slack“ setzen, wenn date_create vorhanden ist, andernfalls auf „SLACK“, wenn user_id vorhanden ist. |
user_agent |
network.http.user_agent |
Direkt aus dem Feld user_agent zugeordnet. |
user_id |
principal.user.product_object_id |
Direkt aus dem Feld user_id zugeordnet. |
username |
principal.user.product_object_id |
Direkt aus dem Feld username zugeordnet. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten