Slack 監査ログを収集する
このドキュメントでは、Google Cloud Run Functions または 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 アプリのページに移動します。
- [Create New App] をクリックします。
- [ゼロから作成] を選択します。
- 次の構成の詳細を指定します。
- アプリ名: わかりやすい名前を入力します(例:
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 へのアクセスが可能になります。
- [Bot Token Scopes] で、[Add an OAuth Scope] をクリックします。
次のスコープを追加します。
users:read- 組織レベルのアプリのインストールを有効にするために必要なスコープです。
リダイレクト URL を構成する
- アプリの設定ページで、左側のナビゲーションから [OAuth & Permissions] を選択します。
- [リダイレクト URL] セクションに移動します。
- [Add New Redirect URL] をクリックします。
次の URL を入力します。
https://slack.com/oauth/v2/authorize[追加] をクリックします。
[Save URLs] をクリックします。
一般公開を有効にする
エンタープライズ組織レベル(ワークスペースだけでなく)でアプリをインストールするには、公開配布を有効にする必要があります。
公開配信が必要な理由
- Slack では、組織全体の権限を持つアプリで一般公開配信を有効にする必要があります。
- これにより、個々のワークスペースではなく、組織レベルでインストールできるようになります。
- この権限がない場合、アプリをインストールできるのは Enterprise Grid 内の 1 つのワークスペースのみです。
- 一般公開を有効にすると、インストール範囲に関する内部制限が解除されます。
一般公開を有効にする手順は次のとおりです。
- アプリの設定ページで、左側のナビゲーションから [配信を管理] を選択します。
- [Share Your App with Other Workspaces] で、4 つのセクションすべてに緑色のチェックマークが付いていることを確認します。
- ハードコードされた情報を削除する
- 一般公開を有効にする
- リダイレクト URL を設定する
- OAuth スコープを追加する
- いずれかのセクションに赤い X が表示されている場合は、そのセクションを開いて必要な操作を行います。
- [ハードコードされた情報を確認して削除しました] の横にあるチェックボックスをオンにします。
- [公開配信を有効にする] をクリックします。
エンタープライズ組織にアプリをインストールする
- アプリの設定ページで、左側のナビゲーションから [OAuth & Permissions] を選択します。
- [Share Your App with Your Workspace] で、[Sharable URL] をコピーします。
- ブラウザに URL を入力します。
- 重要: インストール画面の右上にあるプルダウン メニューを確認します。
- 個々のワークスペースではなく、エンタープライズ組織にインストールしていることを確認します。
- プルダウンにワークスペース名が表示されている場合は、それをクリックして、代わりに Enterprise 組織名を選択します。
- リクエストされた権限を確認し、[許可] をクリックします。
認証情報を取得する
承認が完了すると、[OAuth & Permissions] ページにリダイレクトされます。
- [OAuth Tokens for Your Workspace] で、[User OAuth Token] を見つけます。
- トークンは
xoxp-で始まります。 [コピー] をクリックして、このトークンを安全に保存します。
組織 ID をメモします。
- Slack 管理コンソールに移動します。
- [設定と権限]> [組織の設定] に移動します。
- 組織 ID をコピーします。
権限を確認する
アプリに必要な権限があることを確認するには:
- Slack API アプリのページに移動します。
- アプリを選択
- 左側のナビゲーションで [OAuth & Permissions] を選択します。
- [OAuth Tokens for Your Workspace] で、User OAuth Token(
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 監査ログを収集し、Chronicle 取り込みスクリプトを使用して Google SecOps に直接取り込みます。
始める前に(オプション 1)
次の追加の前提条件を満たしていることを確認します。
- 次の API が有効になっている GCP プロジェクト。
- Cloud Functions API
- Cloud Scheduler API
- Secret Manager API
- Cloud Functions、Cloud Scheduler ジョブ、Secret Manager のシークレットを作成する権限
- Google SecOps サービス アカウントの JSON ファイル
Google SecOps サービス アカウントを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- 取り込み認証ファイル をダウンロードします。
JSON ファイルを安全に保存します。これは、Google Secret Manager でシークレットとしてアップロードします。
関数コードを準備する
Chronicle 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 サービス アカウントのシークレットを作成する
- GCP Console で、[セキュリティ> 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ファイルを保存します。
Cloud Run 関数をデプロイする
Google Cloud コンソールでターミナルまたは Cloud Shell を開きます。デプロイ ディレクトリに移動し、次のコマンドを実行します。
gcloud functions deploy slack-audit-to-chronicle \ --entry-point main \ --trigger-http \ --runtime python312 \ --env-vars-file .env.yml \ --timeout 540s \ --memory 512MB \ --service-account <SERVICE_ACCOUNT_EMAIL><SERVICE_ACCOUNT_EMAIL>は、Cloud Run 関数で使用するサービス アカウントのメールアドレスに置き換えます。デプロイが完了するまで待ちます。デプロイが完了したら、出力から関数 URL をメモします。
Cloud Scheduler を設定する
- GCP Console で、[Cloud Scheduler] > [ジョブを作成] に移動します。
次の構成情報を提供してください。
設定 値 名前 slack-audit-schedulerリージョン Cloud Run functions をデプロイしたリージョンと同じリージョンを選択します。 周波数 */5 * * * *(5 分ごと、POLL_INTERVAL値と一致)タイムゾーン タイムゾーンを選択します(UTC を推奨) [続行] をクリックします。
[実行を構成する] セクションで、次の操作を行います。
- ターゲット タイプ: [HTTP] を選択します。
- URL: デプロイ出力から Cloud Run 関数の URL を入力します。
- HTTP メソッド: [POST] を選択します。
[認証ヘッダー] セクションで、次の操作を行います。
- [OIDC トークンを追加] を選択します。
- サービス アカウント: Cloud Run 関数で使用したサービス アカウントと同じアカウントを選択します。
[作成] をクリックします。
スケジュールの頻度のオプション
ログの量とレイテンシの要件に基づいて頻度を選択します。
| 頻度 | CRON 式 | ユースケース |
|---|---|---|
| 5 分おき | */5 * * * * |
標準(推奨) |
| 15 分ごと | */15 * * * * |
検索量が普通 |
| 1 時間ごと | 0 * * * * |
音量が小さい |
統合をテストする(オプション 1)
- Cloud Scheduler コンソールで、ジョブ(
slack-audit-scheduler)を見つけます。 - [強制実行] をクリックして、ジョブを手動でトリガーします。
- 数秒待ちます。
- Cloud Functions に移動します。
- 関数名(
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」と入力します。 - 柔軟な時間枠: [オフ] を選択します。
- 名前: 「
- [次へ] をクリックします。
- [Target] を選択します。
- ターゲット API: [AWS Lambda 呼び出し] を選択します。
- 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を選択します。[セキュリティ認証情報] > [アクセスキー] > [アクセスキーを作成] に移動します。
[サードパーティ サービス] を選択します。
[次へ] をクリックします。
[アクセスキーを作成] をクリックします。
[Download .csv file] をクリックして、認証情報を保存します。
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/slack-audit-logsは、実際の S3 バケット名に置き換えます。Source deletion option: 必要に応じて削除オプションを選択します。
ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。
アクセスキー ID: S3 バケットにアクセスできるユーザー アクセスキー(
secops-readerIAM ユーザーから)。シークレット アクセスキー: 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 に設定します。 |
|
details.url_private |
target.url |
変更履歴からマッピング |
details.previous_ip_address |
principal.labels |
変更履歴からマッピング |
details.previous_ua |
principal.labels |
変更履歴からマッピング |
変更履歴
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。