ロギングを構成する

このドキュメントでは、次のオペレーションをロギングするように Model Armor を構成する方法について説明します。

  • テンプレートを作成、更新、削除するオペレーション
  • ユーザー プロンプトまたはモデル レスポンスをサニタイズするオペレーション

Model Armor は、監査ログを使用して管理アクティビティとリソース管理アクティビティを記録します。詳細については、Model Armor の監査ロギングをご覧ください。

ログの料金については、Cloud Logging の料金ページをご覧ください。処理されたデータ量に基づいて、Model Armor の使用料金が適用される場合もあります。詳細については、Model Armor の料金をご覧ください。

始める前に

まず以下のタスクを完了してから、このページの残りのタスクを行ってください。

必要な権限を取得する

Model Armor のロギングを構成するために必要な権限を取得するには、Model Armor テンプレートに対する Model Armor 管理者 roles/modelarmor.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

API を有効にする

Model Armor を使用するには、Model Armor API を有効にする必要があります。

コンソール

  1. Enable the Model Armor API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  2. Model Armor を有効にするプロジェクトを選択します。

gcloud

始める前に、Google Cloud CLI で Model Armor API を使用して、次の処理を行います。

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 次のコマンドを実行して、Model Armor サービスの API エンドポイントを設定します。

    gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"

    LOCATION は、Model Armor を使用するリージョンに置き換えます。

  3. トラフィックのサニタイズを設定する

    Google が管理する Model Context Protocol(MCP)サーバーの場合は、フロア設定でトラフィックのサニタイズを設定します。詳細については、Google とリモート MCP サーバーの保護を構成するをご覧ください。 Google Cloud (プレビュー)についての説明をご覧ください。

    テンプレートでロギングを構成する

    テンプレートは、さまざまな安全性とセキュリティのカテゴリのフィルタとしきい値を定義します。Model Armor テンプレートを作成または更新するときに、Model Armor が特定のオペレーションをログに記録するかどうかを指定できます。テンプレート メタデータで次のフラグを使用します。

    • log_template_operations: テンプレートの作成、更新、読み取り、削除オペレーションのロギングを有効にするブール値。
    • log_sanitize_operations: サニタイズ オペレーションのロギングを有効にするブール値。ログには、プロンプトと回答、Model Armor の評価結果、追加のメタデータ フィールドが含まれます。

    コンソール

    1. Google Cloud コンソールで、[Model Armor] ページに移動します。

      [Model Armor] に移動

    2. Model Armor を有効にしたプロジェクトが表示されていることを確認します。

    3. [Model Armor ] ページで、[テンプレートを作成] をクリックします。テンプレートの作成の詳細については、Model Armor テンプレートを作成するをご覧ください。

    4. [ロギングを構成する] セクションで、ロギングを構成するオペレーションを選択します。

    5. [作成] をクリックします。

    REST

      curl -X POST \
          -d '{ "filterConfig": {}, "templateMetadata": { "logTemplateOperations": true, "logSanitizeOperations": true } }' \
          -H "Content-Type: application/json" \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"
    

    次のように置き換えます。

    • PROJECT_ID: テンプレートが属するプロジェクトの ID。
    • LOCATION: テンプレートのロケーション。
    • TEMPLATE_ID: テンプレートの ID。

    Python

    このコードを実行するには、まず Python 開発環境を設定し、Model Armor Python SDK をインストールします。

       request = modelarmor_v1.CreateTemplateRequest(
         parent="projects/PROJECT_ID/locations/LOCATION",
         template_id="TEMPLATE_ID",
         template={
            "name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
            "filter_config": {},
            "template_metadata": {
               "log_template_operations": True,
               "log_sanitize_operations": True
            }
         }
       )
       response = client.create_template(request=request)
       

    次のように置き換えます。

    • PROJECT_ID: テンプレートが属するプロジェクトの ID。
    • LOCATION: テンプレートのロケーション。
    • TEMPLATE_ID: テンプレートの ID。

    フロア設定でロギングを構成する

    フロア設定では、プロジェクト内の Vertex AI のすべての Gemini モデルと Google が管理する Model Context Protocol(MCP)サーバー(プレビュー)にわたって、ベースラインの安全性とセキュリティ フィルタを確立します。Model Armor のフロア設定を更新するときに、Model Armor のサニタイズ オペレーションをログに記録するかどうかを指定できます。

    Vertex AI と Google マネージド MCP サーバーのサニタイズ オペレーションのロギングは個別に有効にできます。有効にすると、ログにはプロンプトとレスポンス(Vertex AI の場合)またはツール呼び出しとツール レスポンス(MCP サーバーの場合)、Model Armor の評価結果、追加のメタデータ フィールドが含まれます。

    コンソール

    1. Google Cloud コンソールで、[Model Armor] ページに移動します。

      [Model Armor] に移動

    2. Model Armor を有効にしたプロジェクトが表示されていることを確認します。

    3. [フロア設定] タブに移動します。

    4. [ログ] セクションで、[Google マネージド MCP] を選択します。

    5. [保存] をクリックします。

    gcloud

    次のいずれかのフラグを使用して、フロア設定でのサニタイズ オペレーションのロギングを管理できます。

    ロギングを有効にするには、次のいずれかのフラグを使用します。

    • Vertex AI の場合は、--enable-vertex-ai-cloud-logging フラグを使用します。
    • Google マネージド MCP サーバーの場合は、--enable-google-mcp-server-cloud-logging フラグを使用します。

    ロギングを無効にするには、次のいずれかのフラグを使用します。

    • Vertex AI の場合は、--no-enable-vertex-ai-cloud-logging フラグを使用します。
    • Google マネージド MCP サーバーの場合は、--no-enable-google-mcp-server-cloud-logging フラグを使用します。

    次のコマンドの例では、Vertex AI と Google 管理の MCP サーバーの両方でサニタイズ オペレーションのロギングを有効にします。

    gcloud model-armor floorsettings update \
    --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
    --enable-vertex-ai-cloud-logging \
    --enable-google-mcp-server-cloud-logging
    

    PROJECT_ID は、プロジェクトの ID に置き換えます。

    REST

    UpdateFloorSetting メソッドを使用して、床の設定を更新し、消毒オペレーションのロギングを有効にできます。このメソッドを使用する場合は、適切なパラメータを true に設定して、ロギングを有効にしてください。

    • Vertex AI の場合、aiPlatformFloorSetting.enableCloudLoggingtrue に設定します。

    • Google 管理の MCP サーバーの場合は、googleMcpServerFloorSetting.enableCloudLoggingtrue に設定します。

    次のコマンドの例では、Vertex AI と Google 管理の MCP サーバーの両方でサニタイズ オペレーションのロギングを有効にします。

    curl -X PATCH \
     -d '{ "aiPlatformFloorSetting":{ "enableCloudLogging": true}, "googleMcpServerFloorSetting":{ "enableCloudLogging": true}}' \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting?updateMask=aiPlatformFloorSetting.enableCloudLogging,googleMcpServerFloorSetting.enableCloudLogging"
    

    PROJECT_ID は、プロジェクトの ID に置き換えます。

    Python

    このコードを実行するには、まず Python 開発環境を設定し、Model Armor Python SDK をインストールします。

    from google.cloud.modelarmor import v1 as modelarmor_v1
    from google.protobuf import field_mask_pb2
    
    # TODO: Initialize the ModelArmorClient, "client"
    # client = modelarmor_v1.ModelArmorClient()
    
    project_id = "PROJECT_ID"
    location = "global"
    
    floor_setting_name = f"projects/{project_id}/locations/{location}/floorSetting"
    
    request = modelarmor_v1.UpdateFloorSettingRequest(
        floor_setting=modelarmor_v1.FloorSetting(
            name=floor_setting_name,
            ai_platform_floor_setting=modelarmor_v1.FloorSetting.AiPlatformFloorSetting(
                enable_cloud_logging=True
            ),
            google_mcp_server_floor_setting=modelarmor_v1.FloorSetting.GoogleMcpServerFloorSetting(
                enable_cloud_logging=True
            ),
        ),
        update_mask=field_mask_pb2.FieldMask(
            paths=["ai_platform_floor_setting.enable_cloud_logging", "google_mcp_server_floor_setting.enable_cloud_logging"]
        )
    )
    
    try:
        response = client.update_floor_setting(request=request)
        print("Successfully updated floor settings logging.")
        print(response)
    except Exception as e:
        print(f"An error occurred: {e}")
    
    

    PROJECT_ID は、プロジェクトの ID に置き換えます。

    ログを表示

    Model Armor ログを表示するには、Logging のログ エクスプローラを使用します。手順は次のとおりです。

    1. Google Cloud コンソールで [ログ エクスプローラ] に移動します。詳細については、ログ エクスプローラを使用してログを表示するをご覧ください。
    2. サービス名 modelarmor.googleapis.com でログをフィルタします。
    3. テンプレートで有効にしたオペレーションに関連するエントリを探します。すべてのサービス名とモニタリング対象リソースタイプの一覧については、モニタリング対象リソースとサービスをご覧ください。

    Model Armor ログをフィルタする

    ログラベルを使用して、サニタイズ オペレーションとテンプレート ロギングの Model Armor ログをフィルタできます。手順は次のとおりです。

    ログ エクスプローラで次のクエリを実行して、サニタイズ オペレーションのログをフィルタします。

    jsonPayload.@type="type.googleapis.com/google.cloud.modelarmor.logging.v1.SanitizeOperationLogEntry"
    

    サニタイズ オペレーション ログをさらに絞り込むには、クエリでプロジェクト ID、クライアント名、または相関 ID を指定します。

    • プロジェクト ID を使用する場合:

      jsonPayload.@type="type.googleapis.com%2Fgoogle.cloud.modelarmor.logging.v1.SanitizeOperationLogEntry";project=PROJECT_ID
      
    • クライアント名を使用する場合:

      jsonPayload.@type="type.googleapis.com/google.cloud.modelarmor.logging.v1.SanitizeOperationLogEntry"
      labels."modelarmor.googleapis.com/client_name"="CLIENT_NAME"
      
    • 相関 ID を使用する場合:

      labels."modelarmor.googleapis.com/client_correlation_id"="CORRELATION_ID"
      

    次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクト ID。
    • CLIENT_NAME: クライアントの名前。
    • CORRELATION_ID: 特定のリクエストに対して生成する固有識別子。

    ログと関連イベントを関連付ける

    特定のインタラクションのログとイベントを関連付けるには、クライアント相関 ID を使用します。この ID は、システム全体で特定のリクエストを追跡するために生成する固有識別子(UUID など)です。curl ヘッダーにクライアント相関 ID を設定するには、-H オプションを使用して、リクエストにカスタム ヘッダーを含めます。

    サンプル形式は次のとおりです。

    curl -X POST -d  '{"userPromptData": { "text": 'USER_PROMPT' } }' \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "MA-Client-Correlation-Id: $uuid" \
        "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
    
    curl -X POST \
        -d  '{"modelResponseData": { "text": 'MODEL_RESPONSE' }, "userPrompt": 'USER_PROMPT' }' \
        -H "Content-Type: application/json" \
        -H "MA-Client-Correlation-Id: $uuid" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeModelResponse"
    

    次のように置き換えます。

    • PROJECT_ID: テンプレートが属するプロジェクトの ID。
    • LOCATION: テンプレートのロケーション。
    • TEMPLATE_ID: テンプレートの ID。
    • USER_PROMPT: モデルに提供されたプロンプト。
    • MODEL_RESPONSE: モデルから受信したレスポンス。