Cloudflare Zero Trust でデータ損失防止(DLP)を使うには、まず DLP プロファイルを定義します。DLP プロファイル は、辞書、事前構築済みの検出、カスタムロジックを持つ複合オブジェクトです。Gateway ポリシーのセレクターとして参照できます。
Cloudflare が用意した事前定義プロファイルを使うか、正規表現(regex)、事前定義の検出エントリ、DLP データセットを組み合わせて独自のカスタムプロファイルを作成できます。
- Cloudflare ダッシュボード ↗ で、Zero Trust > Data loss prevention > Profiles を開きます。
- 定義済みプロファイル を選び、Edit を選択します。
- 必要に応じて、1 つ以上の Detection entries を有効にします。
- Save profile を選択します。
ほとんどの定義済みプロファイルは、有効にした検出エントリのいずれかが一致すると一致します。Personally Identifiable Information (PII) Record プロファイルは例外で、プロファイルが一致するには、近接して少なくとも 3 つの異なる検出エントリが必要です。
-
Cloudflare ダッシュボード ↗ で、Zero Trust > Data loss prevention > Profiles を開きます。
-
Create profile を選択します。
-
プロファイルの名前と、任意で説明を入力します。
-
プロファイルに検出エントリを追加します。
カスタムエントリを作成する
-
Create custom entry を選択します。
-
作成する検出エントリの種類を選び、値を設定します。
対応している検出エントリの種類は、検出エントリを設定する を参照してください。
-
検出エントリを保存するには、Done を選択します。
-
-
(任意)再利用できる分類ルールを含めるため、データクラスを追加します。
- Add data classes を選択します
- 追加するデータクラスを選び、Confirm を選択します
-
(任意)ラベルをプロファイルの一致条件として使います。
- 機密スキーマと最小機密レベルを選びます。
- データタググループと、1 つ以上のデータタグを選びます。
ラベル、テンプレート、データクラスの詳細は、Data Classification を参照してください。
-
(任意)プロファイルの プロファイル設定 を設定します。
-
Save profile を選択します。
多くの Cloudflare 利用者にとって、Zero Trust は機密データの流出を防ぐほぼ唯一の手段です。一方、複雑なインターネットおよび SaaS アプリのセキュリティ戦略のなかで、初期のインライン対策のひとつとして Zero Trust を使う場合もあります。どちらの形でも、効果的で適切な DLP ポリシーと運用を作るには、まず基本原則から定義します。
個人識別情報(PII)、保護対象保健情報(PHI)、財務情報、ソースコードなど、既存の分類に当てはまる一般的なデータパターンを最も気にする場合は、デフォルトの事前定義プロファイル の利用を推奨します。
組織のニーズにより近づけるには、既存ライブラリとカスタム文字列検出またはデータベースの両方に一致する複合プロファイルも作成できます。例:
| セレクター | 演算子 | 値 | 論理 | アクション |
|---|---|---|---|---|
| DLP Profile | in | Credentials and Secrets | Or | Block |
| DLP Profile | in | AWS Key Dataset |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "block",
"description": "Detect secrets and AWS keys",
"enabled": true,
"filters": [
"http"
],
"name": "Secrets and AWS keys",
"precedence": 0,
"traffic": "any(dlp.profiles[*] in <CREDENTIALS_DLP_PROFILE_UUID>) or any(dlp.profiles[*] in <AWS_DLP_PROFILE_UUID>)"
}'データパターンの形や文脈がさまざまなら、1 つまたは複数の正規表現でカスタムプロファイルを作成することを検討してください。
たとえば、ユーザーが CF1234-56789 形式の製品 SKU を共有したときに検出するカスタム式を使えます。
-
次のカスタムエントリで カスタムプロファイルを作成します。
検出エントリ名 値 Product SKUs CF[0-9]{1,4}-[0-9]{5} -
次の式で HTTP ポリシーを作成します。
セレクター 演算子 値 論理 アクション DLP Profile in Product SKUs And Block User Email matches regex [a-z0-9]{0,15}@example.com
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "block",
"description": "Detect product SKUs shared by users in organization",
"enabled": true,
"filters": [
"http"
],
"name": "Detect product SKU leaks",
"precedence": 0,
"traffic": "any(dlp.profiles[*] in <SKU_DLP_PROFILE_UUID>)",
"identity": "identity.email matches \"[a-z0-9]{0,15}@example.com\""
}'データが、定義済みの明確な データセット なら、データベースをアップロードして Exact Data Match または Custom Wordlist の機能でプロファイルを作成できます。Exact Data Match と Custom Wordlist には、次の主な違いがあります。
| Exact Data Match | Custom Wordlist | |
|---|---|---|
| 暗号化 | ハッシュ化し、暗号化したトラフィックと比較する | 平文で保存する |
| ペイロードログ | 一致箇所はログでマスキングされる | 一致箇所がログに表示される |
| 用途 | PII(氏名、住所、クレジットカード番号など) | 機密性が高くないデータ(知的財産や SKU 番号など) |
機密性の高いデータセットには Exact Data Match、キーワードのリストには Custom Wordlist の利用を推奨します。
データセットが変わり、増えていく場合は、Cloudflare Zero Trust のデータソースを更新するパイプラインを構築することを推奨します。詳細は、アカウントチームにお問い合わせください。
データにすでに Microsoft Information Protection(MIP)のラベル体系がある場合、Cloudflare は転送中のその値を自動検出できます。始めるには、CASB 連携 で Microsoft 365 アカウントを接続します。Cloudflare は既存の MIP 定義を自動的に Zero Trust へ取り込みます。その MIP 定義を使って、Gateway ポリシー用の DLP プロファイルを作成できます。
詳細は 連携プロファイル を参照してください。
トラフィックにデータ損失防止を適用し、偽陽性を減らし、使えるデータを集める最善の方法は、機密データポリシーのなかで既に把握している対象から始めることです。すべてのトラフィックで社会保障番号(SSN)や財務情報などの機密データを検出するポリシーをいきなり作るのではなく、機密データの種類と、既知のデータソースまたはリスクの高い宛先の両方を対象にするポリシーから始めてください。これらのソースは、組織の内部でも外部でもかまいません。
多くの組織は、ユーザーデバイスから重要な SaaS アプリケーションへ出ていく財務情報を検出して記録したいと考えています。偽陽性とログのノイズを抑えるため、対象データと対象宛先の両方を指定するポリシーから始めることを Cloudflare は推奨します。たとえば、ChatGPT や Gemini などの AI チャットボットへ財務情報を送ることをブロックできます。
| セレクター | 演算子 | 値 | 論理 | アクション |
|---|---|---|---|---|
| DLP Profile | in | Financial Information | And | Block |
| Content Categories | in | Artificial Intelligence |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "block",
"description": "Prevent financial information from being shared with AI tools",
"enabled": true,
"filters": [
"http"
],
"name": "Block AI financial info",
"precedence": 0,
"traffic": "any(dlp.profiles[*] in <FINANCIAL_INFO_DLP_PROFILE_UUID>) and any(http.request.uri.content_category[*] in {184})"
}'既知のソースからのデータの流れと量を分析したら、より一般的なソースに対して、より専門的または明示的なデータセットに焦点を移せます。機密データを意図的に転送する既知の内部ロケーションは、許可したい場合があります。
どちらの種類のポリシーについてもログを確認し、偽陽性の割合を評価して自信がついたら、データ損失防止ポリシーをより広く試せます。