IP アドレスやポートなどのセレクターでリクエストをフィルタし、ネットワークレベルのトラフィックを制御できます。ID プロバイダー と連携して、ID ベースのフィルタリングを適用することもできます。
新しいネットワークポリシーを作成するには:
-
Cloudflare ダッシュボード ↗ で Zero Trust > Traffic policies > Firewall policies を開きます。
-
Network タブで Add a network policy を選びます。
-
ポリシーに名前を付けます。
-
Traffic で、許可またはブロックするトラフィックを定義する論理式を組み立てます。
-
論理式に一致したトラフィックに対する Action を選びます。たとえば、デバイスのシリアル番号 のリストを使い、会社のデバイスから Cloudflare One Client で接続している場合にだけアプリケーションへアクセスできるようにできます。
セレクター 演算子 値 論理 アクション SNI Domain is internalapp.comAnd Block Passed Device Posture Checks not in Device serial numbers -
Create policy を選びます。
-
次の権限を持つ API トークンを作成 します。
種類 項目 権限 Account Zero Trust Edit -
(任意)API の環境変数に アカウント ID と API トークンを含めます。
-
Create a Zero Trust Gateway rule エンドポイントへ
POSTリクエストを送ります。たとえば、デバイスのシリアル番号 のリストを使い、会社のデバイスから Cloudflare One Client で接続している場合にだけアプリケーションへアクセスできるようにできます。Create a Zero Trust Gateway rulebash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "Enforce device posture", "description": "Ensure only devices in Zero Trust organization can connect to application", "precedence": 0, "enabled": true, "action": "block", "filters": [ "l4" ], "traffic": "any(net.sni.domains[*] == \"internalapp.com\")", "identity": "", "device_posture": "not(any(device_posture.checks.passed[*] in {\"LIST_UUID\"}))" }'
{
"success": true,
"errors": [],
"messages": []
}API は、ポリシーの概要とリクエストの結果を返します。
詳細は ネットワークポリシー を参照してください。