Cloudflare One の DLP(Data Loss Prevention)と CASB(Cloud Access Security Broker)は、プロファイル・検出エントリ・しきい値・適用先(Gateway / CASB統合)が独立したレイヤーとして存在する仕組みです。
重要な機能なのですが、設定が欠けると検知されないまま静かに素通りします。
本記事では、実際の設定作業でつまずきやすいポイントを、Cloudflare 公式ドキュメントの記述に基づいて整理します。
目次
- DLP の階層構造を理解する
- 検出エントリは個別に「有効化」が必要
- プロファイル設定(Profile settings)とは
- OCR(画像内テキスト検知)の設定
- しきい値と一致数 — 「質」と「量」の2つのフィルター
- Gateway への組み込み
- 方向(Body Phase)と対象アプリの絞り込み
- CASB との連携
- 対応ファイル形式・サイズの制約
- 設定前チェックリスト
- まとめ:症状 → 原因の切り分け
- 参考リンク
DLP の階層構造を理解する
Cloudflare の DLP は、以下の4つの階層で構成されています。この④まで完了しないと、①〜③をどれだけ正しく作っても DLP は一切機能しません。
| 階層 | 役割 |
|---|---|
| ① DLP プロファイル | 検出エントリをまとめた「セット」(例:Financial Information、Credentials and Secrets) |
| ② 検出エントリ | 正規表現・アルゴリズム・AI トピック等の「個別の検知ロジック」。プロファイル内で個別に ON/OFF |
| ③ プロファイル設定 | しきい値・一致数・OCR 等の「発火条件の調整」 |
| ④ 適用先 | Gateway HTTP ポリシー / CASB 統合に「実際に組み込む」 |
検出エントリは個別に「有効化」が必要
多くの事前定義プロファイルは、内部の検出エントリを個別に ON/OFF できる構造になっています。
To use a predefined profile, enable the detection entries you want and add the profile to a DLP policy.
— Cloudflare 公式ドキュメント
- 正しい認識:プロファイルを選ぶ=中の検出エントリを1つずつ確認し、必要なものを ON にする
- よくある誤解:プロファイル名を選べば、内包する全データ種別が自動的に検知対象になる
プロファイル名だけで安心せず、内部の検出エントリまで確認することが重要です。
プロファイル設定(Profile settings)とは
個々のプロファイルの「発火の厳しさ」を調整するパラメータです。アカウントレベル設定(DLP settings)とは役割が異なります。
| 設定項目 | 内容 |
|---|---|
| Match count | 1ファイル / HTTP 本文中の検出回数のしきい値 |
| Confidence threshold | 近接キーワード等による確からしさのしきい値 |
| OCR(※移行中) | 画像内テキストの抽出・検知。今後アカウントレベルに統合予定 |
| AI context analysis(※移行中) | 機械学習による周辺文脈評価。今後アカウントレベルに統合予定 |
OCR(画像内テキスト検知)の設定
OCR は2段階の設定で構成されています。
Step 1:アカウントレベルで ONZero Trust > Data loss prevention > DLP settings > OCR
OCR 機能そのものを有効化するマスタースイッチです。
Step 2:プロファイルごとに利用を選択
個別プロファイルの Settings > OCR
そのプロファイルで OCR 抽出結果を評価に使うかどうかを選択します。
対応形式には以下の制約があります。
| 項目 | 内容 |
|---|---|
| 対応拡張子 | .jpg / .jpeg / .png |
| サイズ制限 | 4 KB 〜 1 MB |
OCR はデフォルトで OFF です。アカウントレベルを ON にしていない、または対象プロファイルで OCR が選択されていないと、画像を渡すだけでは検知されません。1MB超の画像や非対応形式(PDF内スキャン画像など)も OCR 対象外のまま素通りします。
しきい値と一致数 — 「質」と「量」の2つのフィルター
Confidence threshold(質)
近接キーワード等による決定的なロジックで、ランダム性はありません。
- Low(デフォルト):正規表現のみ、近接キーワードほぼ見ない — 最も広く拾う
- Medium / High:追加検証で低確度の検出を除外
Match count(量)
Match count の実体は「無条件で許容される検出数」です。判定は「検出数 > 設定値」で行われ、設定値を超えて初めてアクション(ログ/ブロック)が発火します。重複カウント可(同じ番号が10回出現でも「10件」としてカウント)。
一致数 = 0 は「0件までは許容=1件でも発火」を意味する、最も敏感な設定です。
未定義動作ではありません。値を大きくするほど、まとまった件数が検出されるまでアクションを保留する(誤検知を抑制する)方向に働きます。逆に、少数の一致で確実に検知したい場合は 0(または未設定)のままにしておくのが適切です。
Gateway への組み込み
プロファイルを作っただけでは、通信は一切検査されません。以下の3ステップを経て初めて機能します。
- プロファイル作成 — 検出エントリを有効化
- Gateway ポリシーに追加 — HTTP ポリシーの DLP Profile セレクタへ
- Action 設定 — Block / Allow(Log) を選択
DLP not inspecting or blocking content is the most common issue reported. ...the cause is almost always that the traffic is not being decrypted.
— Cloudflare 公式トラブルシューティング
Test scan で検出できても、Gateway ポリシーに組み込まれていなければ本番トラフィックは無検査のままです。さらに TLS decryption(HTTPS インスペクション)がオフだと、HTTPS 本文は一切見えません。
方向(Body Phase)と対象アプリの絞り込み
Body Phase
Request Body(送信) / Response Body(受信)を分離指定できます。未指定時は両方を検査します。
Granular Controls
生成AIアプリでは対象 Operation(例:SendPrompt)を明示的に選ぶ必要があります。会話履歴取得(GetConversation)等は対象外になりやすい点に注意してください。
Operation 選択漏れがあると、ブロックした生成ストリームの内容が別経路(履歴取得等)で素通りする可能性があります。対象 Operation は網羅的に確認してください。
CASB との連携
CASB は Gateway とは別レイヤーの制約があります。
DLP プロファイルは CASB 統合にも個別追加が必要
CASB の「Content Findings」を出すには、DLP プロファイルを統合(Integration)側にも明示的に追加する必要があります(Cloud & SaaS > Integration > Configure > DLP profiles)。
If you add a DLP profile to an existing integration, CASB only scans files modified after you enabled the profile. To scan all files, enable during the integration setup flow.
— Cloudflare 公式ドキュメント
既存の静的ファイルはスキャン対象外のままです。全ファイルを対象にするには統合作成時に DLP を含める必要があります。ここでいう変更イベントとは、内容・名前・公開設定・オーナー・場所の変更を指します。
対応ファイル形式・サイズの制約
| 項目 | 内容 |
|---|---|
| 対応形式 | テキストベース(文書・表計算・PDF)。画像は非対応 |
| サイズ上限 | 100 MB 以下 |
| Java / R ソース | 5 KB 未満はスキップ |
| 対象母集団の考え方 | DLP finding は公開 / 社外共有 / 全社共有ファイルのみが対象母集団 |
プライベートファイルに機密データがあっても、共有状態が「公開・社外・全社」のいずれかでない限り DLP finding は出ません(Microsoft 365 / Google Workspace / Box / Dropbox 等、対応統合すべてに共通する仕様です)。
設定前チェックリスト
- プロファイル内の検出エントリを個別に確認・有効化したか
- 画像を検知したいなら OCR をアカウントレベルで ON にしたか
- TLS decryption がオンになっているか(Gateway 利用時)
- 生成AIアプリの Operation 選択に漏れがないか(履歴取得等)
- Confidence threshold は用途に応じて調整したか(Low=広く拾う/High=誤検知を減らす)
- Match count の意味(検出数がこの値を超えたら発火)を理解した上で設定しているか
- DLP プロファイルを Gateway HTTP ポリシーに実際に組み込んだか
- CASB 統合作成時に DLP プロファイルを含めたか(後付けは既存ファイル対象外)
判断に迷ったら本番前に Test scan で単体検証することをお勧めします。
まとめ:症状 → 原因の切り分け
| 症状 | 確認すべき原因 |
|---|---|
| 特定データ種別だけ検知されない | 検出エントリの個別有効化漏れ(プロファイル名だけでは判断不可) |
| 画像だけ検知されない | OCR が OFF、または非対応形式・サイズ超過 |
| Low 設定でも検知されない | TLS decryption 未設定/検出エントリ自体が未有効化 |
| Gateway では検知されるが本番で通過 | ポリシー未組み込み/Body Phase・Operation 選択漏れ |
| CASB の Content Findings が出ない | 統合側への DLP プロファイル未追加/後付け制約/対象母集団(公開共有のみ等) |
設定は「多層」、確認も「多層」で行う必要があります。どこか一つが欠けても、エラーは出ずに静かに素通りしてしまいます。
参考リンク
- DLP プロファイル設定(しきい値・一致数)
- 事前定義プロファイル一覧
- DLP settings(アカウントレベル / OCR)
- DLP トラブルシューティング(TLS decryption 等)
- CASB で機密データをスキャン(後付け制約・ファイル制限)
- Test scan(単体検証ツール)
本記事の内容は上記の Cloudflare 公式ドキュメントに基づいて作成しています。最新の仕様は必ず公式ドキュメントでご確認ください。
