このドキュメントでは、Model Armor フィルタのバージョンの仕組みと、オペレーションで特定のフィルタ バージョンまたはフィルタ バージョン エイリアスを使用するように Model Armor に指示する方法について説明します。
Model Armor は、フィルタを使用して、LLM のプロンプトとレスポンス内の有害なコンテンツ、センシティブ データ、悪意のある URL、プロンプト インジェクション攻撃を検出してブロックします。詳細については、Model Armor フィルタをご覧ください。
Model Armor フィルタ バージョンは、本番環境のワークロードの安定性と、最新の脅威検出モデルへのアクセスを提供します。テンプレート レベルで 1 つのフィルタ バージョンを構成します。個々のフィルタに異なるバージョンを指定することはできません。
バージョンのエイリアス
Model Armor テンプレートでは、エイリアスを使用して優先するフィルタ バージョンを指定できます。エイリアスは、バージョンのライフサイクルのステージを表します。各エイリアスは、ライフサイクルの進行に合わせて適切なバージョンに設定されます。
エイリアスを選択すると、テンプレートではエイリアスが設定されているバージョンが使用されます。そのエイリアスの基盤となるバージョンが更新されると(たとえば、新しいバージョンが Stable に昇格されると)、エイリアスを使用するテンプレートは自動的に新しいバージョンを使用します。フィルタ バージョンを変更しない場合は、テンプレートを特定のフィルタ バージョンに指定します。
次のエイリアスから選択できます。
Latest: 最新のモデルと保護機能を含むエイリアス。新しい脅威に対して頻繁に更新されます。このエイリアスは標準のサービスレベル目標(SLO)を提供しますが、安定性はバージョンによって異なる場合があります。テスト、ステージング、一貫したフィルタ動作よりも最新の検出モデルを優先するワークロードに適しています。Stable: 使用可能なテンプレートを含むバージョンのデフォルト エイリアス。このエイリアスは、信頼性が高く、変更されない検出ロジックを提供します。変更されないフィルタ動作を必要とする本番環境とワークロードに適しています。新しいバージョンがStableになると、以前のStableバージョンはLegacyになります。Legacy: 新しいStableバージョンのリリース後 90 日間利用可能な、以前のStableバージョンのエイリアス。この期間中は、いつでも本番環境システムを新しいStableバージョンに移行できます。Legacyバージョンを使用して新しいテンプレートを作成することはできません。Retired: 90 日間のレガシー期間を超過し、使用できなくなったバージョンのエイリアス。Model Armor は、Stableバージョンを使用して、Retiredバージョンをまだ使用しているテンプレートへの呼び出しをサニタイズします。
フィルタ バージョンを使用しないフィルタ
フィルタ バージョンの設定は、Sensitive Data Protection フィルタと悪意のある URL フィルタには影響しません。
バージョンのライフサイクル
Google Cloud は、バージョンが Legacy になったときや、今後の廃止日など、バージョンのライフサイクルの変更に関する通知をすべてのサニタイズ API レスポンスで提供します。Legacy バージョンを使用するテンプレートは、90 日以内に Stable または Latest に移行する必要があります。
次の例では、バージョンのライフサイクルについて説明します。
- リリース(
Latest): Google は、新しいフィルタ バージョン(v2)をLatestとしてリリースします。 - プロモーション(
LatestからStable): Google がLatestバージョンをStableにプロモーションすると(v2がStableになる)、次のようになります。- Google は以前の
Stableバージョン(v1)をLegacyに移動します。 - 新しいバージョン(
v3)が新しいLatestになります。Google は、厳格なテストを経て、日常的な使用が安定しており、お客様の問題が最小限に抑えられているバージョン、または重大な脅威からの保護が必要になったバージョンをリリースします。
- Google は以前の
- 廃止(
LegacyからRetired): フィルタ バージョンが 90 日間Legacy状態のままであると、Google はそのバージョンを廃止し、使用できなくなります。
バージョンのリリース スケジュール
次の表に、エイリアス、リリース日、サポート終了日、サポートされているリージョンなど、フィルタ バージョンの詳細を示します。
| バージョン | エイリアス | リリース日 | 廃止日 | サポート対象の地域 |
|---|---|---|---|---|
v1 |
Legacy
( |
2025-01-30 | 2026-12-17 |
|
v2 |
Legacy |
2025-06-19 | 2026-12-17 |
|
v3 |
Stable
( |
2026-05-25 | — |
|
v4 |
Latest |
2026-09-18 | — |
|
各バージョンで変更された内容については、フィルタの変更履歴をご覧ください。
テンプレートの動作
テンプレートの動作は、使用されるフィルタ バージョンによって異なり、次の特性があります。
- バージョンなしのテンプレート: バージョンが指定されていないテンプレート(新規または既存)は、デフォルトで
Stableバージョンになります。 LatestまたはStableエイリアスを含むテンプレート: これらのテンプレートは、これらのエイリアスに割り当てられたバージョンを自動的に使用します。たとえば、新しいフィルタ バージョンがStableバージョンになると、Stableエイリアスを使用するテンプレートは、テンプレートの変更を必要とせずに新しいバージョンに移行します。特定のバージョンを使用するテンプレート:
- バージョンが
LatestバージョンまたはStableバージョンに対応している場合、テンプレートは想定どおりに動作します。 - バージョンが
Legacyバージョンに対応している場合、90 日間のサニタイズ オペレーションに使用すると、テンプレートは想定どおりに動作します。90 日が経過すると、バージョンはRetiredフェーズに移行します。このフェーズでは、テンプレートをLatestバージョンまたはStableバージョンに移行する必要があります。
- バージョンが
フロア設定のデフォルトのフィルタ バージョンをオーバーライドする
フロア設定では、デフォルトで Stable フィルタ バージョンが使用されます。Gemini Enterprise Agent Platform の統合の場合、この設定をオーバーライドする場合は、Gemini モデルへの generateContent 呼び出しでテンプレートを指定します。これを行うには、Gemini リクエストを送信する予定のリージョンと同じリージョンに、特定のフィルタ バージョンまたはエイリアスを含むテンプレートを作成します。
export TEMPLATE_CONFIG='{
"filterConfig": {
"piAndJailbreakFilterSettings": {
"filterEnforcement": "ENABLED"
}
},
"templateMetadata": {
"filterVersionSelector": {
"alias": "FILTER_VERSION_ALIAS"
}
}
}'
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "$TEMPLATE_CONFIG" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"
次のように置き換えます。
FILTER_VERSION_ALIAS: 目的のフィルタ バージョンのエイリアス。FILTER_VERSION_ALIAS_STABLEまたはFILTER_VERSION_ALIAS_LATESTを使用します。PROJECT_ID: テンプレートが属するプロジェクトの ID。TEMPLATE_ID: 作成するテンプレートの ID。LOCATION: Model Armor テンプレートを保存するリージョン。このリージョンは、Gemini リクエストを送信する予定のリージョンと同じにする必要があります。そうしないと、Agent Platform でTemplate not foundエラーが発生します。この統合でサポートされているリージョンの一覧については、Gemini Enterprise Agent Platform との統合をご覧ください。
Gemini 呼び出しの model_armor_config オブジェクトでテンプレート ID を指定します。テンプレートで指定されたフィルタ構成が、プロジェクト レベルのフロア設定の代わりに適用されます。
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/gemini-2.5-flash:generateContent" \
-d '{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Your prompt here"
}
]
}
],
"model_armor_config": {
"prompt_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
"response_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID"
}
}'
次のように置き換えます。
PROJECT_ID: Google Cloud プロジェクト ID。REGION: Gemini エンドポイントのGoogle Cloud リージョン。LOCATION: Model Armor テンプレートが保存されているリージョン。これは、REGIONに指定されたリージョンと同じにする必要があります。TEMPLATE_ID: Model Armor テンプレート ID。
テンプレートのフィルタ バージョンを構成する
テンプレートのフィルタ バージョンは、次のいずれかの方法で構成できます。
- エイリアスを使用する:
StableやLatestなどの動的エイリアスを使用すると、テンプレートで優先エイリアスに対応するバージョン番号が自動的に使用されます。これにより、基盤となるバージョンが変更されたときに手動で更新する必要がなくなります。 - バージョン番号を使用する:
v1などのバージョン番号を使用して、テンプレートが指定されたバージョンに設定されていることを確認します。これにより、エイリアスが更新されても、動作が固定され、変更されません。
バージョン エイリアスを使用してテンプレートを作成する
特定のバージョン エイリアスを使用してテンプレートを作成するには、次のコマンドを実行します。
export TEMPLATE_CONFIG='{
"filterConfig": {
"piAndJailbreakFilterSettings": {
"filterEnforcement": "ENABLED"
}
},
"templateMetadata": {
"filterVersionSelector": {
"alias": "FILTER_VERSION_ALIAS"
}
}
}'
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "$TEMPLATE_CONFIG" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"
次のように置き換えます。
FILTER_VERSION_ALIAS: 目的のフィルタ バージョンのエイリアス。FILTER_VERSION_ALIAS_STABLEまたはFILTER_VERSION_ALIAS_LATESTを使用します。PROJECT_ID: テンプレートが属するプロジェクトの ID。TEMPLATE_ID: 作成するテンプレートの ID。LOCATION: テンプレートのロケーション。
レスポンスは次の例のようになります。
{
"name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
"createTime": "2026-04-05T17:57:46.976854398Z",
"updateTime": "2026-04-05T17:57:46.976854398Z",
"filterConfig": {
"piAndJailbreakFilterSettings": {
"filterEnforcement": "ENABLED"
}
},
"templateMetadata": {
"filterVersionSelector": {
"alias": "FILTER_VERSION_ALIAS"
}
}
}
特定のフィルタ バージョンを使用してテンプレートを作成する
フィルタの不変性が必要な場合は、特定のバージョンに対応するテンプレートを作成できます。これを行うには、次のコマンドを実行します。
export TEMPLATE_CONFIG='{
"filterConfig": {
"piAndJailbreakFilterSettings": {
"filterEnforcement": "ENABLED"
}
},
"templateMetadata": {
"filterVersionSelector": {
"version": "FILTER_VERSION_NUMBER"
}
}
}'
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "$TEMPLATE_CONFIG" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"
次のように置き換えます。
PROJECT_ID: テンプレートが属するプロジェクトの ID。TEMPLATE_ID: 作成するテンプレートの ID。LOCATION: テンプレートのロケーション。FILTER_VERSION_NUMBER: 優先するフィルタ バージョン番号(例:v1)。
レスポンスは次の例のようになります。
{
"name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
"createTime": "2026-04-05T18:03:29.134974974Z",
"updateTime": "2026-04-05T18:03:29.134974974Z",
"filterConfig": {
"piAndJailbreakFilterSettings": {
"filterEnforcement": "ENABLED"
}
},
"templateMetadata": {
"filterVersionSelector": {
"version": "FILTER_VERSION_NUMBER"
}
}
}
テンプレートのフィルタ バージョンを更新する
既存のテンプレートのフィルタ バージョンまたはエイリアスを更新するには、次のコマンドを実行します。
export TEMPLATE_CONFIG='{
"templateMetadata": {
"filterVersionSelector": {
"alias": "FILTER_VERSION_ALIAS"
}
}
}'
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "$TEMPLATE_CONFIG" \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID?updateMask=templateMetadata.filterVersionSelector"
次のように置き換えます。
FILTER_VERSION_ALIAS: 目的のフィルタ バージョンのエイリアス。FILTER_VERSION_ALIAS_STABLEまたはFILTER_VERSION_ALIAS_LATESTを使用します。PROJECT_ID: テンプレートが属するプロジェクトの ID。TEMPLATE_ID: 作成するテンプレートの ID。LOCATION: テンプレートのロケーション。
レスポンスは次の例のようになります。
{
"name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
"createTime": "2026-04-05T18:03:29.134974974Z",
"updateTime": "2026-04-05T18:04:07.711205953Z",
"filterConfig": {
"piAndJailbreakFilterSettings": {
"filterEnforcement": "ENABLED"
}
},
"templateMetadata": {
"filterVersionSelector": {
"alias": "FILTER_VERSION_ALIAS"
}
}
}
サニタイズ オペレーションで使用されるフィルタ バージョンを表示する
Sanitize API のレスポンス メタデータには、サニタイズ中に使用されたフィルタ バージョンに関する情報が含まれます。Google がバージョンを廃止する 30 日前に、サニタイズ API レスポンスで非推奨の警告が表示されます。
次の例は、フィルタ バージョンを含む API レスポンスを示しています。
"sanitizationResult": { "filterMatchState": "NO_MATCH_FOUND", "invocationResult": "SUCCESS", "filterResults": { "csam": { "csamFilterFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "malicious_uris": { "maliciousUriFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "rai": { "raiFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND", "raiFilterTypeResults": { "sexually_explicit": { "matchState": "NO_MATCH_FOUND" }, "hate_speech": { "matchState": "NO_MATCH_FOUND" }, "harassment": { "matchState": "NO_MATCH_FOUND" } } } }, "pi_and_jailbreak": { "piAndJailbreakFilterResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } }, "sdp": { "sdpFilterResult": { "inspectResult": { "executionState": "EXECUTION_SUCCESS", "matchState": "NO_MATCH_FOUND" } } } }, "sanitizationMetadata": { "filterVersionConfig": { "filterVersion": "v2", "filterVersionAlias": "FILTER_VERSION_ALIAS_LEGACY", "releaseDate": { "year": 2025, "month": 6, "day": 19 }, "projectedDeprecationDate": { "year": 2026, "month": 12, "day": 17 }, "messageItems": [ { "messageType": "WARNING", "message": "This filter version (v2) is in LEGACY state and will be RETIRED on 2026-12-17. Please migrate your template to the STABLE or LATEST version to ensure continued protection." } ] } }, }
Model Armor は、サニタイズ リクエストとそのレスポンスのプラットフォーム ログを Cloud Logging に生成します。自動生成された監査ログの詳細については、Model Armor の監査ロギングをご覧ください。