Oracle Cloud Infrastructure - Oracle Cloud Guard のログを収集する
このドキュメントでは、Oracle Cloud Infrastructure Cloud Guard を構成して、Webhook を使用してログを Google Security Operations に push する方法について説明します。
Oracle Cloud Guard は、Oracle Cloud Infrastructure(OCI)で強力なセキュリティ ポスチャーを維持するために、モニタリング、識別、支援を行うクラウド ネイティブのセキュリティ サービスです。Cloud Guard は、構成に関連するセキュリティの脆弱性について OCI リソースを調べ、異常なアクティビティを検出します。Cloud Guard は、検出機能ルールからの逸脱を検出すると、OCI テナンシー全体で包括的なセキュリティ モニタリングを提供する問題イベントを作成します。この統合では、OCI Events Service と OCI Functions を使用して、Cloud Guard の問題イベントをほぼリアルタイムで Google SecOps に転送します。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス
- Cloud Guard が有効になっているアクティブな Oracle Cloud Infrastructure テナンシー
- Oracle Cloud Infrastructure コンソールへの管理者アクセス権
- OCI Functions アプリケーションを作成および管理する権限
- OCI Events ルールと Notifications トピックを作成する権限
- OCI Cloud Shell または Fn Project CLI がインストールされたローカル環境へのアクセス
- Docker がインストールされている(OCI 関数をローカルでビルドする場合)
- Google Cloud コンソールへのアクセス(API キーの作成用)
Google SecOps で Webhook フィードを作成する
フィードを作成する
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで、[単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
OCI Cloud Guard Problems)。 - [Source type] として [Webhook] を選択します。
- [Log type] として [Oracle Cloud Infrastructure - Oracle Cloud Guard] を選択します。
- [次へ] をクリックします。
- 次の入力パラメータの値を指定します。
- 分割区切り文字(省略可): 空のままにします(各関数呼び出しで単一のイベントが送信されます)。
- アセットの名前空間: アセットの名前空間
- Ingestion labels: このフィードのイベントに適用されるラベル
- [次へ] をクリックします。
- [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
秘密鍵を生成して保存する
フィードを作成したら、認証用のシークレット キーを生成する必要があります。
- フィードの詳細ページで、[シークレット キーを生成] をクリックします。
- ダイアログに秘密鍵が表示されます。
- 秘密鍵をコピーして安全に保存します。
重要: 秘密鍵は一度しか表示されず、後で取得することはできません。秘密鍵を紛失した場合は、新しい秘密鍵を生成する必要があります。
フィード エンドポイントの URL を取得する
- フィードの [詳細] タブに移動します。
- [エンドポイント情報] セクションで、[フィード エンドポイント URL] をコピーします。
URL の形式は次のとおりです。
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreateまたは
https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreateこの URL は次の手順で使用します。
[完了] をクリックします。
Google Cloud API キーを作成する
Chronicle では、認証に API キーが必要です。Google Cloud コンソールで制限付き API キーを作成します。
API キーを作成する
- Google Cloud コンソールの [認証情報] ページに移動します。
- プロジェクト(Chronicle インスタンスに関連付けられているプロジェクト)を選択します。
- [認証情報を作成] > [API キー] をクリックします。
- API キーが作成され、ダイアログに表示されます。
- [API キーを編集] をクリックして、キーを制限します。
API キーを制限する
- [API キー] 設定ページで、次の操作を行います。
- 名前: わかりやすい名前を入力します(例:
Chronicle Webhook API Key)。
- 名前: わかりやすい名前を入力します(例:
- [API の制限] で次の操作を行います。
- [キーを制限] を選択します。
- [API を選択] プルダウンで、[Google SecOps API](または [Chronicle API])を検索して選択します。
- [保存] をクリックします。
- ページ上部の [API キー] フィールドから API キーの値をコピーします。
API キーを安全に保存します。
Cloud Guard Cloud Event レスポンダーを有効にする
Cloud Guard は、クラウド イベント レスポンダを使用して、問題の詳細を OCI Events Service に送信します。Cloud Event レスポンダーはレスポンダー レシピの一部であり、有効にして自動的に実行するように設定する必要があります。
レスポンダー レシピで Cloud イベント ルールを有効にする
- Oracle Cloud Infrastructure コンソールにログインします。
- ナビゲーション メニューを開き、[ID とセキュリティ> Cloud Guard > レシピ] を選択します。
- [Responder Recipes] を選択します。
- ターゲットに接続されているレスポンダー レシピをクリックします。
- [レスポンダー ルール] セクションで、[Cloud Events] ルールを見つけます。
- ステータスが [Disabled](無効)の場合:
- [アクション] メニュー(3 つのドット)を開き、[編集] を選択します。
- [ステータス] を [有効] に変更します。
- [保存] をクリックします。
ターゲットで自動実行を構成する
- Oracle Cloud Infrastructure コンソールで、ナビゲーション メニューを開き、[Identity & Security > Cloud Guard > Configuration > Targets] を選択します。
- ターゲット コンパートメントを選択します。
- [リソース] で [Responder Recipes] を選択します。
- 回答者のレシピリンクをクリックします。
- Cloud Event レスポンダー ルールを見つけます。
- [アクション] メニュー(3 つのドット)を開き、[編集] を選択します。
- [Rule Trigger] を [Execute Automatically] に設定します。
- [CONFIRM EXECUTE AUTOMATICALLY] チェックボックスをオンにします。
[保存] をクリックします。
OCI Functions アプリケーションを作成する
Cloud Guard イベントを Google SecOps に転送する関数をホストする OCI Functions アプリケーションを作成します。
アプリケーションの作成
- Oracle Cloud Infrastructure コンソールで、ナビゲーション メニューを開き、[Developer Services> Functions> Applications] を選択します。
- アプリケーションを作成するコンパートメントを選択します。
- [アプリケーションを作成] をクリックします。
- 次の構成情報を指定します。
- 名前: 「
cloudguard-chronicle-forwarder」と入力します。 - VCN: インターネット アクセスが可能な VCN を選択します(関数が Chronicle Webhook エンドポイントに到達するために必要です)。
- サブネット: NAT ゲートウェイが構成されたパブリック サブネットまたはプライベート サブネットを選択します。
- 名前: 「
- [作成] をクリックします。
関数を作成してデプロイする
OCI Cloud Shell または Fn Project CLI を使用するローカル環境を使用して、関数を作成してデプロイします。
- Oracle Cloud Infrastructure コンソールから OCI Cloud Shell を開きます(上部のナビゲーション バーにある Cloud Shell アイコンをクリックします)。
OCI Functions アプリケーションの Fn コンテキストを設定します。
fn list context fn use context <your-region-context> fn update context oracle.compartment-id <compartment_OCID> fn update context registry <region-key>.ocir.io/<tenancy-namespace>/cloudguard-chronicle新しい Python 関数を初期化します。
fn init --runtime python cloudguard-to-chronicle cd cloudguard-to-chroniclefunc.pyファイルの内容を次のコードに置き換えます。import io import json import logging import requests from fdk import response def handler(ctx, data: io.BytesIO = None): """ OCI Function that receives Cloud Guard events from OCI Events Service and forwards them to Google SecOps (Chronicle) webhook endpoint. """ logger = logging.getLogger() try: cfg = ctx.Config() chronicle_endpoint = cfg.get("CHRONICLE_ENDPOINT") chronicle_api_key = cfg.get("CHRONICLE_API_KEY") chronicle_secret = cfg.get("CHRONICLE_SECRET") if not all([chronicle_endpoint, chronicle_api_key, chronicle_secret]): logger.error("Missing required configuration: CHRONICLE_ENDPOINT, CHRONICLE_API_KEY, or CHRONICLE_SECRET") return response.Response( ctx, response_data=json.dumps({"error": "Missing configuration"}), headers={"Content-Type": "application/json"}, status_code=500 ) event_data = json.loads(data.getvalue()) logger.info(f"Received Cloud Guard event: {event_data.get('eventType', 'unknown')}") webhook_url = f"{chronicle_endpoint}?key={chronicle_api_key}&secret={chronicle_secret}" headers = { "Content-Type": "application/json" } resp = requests.post( webhook_url, json=event_data, headers=headers, timeout=30 ) if resp.status_code >= 200 and resp.status_code < 300: logger.info(f"Successfully forwarded event to Chronicle (HTTP {resp.status_code})") else: logger.error(f"Failed to forward event to Chronicle (HTTP {resp.status_code}): {resp.text}") return response.Response( ctx, response_data=json.dumps({"status": resp.status_code}), headers={"Content-Type": "application/json"}, status_code=200 ) except Exception as e: logger.error(f"Error processing Cloud Guard event: {str(e)}") return response.Response( ctx, response_data=json.dumps({"error": str(e)}), headers={"Content-Type": "application/json"}, status_code=500 )requirements.txtファイルの内容を置き換えます。fdk>=0.1.0 requests>=2.25.0関数をアプリケーションにデプロイします。
fn -v deploy --app cloudguard-chronicle-forwarderデプロイが完了するまで待ちます。
関数の環境変数を構成する
- Oracle Cloud Infrastructure コンソールで、ナビゲーション メニューを開き、[Developer Services> Functions> Applications] を選択します。
- cloudguard-chronicle-forwarder アプリケーションをクリックします。
- [リソース] で [関数] を選択します。
- cloudguard-to-chronicle 関数をクリックします。
- [リソース] で [構成] を選択します。
[編集] をクリックして、次の Key-Value ペアを追加します。
キー 値 CHRONICLE_ENDPOINTChronicle Webhook エンドポイント URL(例: https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate)CHRONICLE_API_KEYChronicle Webhook 用に作成された Google Cloud API キー CHRONICLE_SECRETChronicle Webhook の秘密鍵 [保存] をクリックします。
OCI Functions の IAM ポリシーを作成する
OCI Functions サービスと Events サービスでは、関数を呼び出すために IAM ポリシーが必要です。
関数の動的グループを作成する
- Oracle Cloud Infrastructure コンソールで、ナビゲーション メニューを開き、[Identity & Security > Domains] を選択します。
- [デフォルト] ドメインを選択します。
- [ID ドメイン リソース] で、[動的グループ] を選択します。
- [動的グループを作成] をクリックします。
次の構成情報を提供してください。
- 名前: 「
cloudguard-chronicle-functions」と入力します。 - 説明: 「
Dynamic group for Cloud Guard to Chronicle forwarder function」と入力します。 - マッチング ルール: 次のルールを入力します。
ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_OCID>'}- 名前: 「
[作成] をクリックします。
IAM ポリシーを作成する
- Oracle Cloud Infrastructure コンソールで、ナビゲーション メニューを開き、[Identity & Security > Policies] を選択します。
- ルート コンパートメントにいることを確認します。
- [Create Policy] をクリックします。
- 次の構成情報を指定します。
- 名前: 「
cloudguard-chronicle-policy」と入力します。 - 説明: 「
Allows Events Service to invoke Cloud Guard Chronicle forwarder function」と入力します。 - コンパートメント: ルート コンパートメントが選択されていることを確認します。
- 名前: 「
- [ポリシー ビルダー] セクションで、[手動エディタを表示] を切り替えます。
[ステートメント] フィールドに、次のポリシー ステートメントを入力します。
Allow dynamic-group cloudguard-chronicle-functions to use fn-function in compartment <compartment_name> Allow dynamic-group cloudguard-chronicle-functions to use fn-invocation in compartment <compartment_name> Allow service cloudguardevents to use fn-function in compartment <compartment_name> Allow service cloudguardevents to use fn-invocation in compartment <compartment_name>[作成] をクリックします。
Cloud Guard の OCI Events ルールを作成する
Cloud Guard が問題を検出、無視、修復したときに OCI 関数をトリガーするイベント ルールを作成します。
Events ルールを作成する
Oracle Cloud Infrastructure コンソールで、ナビゲーション メニューを開き、[Observability & Management> Events Service> Rules] を選択します。
[作成] をクリックします。
次の構成情報を提供してください。
- 表示名: 「
cloudguard-to-chronicle」と入力します。 - 説明: 「
Forwards Cloud Guard problem events to Google SecOps via OCI Functions」と入力します。
- 表示名: 「
[ルール条件] セクションで、次の操作を行います。
- [条件] を [イベントタイプ] に設定します。
- [サービス名] を [Cloud Guard] に設定します。
- [イベントタイプ] を次のいずれかに設定します(複数選択可)。
- 検出 - 問題
- [Dismissed - Problem](問題ありとして却下)
- Remediated - Problem
[アクション] セクションで、次の操作を行います。
- [アクション タイプ] を [関数] に設定します。
- [ファンクション コンパートメント] で、ファンクション アプリケーションを含むコンパートメントを指定します。
- [Function Application] を cloudguard-chronicle-forwarder に設定します。
- [関数] を [cloudguard-to-chronicle] に設定します。
[作成] をクリックします。
省略可: リスクレベルでフィルタする
重大度の高い問題のみを転送するには、イベントルールに属性フィルタを追加します。
- [ルールの条件] セクションで、[+ 別の条件] をクリックします。
- [条件] を [属性] に設定します。
- [属性名] を
riskLevelに設定します。 [Attribute Values] を目的のリスクレベルに設定します。
CRITICALHIGH
統合を確認する
関数を手動でテストする
- Oracle Cloud Infrastructure コンソールで、ナビゲーション メニューを開き、[Developer Services> Functions> Applications] を選択します。
- cloudguard-chronicle-forwarder アプリケーションをクリックします。
- [リソース] で [関数] を選択します。
- cloudguard-to-chronicle 関数をクリックします。
[呼び出し] をクリックしてサンプルデータで関数をテストするか、OCI Cloud Shell を使用します。
echo '{"eventType":"com.oraclecloud.cloudguard.problemdetected","cloudEventsVersion":"0.1","eventID":"test-event-001","data":{"compartmentId":"ocid1.compartment.oc1..example","resourceName":"test-problem","additionalDetails":{"riskLevel":"HIGH","problemDescription":"Test problem for integration verification","status":"OPEN","region":"us-ashburn-1"}}}' | fn invoke cloudguard-chronicle-forwarder cloudguard-to-chronicle[Developer Services] > [Functions] > [Applications] > [cloudguard-chronicle-forwarder] に移動し、[ログ] セクションを選択して、関数ログを確認します。
転送が成功したことを確認するログエントリを探します。
Received Cloud Guard event: com.oraclecloud.cloudguard.problemdetected Successfully forwarded event to Chronicle (HTTP 200)
Google SecOps で確認する
- Google SecOps にログインします。
- [検索] に移動し、ログタイプ
OCI_CLOUDGUARDのイベントをクエリします。 - Cloud Guard の問題イベントが検索結果に表示されることを確認します。
イベントが表示されない場合:
- 関数構成で Chronicle Webhook エンドポイント URL、API キー、シークレット キーを確認する
- イベント ルールが正しい OCI リージョン(Cloud Guard レポート リージョン)にあることを確認する
- Cloud Event レスポンダが有効になっていて、自動実行に設定されていることを確認する
- 関数ログでエラー メッセージを確認する
Cloud Guard イベントタイプの参照
Cloud Guard は、OCI Events Service を介して次のイベントタイプを発行します。
| イベントタイプ | トリガー |
|---|---|
com.oraclecloud.cloudguard.problemdetected |
新しい問題が検出された場合 |
com.oraclecloud.cloudguard.problemdismissed |
問題が無視される |
com.oraclecloud.cloudguard.problemremediated |
問題が解決される |
com.oraclecloud.cloudguard.sightingdetected |
新しい目撃情報が検出された場合 |
認証方法のリファレンス
Chronicle ウェブフック フィードは、複数の認証方法をサポートしています。ベンダーがサポートしている方法を選択します。
方法 1: カスタム ヘッダー(推奨)
ベンダーがカスタム HTTP ヘッダーをサポートしている場合は、この方法を使用するとセキュリティが強化されます。
リクエストの形式:
POST <ENDPOINT_URL> HTTP/1.1 Content-Type: application/json x-goog-chronicle-auth: <API_KEY> x-chronicle-auth: <SECRET_KEY> { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
メリット:
- API キーとシークレットが URL に表示されない
- より安全(ヘッダーがウェブサーバーのアクセスログに記録されない)
- ベンダーがサポートしている場合の推奨方法
方法 2: クエリ パラメータ
ベンダーがカスタム ヘッダーをサポートしていない場合は、認証情報を URL に追加します。
URL 形式:
<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>例:
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...&secret=abcd1234...リクエストの形式:
POST <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY> HTTP/1.1 Content-Type: application/json { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
デメリット:
- URL に認証情報が表示される
- ウェブサーバーのアクセスログに記録される場合があります
- ヘッダーよりも安全性が低い
方法 3: ハイブリッド(URL + ヘッダー)
一部の構成では、URL に API キー、ヘッダーにシークレット キーを使用します。
リクエストの形式:
POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1 Content-Type: application/json x-chronicle-auth: <SECRET_KEY> { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
認証ヘッダー名
Chronicle は、認証に次のヘッダー名を使用します。
API キーの場合:
x-goog-chronicle-auth(推奨)X-Goog-Chronicle-Auth(大文字と小文字を区別しない)
秘密鍵の場合:
x-chronicle-auth(推奨)X-Chronicle-Auth(大文字と小文字を区別しない)
Webhook の上限とベスト プラクティス
リクエストに関する上限
| 上限 | 値 |
|---|---|
| 最大リクエスト サイズ | 4 MB |
| 最大 QPS(秒間クエリ数) | 15,000 |
| リクエストのタイムアウト | 30 秒 |
| 再試行の動作 | 指数バックオフによる自動再試行 |
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| contentType | additional.fields | さまざまな追加フィールドから統合 |
| cloudEventsVersion | additional.fields | |
| data.additionalDetails.reason | additional.fields | |
| data.additionalDetails.tenantId | additional.fields | |
| data.additionalDetails.problemType | additional.fields | |
| data.resourceName | additional.fields | |
| data.resourceId | additional.fields | |
| ステータス | additional.fields | |
| problem_recommendation | additional.fields | |
| compartment_id | additional.fields | |
| compartment_name | additional.fields | |
| product_event | extensions.auth.type | product_event がログインと一致する場合は、「AUTHTYPE_UNSPECIFIED」に設定します。 |
| data.additionalDetails.problemDescription | metadata.description | data.additionalDetails.problemDescription が空でない場合はその値、それ以外の場合は data.additionalDetails.description |
| data.additionalDetails.description | metadata.description | |
| has_user | metadata.event_type | has_user と has_target_resource の両方がある場合は USER_RESOURCE_ACCESS、has_user がある場合は USER_UNCATEGORIZED、product_event がログインと一致する場合は USER_LOGIN、has_principal がある場合は STATUS_UPDATE、それ以外の場合は GENERIC_EVENT に設定されます。 |
| has_target_resource | metadata.event_type | |
| product_event | metadata.event_type | |
| has_principal | metadata.event_type | |
| eventType | metadata.product_event_type | eventType が空でない場合はその値、空の場合は product_event |
| product_event | metadata.product_event_type | |
| eventID | metadata.product_log_id | 値を直接コピーする |
| version | metadata.product_version | 値を直接コピーする |
| observer | observer.domain.name | grok を使用してオブザーバーから抽出されたドメイン |
| observer | observer.hostname | IP でない場合はオブザーバーからの値 |
| observer | observer.ip | IP の場合、オブザーバーからの値 |
| プリンシパル | principal.administrative_domain | grok を使用してプリンシパルまたは principal_host から抽出されたドメイン |
| principal_host | principal.administrative_domain | |
| data.additionalDetails.problemAdditionalDetails.public_ips | principal.asset.ip | data.additionalDetails.problemAdditionalDetails.public_ips の値(空でない場合)、それ以外の場合は vnicDetails.0.vnicPublicIp(空でない場合)、それ以外の場合はプリンシパル(IP の場合)、それ以外の場合は principal_host(IP の場合) |
| vnicDetails.0.vnicPublicIp | principal.asset.ip | |
| プリンシパル | principal.asset.ip | |
| principal_host | principal.asset.ip | |
| プリンシパル | principal.hostname | IP でない場合はプリンシパルの値、IP でない場合はプリンシパル ホスト |
| principal_host | principal.hostname | |
| data.additionalDetails.problemAdditionalDetails.public_ips | principal.ip | data.additionalDetails.problemAdditionalDetails.public_ips の値(空でない場合)、それ以外の場合は vnicDetails.0.vnicPublicIp(空でない場合)、それ以外の場合はプリンシパル(IP の場合)、それ以外の場合は principal_host(IP の場合) |
| vnicDetails.0.vnicPublicIp | principal.ip | |
| プリンシパル | principal.ip | |
| principal_host | principal.ip | |
| data.additionalDetails.region | principal.location.name | 値を直接コピーする |
| principal_port | principal.port | principal_port から整数に変換されました |
| data.additionalDetails.resourceName | principal.resource.name | data.additionalDetails.resourceName の値(空でない場合)。それ以外の場合は data.additionalDetails.principalResourceName |
| data.additionalDetails.principalResourceName | principal.resource.name | |
| data.additionalDetails.resourceId | principal.resource.product_object_id | data.additionalDetails.resourceId が空でない場合はその値、それ以外の場合は data.additionalDetails.principalResourceId |
| data.additionalDetails.principalResourceId | principal.resource.product_object_id | |
| data.additionalDetails.resourceType | principal.resource.resource_subtype | data.additionalDetails.resourceType が空でない場合はその値、それ以外の場合は data.additionalDetails.principalResourceType の値 |
| data.additionalDetails.principalResourceType | principal.resource.resource_subtype | |
| data.additionalDetails.resourceName | principal.user.userid | data.additionalDetails.resourceType == "User" の場合は data.additionalDetails.resourceName の値、それ以外の場合は data.additionalDetails.principalResourceType == "User" の場合は data.additionalDetails.principalResourceName の値 |
| data.additionalDetails.principalResourceName | principal.user.userid | |
| アクション | security_result.action | アクションがブロックと一致する場合は BLOCK、成功した場合は ALLOW、失敗した場合は FAIL、それ以外の場合は UNKNOWN に設定します。 |
| アクション | security_result.action_details | 値を直接コピーする |
| data.additionalDetails.tacticName | security_result.attack_details.tactics | 値を tactic_data.name に直接コピーしてから統合 |
| data.additionalDetails.techniqueName | security_result.attack_details.techniques | 値を technique_data.name に直接コピーしてから統合 |
| data.additionalDetails.confidence | security_result.confidence_score | 値を直接コピーする |
| sightingType | security_result.detection_fields | sightingType、sightingScore、riskScore ラベルから統合 |
| sightingScore | security_result.detection_fields | |
| riskScore | security_result.detection_fields | |
| data.additionalDetails.detectorRuleId | security_result.rule_id | 値を直接コピーする |
| data.additionalDetails.detectorRuleType | security_result.rule_name | 値を直接コピーする |
| 重要度 | security_result.severity | 重大度が INFO の場合は INFORMATIONAL、Low の場合は LOW、WARN の場合は MEDIUM、High の場合は HIGH、Critical の場合は CRITICAL に設定します。 |
| 重要度 | security_result.severity_details | 値を直接コピーする |
| ターゲット | target.administrative_domain | grok を使用してターゲットまたは target_host からドメインを抽出しました |
| target_host | target.administrative_domain | |
| ターゲット | target.hostname | IP でない場合はターゲットの値、IP でない場合は target_host |
| target_host | target.hostname | |
| ターゲット | target.ip | IP の場合はターゲットの値、IP の場合はターゲット ホスト |
| target_host | target.ip | |
| target_port | target.port | target_port から整数に変換 |
| targetId | target.resource.attribute.labels | さまざまなラベル フィールドから統合 |
| ラベル | target.resource.attribute.labels | |
| vnicAttachmentId | target.resource.attribute.labels | |
| vnicAttachmentDisplayName | target.resource.attribute.labels | |
| subnets | target.resource.attribute.labels | |
| instance_ocid | target.resource.attribute.labels | |
| route_table_ocids | target.resource.attribute.labels | |
| security_list_ocids | target.resource.attribute.labels | |
| data.additionalDetails.impactedResourceName | target.resource.name | data.additionalDetails.impactedResourceName の値(空でない場合)、それ以外の場合は vnicDetails.0.vnicDisplayName |
| vnicDetails.0.vnicDisplayName | target.resource.name | |
| data.additionalDetails.impactedResourceId | target.resource.product_object_id | data.additionalDetails.impactedResourceId の値(空でない場合)。空の場合は vnicDetails.0.vnicId |
| vnicDetails.0.vnicId | target.resource.product_object_id | |
| data.additionalDetails.impactedResourceType | target.resource.resource_subtype | 値を直接コピーする |
| target_url | target.url | 値を直接コピーする |
| target_user | target.user.userid | 値を直接コピーする |
| product | metadata.product_name | 値を直接コピーする |
| vendor | metadata.vendor_name | 値を直接コピーする |
data.additionalDetails.tacticName |
security_result.attack_details.tactics.name |
変更履歴からマッピング |
data.additionalDetails.techniqueName |
security_result.attack_details.techniques.name |
変更履歴からマッピング |
変更ログ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。