多くのサードパーティサービス(銀行やパートナー API など)は、既知の IP アドレス一覧からの接続だけを許可します。デフォルトでは、Cloudflare Gateway 経由で出ていくトラフィックの送信元 IP は、ほかの Cloudflare One Client ユーザーと共有されます。そのため、上流サービスは IP だけでは組織を識別できません。
専用エグレス IP がこの問題を解決します。アカウント専用の静的 IP アドレスで、上流の許可リストに追加できます。
エグレスポリシーは、接続ごとに使う専用エグレス IP を制御します。ユーザー ID、送信元または宛先 IP アドレス、地理位置情報などの属性でトラフィックを照合できます。エグレスポリシーに一致しないトラフィックは、いちばん性能の良い専用エグレス IP にフォールバックします。
Cloudflare は Cloudflare One Client のエグレス IP 範囲を公開していません。Cloudflare One Client のエグレス IP は Cloudflare の IP 範囲 ↗ にも載っていません。専用の Cloudflare One Client エグレス IP を取得するには、アカウント担当者に問い合わせてください。
エグレスポリシーに一致しないトラフィックは、いちばん近い Cloudflare データセンターから、デフォルトの Gateway エグレス IP で出ていきます。アカウントが専用エグレス IP を使う場合も、デフォルトの共有 IP を使う場合も同じです。
2 つのデータセンターがユーザーから等距離の場合、Gateway はそのあいだでトラフィックを分割します。ロードバランサーは、どのデータセンターがリクエストを処理しても、各ユーザーを同じエグレス IP に留めます。
一部の上流サービスは、特定の IP バージョンの接続だけを受け付けます。エグレストラフィックを IPv4 または IPv6 だけに固定するには、先に DNS トラフィックをフィルタしていること を確認し、AAAA または A レコードをブロックする DNS ポリシーを作成します。
次のエグレスポリシーは、サードパーティネットワーク向けのトラフィックすべてに、静的な送信元 IP を使います。
| ポリシー名 | セレクター | 演算子 | 値 | エグレス方法 |
|---|---|---|---|---|
| サードパーティプロバイダーへアクセス | Destination IP | is | 198.51.100.158 |
専用 Cloudflare エグレス IP |
| プライマリ IPv4 アドレス | IPv6 アドレス |
|---|---|
203.0.113.88 |
2001:db8::/32 |
多くの SaaS プロバイダー(Microsoft 365、Salesforce、Workday など)は、特定の IP アドレスからの接続にアクセスを制限できます。専用エグレス IP を Gateway と組み合わせて、この制限を適用できます。
- アカウント担当者から 専用エグレス IP を取得 し、割り当てられた IPv4 と IPv6 アドレスを控えます。
- SaaS プロバイダー向けのトラフィックを専用エグレス IP 経由で送る エグレスポリシーを作成 します。プロバイダーが公開している IP 範囲を Destination IP セレクターで指定します。あるいは、Application セレクター(Beta)でプロバイダー名に一致させる方法もあります。
- SaaS プロバイダーの許可リストにエグレス IP を追加 し、組織の IP からの接続だけを受け付けるようにします。
- HTTP ポリシーと組み合わせ、より細かい制御を追加します。たとえば、個人アカウントへのファイルアップロードをブロックする、DLP プロファイルで機密データの持ち出しを防ぐ、アクセス許可の前に デバイスポスチャチェック を必須にする、などです。
このパターンにより、SaaS アプリケーションへのアクセスは、セキュリティポリシーが適用される Gateway 経由のトラフィックに限定されます。SaaS プロバイダー側でも、トラフィックが自組織から来ていることを確認できます。
キャッチオールポリシーがないと、明示的なエグレスポリシーに一致しないトラフィックは、いちばん近い専用エグレス IP のロケーションを使おうとします。想定外の IP 割り当てを避け、性能を保つには、残りのトラフィックをデフォルトの Zero Trust IP 範囲経由で送るキャッチオールポリシーを作成します。
| ポリシー名 | Selector | Operator | Value | エグレス方法 |
|---|---|---|---|---|
| Default egress policy | Protocol | in | All options (Protocol) |
Cloudflare default egress method |
Gateway ポリシーは UI で 上から下へ 評価されます。キャッチオールポリシーはリストの一番下に置き、より具体的なポリシーを先に評価します。
エグレスポリシーを設定するとき、デフォルトの Cloudflare エグレス方法で出すか、専用エグレス IP で出すかを選べます。
Use default Cloudflare egress method は、すべての Zero Trust アカウントで共有されるデフォルトの送信元 IP 範囲経由でトラフィックを送ります。トラフィックは最寄りの Cloudflare データセンターから出ていくため、性能がいちばん良くなります。
Use dedicated egress IPs (Cloudflare or BYOIP) は、ドロップダウンで選んだプライマリ IPv4 アドレスと IPv6 範囲経由でトラフィックを送ります。
専用エグレス IP を使うエグレスポリシーを作成するときは、トラフィックの耐障害性を確保するためにセカンダリ IPv4 アドレスを設定する必要があります。セカンダリ IPv4 アドレスには 0.0.0.0 を指定するか、プライマリ IPv4 アドレスとは異なる Cloudflare ロケーションを指定できます。0.0.0.0 を設定すると、Gateway はユーザーにいちばん近いロケーションへトラフィックをルーティングします。プライマリ IPv4 アドレスの物理ロケーションが使えない場合、Gateway はデフォルトの Cloudflare エグレス範囲、または指定したセカンダリロケーションへトラフィックをルーティングします。
プライマリ IPv4 アドレスに紐づくデータセンターが停止すると、Gateway はセカンダリデータセンターへフェイルオーバーし、トラフィックの途切れを防ぎます。IPv6 トラフィックはどの Cloudflare データセンターからでも出ていけるため、セカンダリ IPv6 アドレスは不要です。Cloudflare が提供する IP を使うか、自前の IP アドレスを持ち込む(BYOIP) ことができます。
IPv4 と IPv6 のエグレス動作について詳しくは、エグレスロケーション を参照してください。
セレクターは、Gateway がエグレストラフィックをポリシーと照合する条件です。Gateway は次のセレクターを評価します。
人気の Web アプリケーションのリスト(随時追加されます)に対して、egress ポリシーを適用できます。詳細は アプリケーションとアプリタイプ を参照してください。
| UI 名 | API の例 |
|---|---|
| Application | any(app.ids[*] in {505}) |
このセレクターは、Traffic and DNS モード、PAC ファイル、または Browser Isolation にオンボードしたトラフィックでのみ使えます。詳細は セレクターの前提条件 を参照してください。
Cloudflare Radar が分類する、特定の セキュリティカテゴリ に属するアプリケーションです。
| UI 名 | API の例 |
|---|---|
| Content Categories | any(net.fqdn.content_category[*] in {1}) |
このセレクターは、Traffic and DNS モード、PAC ファイル、または Browser Isolation にオンボードしたトラフィックでのみ使えます。詳細は セレクターの前提条件 を参照してください。
リクエストの宛先の大陸です。位置情報は、対象の IP アドレスから判定します。大陸を指定するには、Value フィールドに 2 文字のコードを入力します。
| 大陸 | コード |
|---|---|
| アフリカ | AF |
| 南極 | AN |
| アジア | AS |
| ヨーロッパ | EU |
| 北アメリカ | NA |
| オセアニア | OC |
| 南アメリカ | SA |
| UI 名 | API の例 |
|---|---|
| Destination Continent IP Geolocation | net.dst.geo.continent == "EU" |
リクエストの宛先国です。地理位置情報は、対象の IP アドレスから判定します。国を指定するには、Value 欄に ISO 3166-1 Alpha 2 コード ↗ を入力します。
| UI 名 | API の例 |
|---|---|
| Destination Country IP Geolocation | net.dst.geo.country == "RU" |
リクエストの宛先の IP アドレスです。
| UI 名 | API の例 |
|---|---|
| Destination IP | any(net.dst.ip[*] in {10.0.0.0/8}) |
リクエストの宛先ポート番号です。
| UI 名 | API の例 |
|---|---|
| Destination Port | net.dst.port == 2222 |
Device Posture セレクターを使うと、管理者はエンドユーザーデバイスからのシグナルに基づいて、内部および外部リソースへのアクセスを保護できます。たとえば、セキュリティ管理者は、特定のソフトウェアがデバイスにインストールされているか、デバイスやソフトウェアが特定の方法で設定されているかに応じて、内部アプリケーションへのアクセスをすべて制限できます。
デバイスポスチャチェックの詳細は、Device posture を参照してください。
| UI 名 | API の例 |
|---|---|
| Passed Device Posture Checks | any(device_posture.checks.failed[*] in {"1308749e-fcfb-4ebc-b051-fe022b632644"}), any(device_posture.checks.passed[*] in {"1308749e-fcfb-4ebc-b051-fe022b632644"})" |
このセレクターは、ドメインとそのすべてのサブドメインに一致します。たとえば、example.com と www.example.com などのサブドメインに一致できます。
| UI 名 | API の例 |
|---|---|
| Domain | any(net.fqdn.domains[*] == "example.com") |
Gateway ポリシーは、非ラテン文字を含む domain を直接はサポートしません。非ラテン文字を含む domain を使うには、リスト に追加します。
このセレクターは、Traffic and DNS モード、PAC ファイル、または Browser Isolation にオンボードしたトラフィックでのみ使えます。詳細は セレクターの前提条件 を参照してください。
このセレクターは、指定したホスト名だけと照合します。たとえば、test.example.com には一致しますが、example.com や www.test.example.com には一致しません。
| UI 名 | API の例 |
|---|---|
| Host | net.fqdn.host == "example.com" |
Gateway ポリシーは、非ラテン文字を含む hostname を直接はサポートしません。非ラテン文字を含む hostname を使うには、リスト に追加します。
このセレクターは、Traffic and DNS モード、PAC ファイル、または Browser Isolation にオンボードしたトラフィックでのみ使えます。詳細は セレクターの前提条件 を参照してください。
パケットの送信に使うプロトコルです。
| UI 名 | API の例 |
|---|---|
| Protocol | net.protocol == "tcp" |
ブラウザーが HTTP トラフィックを転送する プロキシサーバー です。
| UI 名 | API の例 |
|---|---|
| Proxy Endpoint | proxy.endpoint == "3ele0ss56t.proxy.cloudflare-gateway.com" |
リクエストを送ったユーザーの大陸です。
位置情報は、デバイスのパブリック IP アドレス(通常はユーザーの ISP が割り当てます)から判定します。大陸を指定するには、Value フィールドに 2 文字のコードを入力します。
| 大陸 | コード |
|---|---|
| アフリカ | AF |
| 南極 | AN |
| アジア | AS |
| ヨーロッパ | EU |
| 北アメリカ | NA |
| オセアニア | OC |
| 南アメリカ | SA |
| UI 名 | API の例 |
|---|---|
| Source Continent IP Geolocation | net.src.geo.continent == "North America" |
リクエストを送ったユーザーの国です。
地理位置情報は、デバイスの公開 IP アドレス(通常はユーザーの ISP が割り当てます)から判定します。国を指定するには、Value に ISO 3166-1 Alpha-2 コード ↗ を入力します。
| UI 名 | API の例 |
|---|---|
| Source Country IP Geolocation | net.src.geo.country == "RU" |
このセレクターは、ユーザーのローカルネットワークが割り当てたプライベート IP アドレスから Gateway に届くリクエストに対して、egress ポリシーを適用します。
| UI 名 | API の例 |
|---|---|
| Source Internal IP | net.src.internal_src_ip == "192.168.86.0/27" |
Gateway がプロキシするデバイスの送信元 IP アドレスです。
| UI 名 | API の例 |
|---|---|
| Source IP | net.src.ip[*] in {10.0.0.0/8} |
Gateway がプロキシするデバイスの送信元ポートです。
| UI 名 | API の例 |
|---|---|
| Source Port | net.src.port == "2222" |
これらのセレクターは、ID 属性と照合します。
| UI 名 | API の例 |
|---|---|
| User Email | identity.email == "user@example.com" |
| User Name | identity.name == "Test User" |
| User Group IDs | any(identity.groups[*].id in {"group_id"}) |
| User Group Names | any(identity.groups[*].name in {"group_name"}) |
| User Group Emails | any(identity.groups[*].email in {"group@example.com"}) |
| SAML Attributes | any(identity.saml_attributes["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"] in {"Test User"}) |
このセレクターは、Cloudflare One Client 経由で特定の 仮想ネットワーク を通るすべてのトラフィックに一致します。
| UI 名 | API の例 |
|---|---|
| Virtual Network | net.vnet_id == "957fc748-591a-e96s-a15d-1j90204a7923" |
比較演算子は、Gateway がトラフィックをセレクターと照合する方法です。ダッシュボードのポリシービルダーで Selector を選ぶと、Operator のドロップダウンに、そのセレクターで使える選択肢が表示されます。
| 演算子 | 意味 |
|---|---|
| is | 定義した値と等しい |
| is not | 定義した値と等しくない |
| in | 定義した値のいずれかと一致する |
| not in | 定義した値のいずれとも一致しない |
| in list | 定義済みの リスト に含まれる |
| not in list | 定義済みの リスト に含まれない |
| matches regex | 正規表現が true と評価される |
| does not match regex | 正規表現が false と評価される |
| greater than | 定義した数値を超える |
| greater than or equal to | 定義した数値以上 |
| less than | 定義した数値未満 |
| less than or equal to | 定義した数値以下 |
単一の値を入力するか、正規表現で値の範囲を指定できます。
Gateway は正規表現の評価に Rust を使います。Rust の実装は、ほかで使われる正規表現ライブラリと少し異なります。正規表現が一致するか確認するには、Rustexp ↗ を使えます。
式内の複数の条件を評価するには、And 論理演算子を選びます。これらの式は、Or 論理演算子でさらに比較できます。
| 演算子 | 意味 |
|---|---|
| And | 式内のすべての条件に一致する |
| Or | 式内のいずれかの条件に一致する |
Or 演算子は、同じ式グループ内の条件に対してのみ使えます。たとえば、Traffic の条件と Identity or Device Posture の条件は比較できません。
Application、Content Categories、Domain、Host セレクターは、エグレスポリシーで動く前に追加のセットアップが必要です。これらのセレクターを使うポリシーを導入する前に、Host セレクター を参照してください。
これらのセレクターは、エグレスポリシーの適用時ではなく、Gateway が DNS クエリを処理するときに宛先 IP アドレスを解決します。解決された宛先 IP とエグレス IP が別のリージョンにあると、地理位置制限や IP 許可リストを適用している宛先への接続が失敗することがあります。詳細は DNS 解決ロケーション を参照してください。