Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Data Loss Prevention(DLP)を設定する

最終更新 Markdown で表示Agent セットアップ

任意の AI Gateway に Data Loss Prevention(DLP)を追加すると、AI のプロンプトと応答に含まれる機密データのスキャンを開始できます。

前提条件

AI Gateway で DLP を有効にする

  1. Cloudflare ダッシュボード にログインし、アカウントを選びます。
  2. AI > AI Gateway を開きます。
  3. DLP を有効にするゲートウェイを選びます。
  4. Firewall タブを開きます。
  5. Data Loss Prevention (DLP)On にします。

DLP ポリシーを追加する

DLP を有効にしたあと、機密データの扱いを定義するポリシーを作成できます。

  1. DLP セクションで Add Policy を選びます。

  2. 各ポリシーで次の項目を設定します。

    • Policy ID: このポリシーの一意な名前を入力します(例: Block-PII-Requests

    • DLP Profiles: 照合する DLP プロファイルを選びます。AI のリクエスト / 応答は、選んだ各プロファイルと照合されます。利用できるプロファイルは次のとおりです。

      • Financial Information — クレジットカード、銀行口座、ルーティング番号
      • Personal Identifiable Information (PII) — 氏名、住所、電話番号
      • Government Identifiers — 社会保障番号(SSN)、パスポート番号、運転免許証
      • Healthcare Information — 診療記録番号、患者データ
      • Custom Profiles — 組織固有のデータパターン
    • Action: 選んだプロファイルのいずれかが一致したときのアクションを選びます。

      • Flag — ブロックせず、監査用に検出を記録します
      • Block — リクエスト / 応答の処理を止めます
    • Check: スキャン対象を選びます。

      • Request — AI プロバイダーへ送るユーザープロンプトをスキャンします
      • Response — ユーザーへ返す前に AI モデルの応答をスキャンします
      • Both — リクエストと応答の両方をスキャンします
  3. Save を選び、ポリシー設定を保存します。

DLP ポリシーを管理する

設定の異なる DLP ポリシーを複数作成できます。

  • 複数ポリシーの追加: Add Policy を選び、プロファイルの組み合わせやアクションが異なるポリシーを追加します
  • ポリシーの有効化 / 無効化: 各ポリシー横のトグルで、設定を削除せずに個別に有効または無効にします
  • ポリシーの編集: 既存のポリシーを選び、設定を変更します
  • 変更の保存: 変更を適用するには、必ず Save を選びます

設定をテストする

DLP 設定のあと、次を行います。

  1. サンプルの機密データを含むテスト用 AI リクエストを、ゲートウェイ経由で送ります。
  2. AI Gateway Logs で、DLP スキャンが動作していることを確認します。
  3. 検出結果を確認し、必要に応じてプロファイルやアクションを調整します。

DLP イベントを監視する

AI Gateway で DLP ログを確認する

DLP イベントは AI Gateway のログに統合されます。DLP ポリシーが一致すると、ログエントリにはプロバイダー、モデル、トークン、コストといった標準フィールドに加えて、一致の詳細が含まれます。

  1. AI > AI Gateway > 対象のゲートウェイ > Logs を開きます。
  2. 任意のログエントリを選び、詳細を確認します。DLP ポリシーが発動したリクエストでは、ログに次の追加 DLP フィールドが含まれます。
フィールド 説明
DLP Action DLP ポリシーが実行したアクション: FLAG または BLOCK
DLP Policies Matched 一致した DLP ポリシーの ID
DLP Profiles Matched 一致した各ポリシー内で発動した DLP プロファイルの ID
DLP Entries Matched 各プロファイル内で一致した、特定の検出エントリ ID
DLP Check 一致が REQUESTRESPONSE、またはその両方で起きたかどうか

Logs API の DLP フィールド

Logs API でログを取得すると、DLP ポリシーが一致したリクエストのログエントリには、応答に DLP 固有のフィールドが含まれます。これらのフィールドには、ダッシュボードと cf-aig-dlp 応答ヘッダーに表示されるのと同じ一致データ(実行したアクション、一致したポリシー ID、プロファイル ID、エントリ ID)が含まれます。

ログフィールドの詳細は Logging のドキュメント を参照してください。

DLP イベントをフィルタする

DLP 関連のリクエストだけを表示するには、次を行います。

  1. Logs タブで Add Filter を選びます。
  2. フィルタオプションから DLP Action を選びます。
  3. 次のいずれかでフィルタします。
    • FLAG — 機密データがフラグされたリクエストだけを表示します
    • BLOCK — DLP ポリシーによりブロックされたリクエストだけを表示します

エラー処理

DLP ポリシーが発動すると、アプリケーションは応答ヘッダーとエラーコードで追加情報を受け取ります。

DLP 応答ヘッダー

リクエストが DLP ポリシーに一致した場合(Flag または Block のいずれでも)、一致の詳細を含む cf-aig-dlp ヘッダーが追加で返されます。

ヘッダーのスキーマ

{
  "findings": [
    {
      "profile": {
        "context": {},
        "entry_ids": ["string"],
        "profile_id": "string"
      },
      "policy_ids": ["string"],
      "check": "REQUEST" | "RESPONSE"
    }
  ],
  "action": "BLOCK" | "FLAG"
}

ヘッダー値の例

{
	"findings": [
		{
			"profile": {
				"context": {},
				"entry_ids": [
					"a1b2c3d4-e5f6-7890-abcd-ef1234567890",
					"f7e8d9c0-b1a2-3456-789a-bcdef0123456"
				],
				"profile_id": "12345678-90ab-cdef-1234-567890abcdef"
			},
			"policy_ids": ["block_financial_data"],
			"check": "REQUEST"
		}
	],
	"action": "BLOCK"
}

このヘッダーで、どの DLP プロファイルとエントリが一致したか、どのポリシーが発動したか、一致がリクエストと応答のどちらで起きたかをプログラムから判定できます。

ブロックされたリクエストのエラーコード

DLP がリクエストをブロックすると、アプリケーションは構造化されたエラー応答を受け取ります。

  • DLP によるリクエストのブロック

    • "code": 2029
    • "message": "Request content blocked due to DLP policy violations"
  • DLP による応答のブロック

    • "code": 2030
    • "message": "Response content blocked due to DLP policy violations"

アプリケーションでこれらのエラーを処理します。

try {
  const res = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
    prompt: userInput
  }, {
    gateway: {id: 'your-gateway-id'}
  })
  return Response.json(res)
} catch (e) {
  if ((e as Error).message.includes('2029')) {
    return new Response('Request contains sensitive data and cannot be processed.')
  }
  if ((e as Error).message.includes('2030')) {
    return new Response('AI response was blocked due to sensitive content.')
  }
  return new Response('AI request failed')
}

ベストプラクティス

  • まず Flag から始める: ブロックを導入する前に、「Flag」アクションで検出されるデータを把握します
  • 信頼度レベルの調整: 誤検知の許容度に応じて検出感度を調整します
  • 適切なプロファイルを使う: データ保護の要件に合う DLP プロファイルを選びます
  • 定期的な監視: DLP イベントを確認し、ポリシーが想定どおり動いていることを確かめます
  • 十分なテスト: 本番導入前に、サンプルの機密データで DLP の挙動を検証します

トラブルシューティング

AI Gateway 全般のトラブルシューティングは Troubleshooting を参照してください。

DLP が発動しない

  • ゲートウェイで DLP トグルが有効かを確認します
  • 選んだ DLP プロファイルがテストデータに適しているかを確認します
  • 信頼度レベルが高すぎないかを確認します

想定外のブロック

  • DLP ログを確認し、どのプロファイルが発動したかを見ます
  • 問題のあるプロファイルは信頼度レベルを下げることを検討します
  • 別のサンプルデータで試し、検出パターンを把握します
  • 必要に応じてプロファイルの選択を調整します

DLP 設定の追加サポートは Cloudflare Data Loss Prevention のドキュメント を参照するか、Cloudflare サポートチームへ問い合わせてください。

役に立ちましたか?