Slack 監査ログを収集する
このドキュメントでは、Google Cloud Run 関数または AWS Lambda を使用した Amazon S3 のいずれかを使用して、Slack 監査ログを Google Security Operations に取り込む方法について説明します。
Slack 監査ログは、Slack Enterprise Grid 組織全体で発生したセキュリティ関連のイベントの詳細な記録を提供します。監査ログ API を使用すると、コンプライアンスとセキュリティ モニタリングを目的として、ログイン、ファイルのダウンロード、アプリのインストール、管理上の変更などのユーザー アクションをモニタリングできます。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス。
組織オーナー権限を持つ Slack Enterprise Grid プラン。
次のいずれかに対する特権アクセス権:
- Google Cloud (オプション 1: Cloud Run functions と Cloud Scheduler の場合)。
- AWS(オプション 2: S3、IAM、Lambda、EventBridge)。
Slack の認証情報を収集する
Slack アプリを作成する
Slack Audit Logs API には、auditlogs:read スコープのユーザー OAuth トークンが必要です。このトークンは、ワークスペース レベルではなく、Enterprise Grid 組織レベルでアプリをインストールして取得する必要があります。
- Enterprise Grid 組織のオーナーとして Slack にログインします。
- Slack API アプリのページに移動します。
- [新しいアプリを作成] をクリックします。
- [From scratch] を選択します。
- 次の構成情報を指定します。
- アプリ名: わかりやすい名前を入力します(例:
Google SecOps Audit Integration)。 - アプリを開発するワークスペースを選択する: 開発用 Slack ワークスペース(組織内の任意のワークスペース)を選択します。
- アプリ名: わかりやすい名前を入力します(例:
- [アプリを作成] をクリックします。
OAuth スコープを構成する
- アプリの設定ページで、左側のナビゲーションから [OAuth & Permissions] を選択します。
- [スコープ] セクションに移動します。
- [User Token Scopes](Bot Token Scopes ではない)で、[Add an OAuth Scope] をクリックします。
- 次のスコープを追加します。
auditlogs:read- このスコープにより、Enterprise Grid 組織の Audit Logs API へのアクセスが可能になります。
- [ボットトークンのスコープ] で、[OAuth スコープを追加] をクリックします。
- 次のスコープを追加します。
users:read- 組織レベルでアプリをインストールできるようにします。
Enterprise 組織にアプリをインストールする
Audit Logs API は Enterprise 組織全体のイベントを読み取るため、アプリは単一のワークスペースではなく組織レベルでインストールする必要があります。Slack では、これを行う 2 つの方法が記載されています。どちらも同じ組織レベルのユーザー OAuth トークンを生成します。いずれか 1 つを使用します。
オプション A: アプリの設定からインストールする(組織レベルのアプリ)
これは、Slack のエンタープライズ組織向けのアプリ開発ページのパスです。リダイレクト URL、公開配布、ウェブ サービスは必要ありません。
- アプリの設定ページで、左側のナビゲーションから [組織レベルのアプリ] を選択します。
- [オプトイン] をクリックします。
確認プロンプトで [はい、オプトインします] をクリックします。
Enterprise 組織のオーナーとしてログインします。
左側のナビゲーションで [OAuth と権限] を選択します。
[Install to Organization] をクリックします。
確認画面でリクエストされた権限を確認し、[許可] をクリックします。
オプション B: 公開配布と共有可能な URL
これは、Slack の Audit Logs API ページのパスです。公開配布を有効にしても、アプリが Slack Marketplace に掲載されるわけではありません。開発ワークスペース外でのインストールのみが許可されます。
- アプリの設定ページで、左側のナビゲーションから [OAuth & Permissions] を選択します。
[リダイレクト URL] セクションで、[新しいリダイレクト URL を追加] をクリックし、URL を入力して [追加] をクリックし、[URL を保存] をクリックします。
左側のナビゲーションから [配布の管理] を選択します。
[Share Your App with Other Workspaces] で、4 つのチェックリスト セクションすべてに緑色のチェックマークが表示されていることを確認します。セクションに赤い X が表示されている場合は、セクションを開いて必要な操作を行います。
[I've reviewed and removed any hard-coded information] チェックボックスをオンにします。
[Activate Public Distribution](公開配信を有効にする)をクリックします。
エンタープライズ組織のオーナーとしてログインします。
[Share Your App with Your Workspace] で、[Sharable URL] をコピーしてブラウザで開きます。
インストール画面で、右上にあるプルダウンを開き、個人のワークスペースではなく、エンタープライズ組織を選択します。
リクエストされた権限を確認し、[許可] をクリックします。
認証情報を取得する
- インストールが完了すると、[OAuth と権限] ページに戻ります。
- [OAuth トークン] セクションで、[ユーザー OAuth トークン] を見つけます。
- トークンは
xoxp-で始まります。 [コピー] をクリックし、このトークンを安全に保存します。
重要: これは、Cloud Run 関数または Lambda 関数の
SLACK_ADMIN_TOKENです。安全に保管してください。Enterprise Grid 組織内のすべての監査ログに対する読み取りアクセス権が付与されます。組織 ID をメモします。
- 組織の URL(例:
acmeinc.enterprise.slack.com)を使用して、ウェブブラウザで Slack を開きます。 - ページが読み込まれたら、URL を読み取ります。形式は
https://app.slack.com/client/EXXXXXXX/CXXXXXXXです。 Eで始まる文字列をコピーします。これが組織 ID です。
- 組織の URL(例:
権限を確認する
アプリに必要な権限があることを確認するには:
- Slack API アプリのページに移動します。
- アプリを選択
- 左側のナビゲーションで [OAuth と権限] を選択します。
- [OAuth トークン] で、ユーザー OAuth トークン(
xoxp-で始まる)が表示されていることを確認します。 - [スコープ] で、[ユーザー トークン スコープ] に
auditlogs:readが表示されていることを確認します。
テスト API へのアクセス
統合に進む前に、トークンをテストします。
SLACK_TOKEN="xoxp-your-token-here" curl -H "Authorization: Bearer $SLACK_TOKEN" \ "https://api.slack.com/audit/v1/logs?limit=1"
成功したレスポンスには、監査ログイベントを含む entries 配列が含まれます。invalid_auth エラーまたは missing_scope エラーが表示された場合は、トークンとスコープを確認します。
オプション 1: Google Cloud Run functions を使用して Slack 監査ログのエクスポートを構成する
このオプションでは、Google Cloud Run functions と Cloud Scheduler を使用して Slack Audit Logs を収集し、Google SecOps 取り込みスクリプトを使用して Google SecOps に直接取り込みます。
始める前に(オプション 1)
次の追加の前提条件を満たしていることを確認します。
- 次の API が有効になっている Google Cloud プロジェクト。
- Cloud Run Admin API
- Eventarc API
- Pub/Sub API
- Cloud Scheduler API
- Secret Manager API
- Cloud Run functions、Pub/Sub トピック、Eventarc トリガー、Cloud Scheduler ジョブ、Secret Manager のシークレットを作成する権限。
- Google SecOps サービス アカウントの JSON ファイル。
Google SecOps サービス アカウントを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- [ダウンロード] をクリックして、取り込み認証ファイルをダウンロードします。
- JSON ファイルを安全に保存します。これは、Google Secret Manager でシークレットとしてアップロードします。
関数コードを準備する
Google SecOps ingestion-scripts GitHub リポジトリからデプロイ ファイルをダウンロードします。
slackフォルダから、次のものをダウンロードします。.env.ymlmain.pyrequirements.txt
リポジトリのルートから、
commonディレクトリとそのすべてのファイルをダウンロードします。デプロイ ディレクトリの構造は次のようになります。
``` deployment_directory/ ├── common/ │ ├── __init__.py │ ├── auth.py │ ├── env_constants.py │ ├── ingest.py │ ├── status.py │ └── utils.py ├── .env.yml ├── main.py └── requirements.txt ```
Google Secret Manager でシークレットを構成する
Cloud Run 関数が安全にアクセスできるように、機密性の高い認証情報を Secret Manager に保存します。
Google SecOps サービス アカウントのシークレットを作成する
- Google Cloud コンソールで、[セキュリティ] > [Secret Manager] に移動します。
- [シークレットの作成] をクリックします。
- 次の構成情報を指定します。
- 名前: 「
chronicle-service-account」と入力します。 - シークレット値: Google SecOps サービス アカウントの JSON ファイルの内容全体を貼り付けます。
- 名前: 「
- [シークレットの作成] をクリックします。
シークレットのリソース名をコピーします。書式は次のとおりです。
projects/PROJECT_ID/secrets/chronicle-service-account/versions/latest
Slack トークンのシークレットを作成する
- [Secret Manager] ページで、[シークレットを作成] をクリックします。
- 次の構成情報を指定します。
- 名前: 「
slack-admin-token」と入力します。 - シークレット値: Slack ユーザーの OAuth トークン(
xoxp-で始まる)を貼り付けます。
- 名前: 「
- [シークレットの作成] をクリックします。
シークレットのリソース名をコピーします。書式は次のとおりです。
projects/PROJECT_ID/secrets/slack-admin-token/versions/latest
環境変数を構成する
デプロイ ディレクトリにある
.env.ymlファイルを開き、環境変数を構成します。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"次のように置き換えます。
<your-chronicle-customer-id>: Google SecOps のお客様 ID。<PROJECT_ID>: 実際の Google Cloud プロジェクト ID。CHRONICLE_REGION: Google SecOps リージョンに設定します。有効な値: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: 関数が実行される頻度(分単位)。この期間は、Cloud Scheduler ジョブの間隔と同じにする必要があります。
.env.ymlファイルを保存します。
Pub/Sub トピックの作成
Cloud Scheduler は、Pub/Sub トピックを介して Cloud Run 関数をトリガーします。
- GCP Console で、[Pub/Sub> トピック] に移動します。
- [トピックを作成] をクリックします。
- [トピック ID] フィールドに「
slack-audit-trigger」と入力します。 - [作成] をクリックします。
Cloud Run 関数をデプロイする
Google Cloud コンソールでターミナルまたは Cloud Shell を開きます。デプロイ ディレクトリに移動し、次のコマンドを実行します。
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<REGION>はリージョン(us-central1など)に置き換え、<SERVICE_ACCOUNT_EMAIL>は Cloud Run 関数で使用するサービス アカウントのメールアドレスに置き換えます。
次のように、関数の Pub/Sub トリガーを作成します。
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><PROJECT_ID>は、実際の Google Cloud プロジェクト ID に置き換えます。
デプロイが完了するまで待ちます。
Cloud Scheduler を設定する
- GCP Console で、[Cloud Scheduler] > [ジョブを作成] に移動します。
次の構成情報を提供してください。
設定 値 名前 slack-audit-schedulerリージョン Cloud Run functions の関数をデプロイしたリージョンと同じリージョンを選択します。 周波数 */5 * * * *(5 分間隔、POLL_INTERVAL値と一致)タイムゾーン タイムゾーンを選択(UTC を推奨) [続行] をクリックします。
[実行を構成する] セクションで、次の操作を行います。
- ターゲット タイプ: [Pub/Sub] を選択します。
- トピック:
slack-audit-triggerを選択します。 - メッセージ本文: 「
run」と入力します。
[作成] をクリックします。
スケジュールの頻度オプション
ログの量とレイテンシの要件に基づいて頻度を選択します。
| 頻度 | CRON 式 | ユースケース |
|---|---|---|
| 5 分おき | */5 * * * * |
標準(推奨) |
| 15 分ごと | */15 * * * * |
検索量が普通 |
| 1 時間ごと | 0 * * * * |
音量が小さい |
統合をテストする(オプション 1)
- Cloud Scheduler コンソールで、ジョブ(
slack-audit-scheduler)を見つけます。 - [強制実行] をクリックして、ジョブを手動でトリガーします。
- 数秒待ちます。
- Cloud Run に移動します。
- サービス名(
slack-audit-to-chronicle)をクリックします。 - [ログ] タブをクリックします。
関数が正常に実行されたことを確認します。以下のものを探します。
Retrieving the Slack Audit logs since: YYYY-MM-DDTHH:MM:SSZ Processing logs... Retrieved X audit logs from the API call Logs processed successfully.
オプション 2: AWS S3 を使用して Slack 監査ログのエクスポートを構成する
このオプションでは、AWS Lambda を使用して Slack 監査ログを収集し、Amazon S3 に保存してから、ログを取り込むように Google SecOps フィードを構成します。
始める前に(オプション 2)
次の追加の前提条件を満たしていることを確認します。
- S3 バケット、IAM ユーザー/ロール/ポリシー、Lambda 関数、EventBridge ルールを作成する権限を持つ AWS アカウント。
Amazon S3 バケットを作成する
- バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
- バケットの名前とリージョンを保存して、後で参照できるようにします(例:
slack-audit-logs)。
S3 アップロード用の IAM ポリシーとロールを構成する
- AWS コンソールで、[IAM] > [ポリシー] > [ポリシーの作成] > [JSON] タブに移動します。
次のポリシーをコピーして貼り付けます。別のバケット名を使用した場合は、
slack-audit-logsを置き換えます。{ "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" } ] }[次へ] をクリックします。
ポリシー名
SlackAuditS3Policyを入力します。[ポリシーを作成] をクリックします。
[IAM> ロール> ロールを作成> AWS サービス> Lambda] に移動します。
新しく作成したポリシー
SlackAuditS3Policyを関連付けます。ロールに「
SlackAuditToS3Role」という名前を付け、[ロールを作成] をクリックします。
Lambda 関数を作成する
- AWS コンソールで、[Lambda] > [Functions] > [Create function] に移動します。
- [Author from scratch] をクリックします。
次の構成情報を提供してください。
設定 値 名前 slack_audit_to_s3ランタイム Python 3.13 アーキテクチャ x86_64 実行ロール SlackAuditToS3Role[関数を作成] をクリックします。
関数が作成されたら、[コード] タブを開き、スタブを削除して次のコード(
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())
Lambda 環境変数を構成する
- [構成> 環境変数> 編集> 環境変数を追加] に移動します。
次の環境変数を入力し、実際の値に置き換えます。
キー 値の例 SLACK_AUDIT_TOKENxoxp-...(auditlogs:readを含む組織レベルのユーザー トークン)S3_BUCKETslack-audit-logsS3_PREFIXslack/audit/STATE_KEYslack-audit-state.jsonLIMIT200MAX_PAGES20LOOKBACK_SECONDS3600HTTP_TIMEOUT60HTTP_RETRIES3RETRY_AFTER_DEFAULT2ACTIONS(省略可、カンマ区切りのアクション フィルタ) [保存] をクリックします。
[構成] タブを選択します。[全般的な構成] パネルで [編集] をクリックします。
[タイムアウト] を
5 minutes(300 秒)に変更して、[保存] をクリックします。
EventBridge スケジュールを作成する
- Amazon EventBridge > Scheduler > スケジュールを作成に移動します。
- 次の構成情報を指定します。
- 名前: 「
slack-audit-1h」と入力します。 - 繰り返しスケジュール: [レートベースのスケジュール] を選択します。
- レート式: 「
1 hours」と入力します。 - 柔軟な時間枠: [オフ] を選択します。
- 名前: 「
- [次へ] をクリックします。
- [Select Target](ターゲットを選択):
- Target API: [AWS Lambda Invoke] を選択します。
- Lambda 関数:
slack_audit_to_s3を選択します。
- [次へ] をクリックします。
- [次へ] をクリックします(省略可能な設定はスキップします)。
- 確認して [スケジュールを作成] をクリックします。
(省略可)Google SecOps の読み取り専用 IAM ユーザーを作成する
- AWS コンソール > IAM > ユーザー > ユーザーを作成 に移動します。
- 次の構成情報を指定します。
- ユーザー名: 「
secops-reader」と入力します。 - アクセス権の種類: [プログラムによるアクセス] を選択します。
- ユーザー名: 「
- [次へ] をクリックします。
- [ポリシーを直接アタッチする] を選択します。
[ポリシーを作成] をクリックします。[JSON] タブに、次の内容を貼り付けます。
{ "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" } ] }[次へ] をクリックします。
ポリシー名
secops-reader-policyを入力します。[ポリシーを作成] をクリックします。
ユーザー作成ページに戻り、ポリシー リストを更新して
secops-reader-policyを選択します。[次へ] をクリックします。
[Create user] をクリックします。
作成したユーザー
secops-readerを選択します。[セキュリティ認証情報] > [アクセスキー] > [アクセスキーを作成] に移動します。
[サードパーティ サービス] を選択します。
[次へ] をクリックします。
[アクセスキーを作成] をクリックします。
[.csv ファイルをダウンロード] をクリックして、認証情報を保存します。
Slack 監査ログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- [単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
Slack Audit Logs)。 - [ソースタイプ] として [Amazon S3 V2] を選択します。
- [ログタイプ] として [Slack Audit] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
S3 URI: 接頭辞パスを含む S3 バケット URI を入力します。
``` s3://slack-audit-logs/slack/audit/ ``` Replace `slack-audit-logs` with your actual S3 bucket name.Source deletion option: 必要に応じて削除オプションを選択します。
ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。
アクセスキー ID: S3 バケットにアクセスできるユーザー アクセスキー(
secops-readerIdentity and Access Management(IAM)ユーザーから)。シークレット アクセスキー: S3 バケットにアクセスできるユーザーのシークレット キー(
secops-readerIAM ユーザーから)。アセットの名前空間: アセットの名前空間。
Ingestion labels: このフィードのイベントに適用されるラベル。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
action |
metadata.product_event_type |
action フィールドから直接マッピングされます |
actor.type |
principal.labels |
キー actor.type で直接マッピングされます |
actor.user.email |
principal.user.email_addresses |
直接マッピングされます。 |
actor.user.id |
principal.user.product_object_id |
直接マッピングされます。 |
actor.user.id |
principal.user.userid |
直接マッピングされます。 |
actor.user.name |
principal.user.user_display_name |
直接マッピングされます。 |
actor.user.team |
principal.user.group_identifiers |
直接マッピングされます。 |
context.ip_address |
principal.ip |
直接マッピングされます。 |
context.location.domain |
about.resource.attribute.labels |
キー context.location.domain で直接マッピングされます |
context.location.id |
about.resource.id |
直接マッピングされます。 |
context.location.name |
about.resource.name |
直接マッピングされます。 |
context.location.name |
about.resource.attribute.labels |
キー context.location.name で直接マッピングされます |
context.location.type |
about.resource.resource_subtype |
直接マッピングされます。 |
context.session_id |
network.session_id |
直接マッピングされます。 |
context.ua |
network.http.user_agent |
直接マッピングされます。 |
context.ua |
network.http.parsed_user_agent |
context.ua フィールドから取得された解析済みのユーザー エージェント |
country |
principal.location.country_or_region |
直接マッピングされます。 |
date_create |
metadata.event_timestamp.seconds |
エポック タイムスタンプをタイムスタンプ オブジェクトに変換 |
details.inviter.email |
target.user.email_addresses |
直接マッピングされます。 |
details.inviter.id |
target.user.product_object_id |
直接マッピングされます。 |
details.inviter.name |
target.user.user_display_name |
直接マッピングされます。 |
details.inviter.team |
target.user.group_identifiers |
直接マッピングされます。 |
details.reason |
security_result.description |
直接マッピングされます。配列の場合は、カンマで連結されます。 |
details.type |
about.resource.attribute.labels |
キー details.type で直接マッピングされます |
details.type |
security_result.summary |
直接マッピングされます。 |
entity.app.id |
target.resource.id |
直接マッピングされます。 |
entity.app.name |
target.resource.name |
直接マッピングされます。 |
entity.channel.id |
target.resource.id |
直接マッピングされます。 |
entity.channel.name |
target.resource.name |
直接マッピングされます。 |
entity.channel.privacy |
target.resource.attribute.labels |
キー entity.channel.privacy で直接マッピングされます |
entity.file.filetype |
target.resource.attribute.labels |
キー entity.file.filetype で直接マッピングされます |
entity.file.id |
target.resource.id |
直接マッピングされます。 |
entity.file.name |
target.resource.name |
直接マッピングされます。 |
entity.file.title |
target.resource.attribute.labels |
キー entity.file.title で直接マッピングされます |
entity.huddle.date_end |
about.resource.attribute.labels |
キー entity.huddle.date_end で直接マッピングされます |
entity.huddle.date_start |
about.resource.attribute.labels |
キー entity.huddle.date_start で直接マッピングされます |
entity.huddle.id |
about.resource.attribute.labels |
キー entity.huddle.id で直接マッピングされます |
entity.huddle.participants.0 |
about.resource.attribute.labels |
キー entity.huddle.participants.0 で直接マッピングされます |
entity.huddle.participants.1 |
about.resource.attribute.labels |
キー entity.huddle.participants.1 で直接マッピングされます |
entity.type |
target.resource.resource_subtype |
直接マッピングされます。 |
entity.user.email |
target.user.email_addresses |
直接マッピングされます。 |
entity.user.id |
target.user.product_object_id |
直接マッピングされます。 |
entity.user.name |
target.user.user_display_name |
直接マッピングされます。 |
entity.user.team |
target.user.group_identifiers |
直接マッピングされます。 |
entity.workflow.id |
target.resource.id |
直接マッピングされます。 |
entity.workflow.name |
target.resource.name |
直接マッピングされます。 |
id |
metadata.product_log_id |
直接マッピングされます。 |
ip |
principal.ip |
直接マッピングされます。 |
user_agent |
network.http.user_agent |
直接マッピングされます。 |
user_id |
principal.user.product_object_id |
直接マッピングされます。 |
username |
principal.user.product_object_id |
直接マッピングされます。 |
metadata.event_type |
デフォルトは USER_COMMUNICATION です。アクションが user_created の場合は USER_CREATION、アクションが user_login または user_login_failed の場合は USER_LOGIN、アクションが user_logout の場合は USER_LOGOUT、アクションが file_ と一致する場合は USER_RESOURCE_ACCESS、アクションが app_、private_、public_、auth_policy_ と一致する場合は USER_RESOURCE_UPDATE_PERMISSIONS、アクションが pref、legal_hold_、workflow_、channel_、user_deactivated、user_reactivated、role_change_、user_channel_ と一致する場合は USER_CHANGE_PERMISSIONS に設定します。 |
|
metadata.log_type |
SLACK_AUDIT にハードコードされています |
|
metadata.product_name |
date_create が存在する場合は Enterprise Grid に設定し、それ以外の場合は user_id が存在する場合は Audit Logs に設定します。 |
|
metadata.vendor_name |
Slack にハードコードされています |
|
extensions.auth.mechanism |
REMOTE にハードコードされています |
|
extensions.auth.type |
アクションに user_login または user_logout が含まれている場合は SSO、それ以外の場合は MACHINE に設定します。 |
|
security_result.action |
デフォルトは ALLOW です。アクションが user_login_failed の場合は BLOCK に設定します。 |
|
target.application |
date_create が存在する場合は Slack に設定し、それ以外の場合は user_id が存在する場合は SLACK に設定します。 |
変更ログ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。