概要

ZDR(Zero Data Retention)は、しばしば「データが外部に出ない契約」と誤解される。だが実際には、プロバイダが応答を返した後に、プロンプトや応答を保存しない という約束である。データは送られている。処理もされている。違うのは、その後の保持と利用の条件だ。

この混同は、オンプレミスや個人開発の現場で特に危険だ。ZDRだから大丈夫、学習に使われないから大丈夫、ローカルだから大丈夫。それぞれの「大丈夫」が、守っている範囲を勘違いさせる。


4つを分ける

論点問い代表的な制御
送信データはどこへ行くかローカル実行、BYOK、データレジデンシー
保持応答後に残るかZDR、保持期間の短縮、削除
学習利用モデルの改善に使われるか学習オプトアウト、商用契約
アクセス誰が読めるか法域、監査、暗号化、秘密計算

ZDRは2番目の論点に効く。1番目、3番目、4番目を自動的に解決するわけではない。


ZDRでも送信はしている

OpenAIのAPIは、ZDRの対象でも推論のためにプロンプトを送信する。ZDRは、虐待監視ログから顧客コンテンツを除外し、store パラメータを強制的に false にする。だが、ZDRの対象外のエンドポイントや機能は、アプリケーション状態を保存しうる。Web検索のライブアクセスはHIPAAの対象外で、MCPサーバーに送られたデータはそのサーバーの保持ポリシーに従う。

Anthropicも同様だ。ZDRは「API応答が返った後に、顧客のプロンプトや応答を保存しない」と定義されている。ただし、法令や安全ポリシー違反でフラグが立った場合、最大2年間保持することがある。コンシューマ向け製品(Free/Pro/Max/Ultra)や、Claude Console、一部のステートフル機能はZDRの対象外だ。第三者のツールやMCP連携も対象外である。

つまり、ZDRは「送らない」ではなく「応答後に残さない」 だ。送信経路、法域、第三者連携は別に確認する必要がある。


「学習に使わない」とも違う

ZDRと「学習に使わない」は別の約束だ。

  • 学習に使わないが、虐待監視のために30日保持する
  • 学習にも使わず、ZDRで保持もしない
  • 学習に使うが、ZDRではない
  • ローカルで動かすので、そもそも外部に送らない

この4つは独立に成立する。個人が無料枠を使うとき、「学習には使わない」という表示だけを見て「ZDRと同じ」と判断すると、保持や法域の条件を見落とす。


ローカルLLMでも外に出る

ローカルLLMは1番目のリスク(モデル提供者への送信)を大きく下げる。だが、ハーネスに websearch や webfetch があれば、外部のWebとはつながる。curl や pip やMCPがあれば、外部への送信経路はいくらでも作れる。

オンプレ化で消えるのは、主に「モデル提供者への入力送信」だ。残るのは、外部入力(プロンプトインジェクション)、実行権限(持ち出し)、供給網(モデル・パッケージ・MCP) である。この分離は エージェントのリスクは4層に分かれる で整理している。


実務での確認順序

  1. そのデータは、そもそも外部に出してよい区分か
  2. 出るとして、どこへ送られるか(モデル提供者、MCP、検索API、ログ)
  3. 応答後に保持されるか(ZDR、保持期間、例外)
  4. 学習に使われるか(契約、オプトアウト)
  5. 誰がアクセスしうるか(法域、当局、第三者)
  6. ハーネス側の外部接続は何が開いているか

「ZDRだから安全」ではなく、「どのリスクを、どの契約と設計で下げているのか」 を言えるようにする。


まとめ

ZDRは、データが外に出ない魔法ではない。保持を減らす契約 である。ローカルLLMは、送信を減らす構成だが、外部入力と実行権限と供給網までは消さない。それぞれの対策が、どの層に効いているかを分けて考える必要がある。


関連ノート


参考資料