Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

プロキシエンドポイント

最終更新 Markdown で表示Agent セットアップ

プロキシエンドポイントを使うと、デバイスにクライアントをインストールせずに Gateway ポリシーを適用できます。ブラウザーレベルで Proxy Auto-Configuration(PAC)ファイル を設定すると、フィルタリングとポリシー適用のためにトラフィックを Gateway 経由でルーティングできます。Cloudflare は、アイデンティティベースの 認可エンドポイント送信元 IP プロキシエンドポイント の 2 種類のプロキシエンドポイントに対応しています。

プロキシエンドポイントを使う場面

プロキシエンドポイントは、Cloudflare One Client をデプロイできない環境向けです。よくある用途は次のとおりです。

  • 仮想デスクトップ(VDI): ユーザーが仮想マシンにログインし、ブラウザーでインターネットへアクセスする。
  • コンプライアンスで制限されたエンドポイント: エンドポイントへのソフトウェアインストールが、法的または技術的に禁止されている環境。
  • レガシー SWG からの移行: PAC ファイルを使うレガシー Secure Web Gateway から移行する組織。

ログ

プロキシエンドポイント経由のトラフィックは Zero Trust Network Session Logs を生成し、LogpushLog Explorer で利用できます。

PAC ファイルとは

PAC ファイルとは、ブラウザーに対して、宛先サーバーへ直接送らずプロキシサーバーへトラフィックを転送するよう指示できる JavaScript 関数を含むファイルです。

エンドユーザーが Web サイトを開くと、ブラウザーはリクエストをアカウントに紐づく Cloudflare プロキシサーバーへ送り、Gateway がフィルタリングします。PAC ファイルはリクエストごとにブラウザーが評価し、トラフィックをプロキシ経由にするか直接接続するかを決めます。PAC ファイルでプロキシした HTTP トラフィックのうち、Gateway が すべての種類をフィルタリングできるわけではない 点に注意してください。

PAC ファイルには次の利点があります。

  • 一元管理: 個別デバイスを再設定せず、1 か所でルーティングルールを更新できます
  • 柔軟なルーティング: ドメイン、IP 範囲、プロトコルに応じて、トラフィックを別のプロキシや直接接続へ振り分けられます
  • 負荷分散: 複数のプロキシサーバーへトラフィックを分散し、自動フェイルオーバーできます

プロキシエンドポイントの種類

Cloudflare One は、認可方式の異なる 2 種類のプロキシエンドポイントを提供します。

プロキシエンドポイントを作成したあとに種類は変更できません。別の認可方式が必要な場合は、新しいプロキシエンドポイントを作成してください。

認可エンドポイント

認可エンドポイントは Cloudflare Access を使い、Zero Trust 認可を提供します。ユーザーはアイデンティティプロバイダーで認証し、Access ポリシーを通過してからプロキシエンドポイントを利用できます。

認可エンドポイントを使う場面は次のとおりです。

  • ユーザーレベルの認証とアイデンティティベースのポリシーが必要
  • 特定ユーザーとプロキシトラフィックを紐づけたい
  • 組織がアイデンティティプロバイダー(Okta、Microsoft Entra ID、Google Workspace など)経由のログインを必須にしている
  • プロキシへアクセスできる人を細かく制御したい

送信元 IP エンドポイント

送信元 IP エンドポイントは、発信元 IP アドレスに基づいてトラフィックを認可します。事前設定した IP アドレスからのトラフィックだけがプロキシエンドポイントを利用できます。

送信元 IP エンドポイントを使う場面は次のとおりです。

  • オフィスやネットワーク拠点の集合が固定されている
  • ユーザー認証なしの、より簡単なセットアップにしたい
  • デバイスが共通のエグレス IP アドレスを共有している
  • 個別ユーザーの識別が不要

1. プロキシエンドポイントを作成する

認可エンドポイント

認可エンドポイント を追加するには:

  1. Cloudflare OneNetworks > Resolvers & Proxies を開き、Proxy endpoints を開きます。
  2. Proxy endpointsAdd an endpoint を選びます。
  3. Add an authorization endpoint を選びます。
  4. エンドポイントに名前を付けます。
  5. アプリケーションへのアクセスを制御する Access ポリシー を追加します。既存ポリシーを選ぶか、新しいポリシーを作成できます。
  6. サポートするログイン方法を選びます。利用可能なログイン方法をすべて受け入れる場合は、Accept all available identity providers をオンにします。
  7. (任意)アイデンティティプロバイダーが 1 つだけの場合は、Apply instant authentication をオンにすると、ユーザーがプロキシエンドポイントに到達したときのアイデンティティプロバイダー選択をスキップできます。
  8. Create を選びます。

送信元 IP エンドポイント

送信元 IP エンドポイント を追加するには:

  1. Cloudflare OneNetworks > Resolvers & Proxies を開き、Proxy endpoints を開きます。
  2. Proxy endpointsAdd an endpoint を選びます。
  3. Add a source IP endpoint を選びます。
  4. エンドポイントに名前を付けます。
  5. デバイスの送信元 IP アドレスを CIDR 表記で追加します。例:
    • IPv4: 192.0.2.0/8
    • IPv6: 2001:0db8:0000:0000:0000:1234:5678:0000/32
  6. Save endpoint を選びます。

認可エンドポイント

認可エンドポイントを作成するには:

  1. Create a Proxy Endpoint を、次の呼び出しで使います。

    Create a proxy endpointbash
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/proxy_endpoints" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"kind": "identity",
    		"name": "any_name"
    	}'
  2. レスポンスは次のような出力を返します。

    出力例json
    {
    	"result": {
    		"kind": "identity",
    		"id": "d969d7bf-ec28-4291-9af0-86825f472c21",
    		"name": "Identity Proxy Endpoint",
    		"created_at": "2014-01-01T05:20:00.12345Z",
    		"updated_at": "2014-01-01T05:20:00.12345Z",
    		"subdomain": "3ele0ss56t"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }

    API が返す subdomain の値を控えてください。Access アプリケーションの作成に使います。

  3. Add An Access Application を使い、プロキシエンドポイントを Access ポリシーに関連付けます。

    Required API token permissions

    At least one of the following token permissions is required:
    • Access: Apps and Policies Write
    Add an Access applicationbash
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/apps" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"domain": "<SUBDOMAIN>.proxy.cloudflare-gateway.com",
    		"name": "Proxy Endpoint App",
    		"session_duration": "12h",
    		"type": "proxy_endpoint",
    		"policies": [
    				{
    						"id": "<ACCESS_POLICY_ID>"
    				}
    		]
    	}'

    <SUBDOMAIN> を手順 2 のサブドメインに、<ACCESS_POLICY_ID> を既存の Access ポリシー の ID に置き換えます。

送信元 IP エンドポイント

送信元 IP エンドポイントを作成するには:

  1. Create A Proxy Endpoint を、次の呼び出しで使います。

    Create a proxy endpointbash
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/proxy_endpoints" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"name": "any_name",
    		"ips": [
    				"<PUBLIC_IP>",
    				"<PUBLIC_IP2>",
    				"<PUBLIC_IP3>"
    		]
    	}'

    <PUBLIC_IP> を、デバイスの送信元 IP アドレス(CIDR 表記)に置き換えます。例:

    • IPv4: 192.0.2.0/8
    • IPv6: 2001:0db8:0000:0000:0000:1234:5678:0000/32
  2. レスポンスは次のような出力を返します。

    出力例json
    {
    	"result": {
    		"id": "d969d7bf-ec28-4291-9af0-86825f472c21",
    		"name": "test",
    		"created_at": "2022-03-02T10:57:18.094789Z",
    		"updated_at": "2022-03-02T10:57:18.094789Z",
    		"ips": ["90.90.241.229/8"],
    		"subdomain": "3ele0ss56t"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }

    API が返す subdomain の値を控えてください。Cloudflare プロキシサーバーのドメインは次の形式です。

    <SUBDOMAIN>.proxy.cloudflare-gateway.com

    上の例では、サブドメインは 3ele0ss56t、プロキシサーバードメインは 3ele0ss56t.proxy.cloudflare-gateway.com です。

2. PAC ファイルを作成する

PAC ファイルは、どのトラフィックをプロキシサーバーへリダイレクトするかを指定する JavaScript のテキストファイルです。Cloudflare ダッシュボードで作成するか、独自のカスタム PAC ファイルを書けます。

ホスト型 PAC ファイルを作成する

Cloudflare One で PAC ファイルを作成すると、Cloudflare は公開アクセス可能な Worker でホストします。ホスト型 PAC ファイルは、Cloudflare のグローバルネットワーク経由で自動配信されます。

ホスト型 PAC ファイルを作成するには:

  1. Cloudflare OneNetworks > Resolvers & Proxies を開きます。

  2. Proxy endpoints を選びます。

  3. プロキシエンドポイントを作成 するか、既存のものを選んで Edit を選びます。

  4. Add PAC files を選びます。

  5. PAC ファイルを設定します。

    PAC file details で:

    1. Basic Information に名前と任意の説明を入力します。
    2. (任意)覚えやすい URL パスになるよう URL slug をカスタマイズします。スラッグは作成後に変更できません。
    3. PAC file configurationBrowse PAC file configuration templates を選び、カスタマイズする事前設定テンプレートを選びます。利用できるテンプレートは Okta と Azure です。テンプレートを選ぶと、PAC file JavaScript にそのテンプレートが入ります。
    4. ネットワーク要件に合わせて JavaScript を変更します。

    Setup instructions で:

    1. ブラウザーを選びます。
    2. Cloudflare One の手順に従い、デバイスを設定します。
  6. Create を選びます。

ホスト型 PAC ファイルの URL は次の形式です。

https://pac.cloudflare-gateway.com/<account-id>/<slug>

各項目の意味は次のとおりです。

  • <account-id>Cloudflare アカウント ID
  • <slug> は指定したカスタムパス(カスタマイズしない場合は自動生成値)

ホスト型 PAC ファイルの制限

Cloudflare ホスト型 PAC ファイルには次の制限があります。

  • 最大ファイルサイズ: PAC ファイルあたり 256 KB
  • アカウントあたりの最大 PAC ファイル数: 50(非 Enterprise プラン)または 1,000(Enterprise プラン)
  • 更新の伝播: PAC ファイルの変更は、グローバルネットワーク全体へ数秒から数分で伝播します

キャッシュの動作

ホスト型 PAC ファイルは、パフォーマンスと信頼性のためにグローバルにキャッシュされます。

  • ブラウザーとオペレーティングシステムは、それぞれのポリシーに基づいて PAC ファイルをローカルにキャッシュする場合があります
  • ホスト型 PAC ファイルを更新すると、キャッシュは自動的に無効になります
  • クライアントに新しいバージョンを強制取得させる必要がある場合は、クライアント構成に応じてブラウザーキャッシュのクリアやブラウザーの再起動が必要になることがあります

PAC ファイルの自己ホスト

PAC ファイルは、社内 Web サーバーや Cloudflare Workers など、独自インフラでもホストできます。自己ホストするとホスティング環境を完全に制御できますが、可用性と配信は自分で管理する必要があります。

プロキシエンドポイントの制限

アカウントあたりのプロキシエンドポイント数には上限があります。

  • 非 Enterprise プラン: 50 プロキシエンドポイント
  • Enterprise プラン: 500 プロキシエンドポイント

3. デバイスを設定する

3a. Cloudflare 証明書をインストールする

デバイスに Cloudflare 証明書をインストール する必要があります。認可エンドポイントは、TLS トラフィックを検査して認可 cookie を読むために証明書を使います。送信元 IP エンドポイントは、特定ドメインのブロックや Gateway ブロックページの表示など、Gateway HTTP ポリシーを適用するために証明書を使います。

3b. PAC ファイルを使うようブラウザーを設定する

主要なブラウザーはすべて PAC ファイルに対応しています。個別ブラウザーを設定するか、デバイス上のすべてのブラウザーに適用されるシステムレベルのプロキシ設定を構成できます。送信元 IP アドレスがプロキシエンドポイント構成に含まれていれば、複数デバイスから同じ PAC ファイルを呼び出せます。

OS ごとの詳しい手順(Windows、macOS、Linux、iOS、Android、ChromeOS、エンタープライズデプロイを含む)は、デバイスで PAC ファイルを設定する を参照してください。

Chromium-based browsers

Chromium ベースのブラウザー(Google Chrome、Microsoft Edge、Brave など)は、オペレーティングシステムのプロキシサーバー設定に依存します。PAC ファイル URL は オペレーティングシステムのプロキシ設定 で構成します。

Mozilla Firefox

Firefox は独自のプロキシ設定を使い、デフォルトではオペレーティングシステムのプロキシ構成を引き継ぎません。Firefox は別に設定する必要があります。手順は Firefox を個別に設定する を参照してください。

Safari

4. HTTP ポリシーをテストする

構成をテストするには、テスト用ドメインをブロックする HTTP ポリシー を作成します。ブラウザーでブロックしたドメインを開くと、Gateway のブロックページが表示されるはずです。

これで、ネットワーク ポリシーと HTTP ポリシーの Proxy Endpoint セレクターを使い、PAC ファイル経由でプロキシしたトラフィックをフィルタリングできます。

5. (任意)ファイアウォールを設定する

ユーザーがプロキシエンドポイントへ接続できるよう、組織のファイアウォールを設定する必要がある場合があります。ファイアウォールに応じて、プロキシエンドポイントのドメインまたは IP アドレスを使ったルールを作成します。

プロキシエンドポイントのドメインを取得するには:

  1. Cloudflare OneNetworks > Resolvers & Proxies > Proxy endpoints を開きます。
  2. プロキシエンドポイントを選び、Edit を選びます。
  3. Proxy Endpoint でドメインをコピーします。
  1. List proxy endpoints 操作を使い、プロキシエンドポイントとその詳細の一覧を取得します。例:

    List proxy endpointsbash
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/proxy_endpoints" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
    	"success": true,
    	"result": {
    		"id": "ed35569b41ce4d1facfe683550f54086",
    		"created_at": "2014-01-01T05:20:00.12345Z",
    		"ips": ["192.0.2.1/32"],
    		"name": "DevOps team",
    		"subdomain": "oli3n9zkz5.proxy.cloudflare-gateway.com",
    		"updated_at": "2014-01-01T05:20:00.12345Z"
    	}
    }
  2. 使うプロキシエンドポイントを探します。

  3. subdomain キーの値をコピーします。

プロキシエンドポイントのドメインを使い、プロキシエンドポイントに割り当てられた IP アドレスを取得できます。

  1. ターミナルを開きます。

  2. プロキシエンドポイントの A レコードに対して dig を実行し、IPv4 アドレスを取得します。例:

    dig A example.cloudflare-gateway.com +short
    162.159.36.5
    162.159.36.20
  3. プロキシエンドポイントの AAAA レコードに対して dig を実行し、IPv6 アドレスを取得します。例:

    dig AAAA example.cloudflare-gateway.com +short
    2606:4700:54::a29f:2407
    2606:4700:5c::a29f:2e07
  1. PowerShell ターミナルを開きます。

  2. プロキシエンドポイントの A レコードに対して Resolve-DnsName を実行します。IPv4 アドレスは IPAddress の下に表示されます。例:

    Resolve-DnsName -Name example.cloudflare-gateway.com -Type A
    Name                                           Type   TTL   Section    IPAddress
    ----                                           ----   ---   -------    ---------
    example.cloudflare-gateway.com                 A      300   Answer     162.159.36.5
    example.cloudflare-gateway.com                 A      300   Answer     162.159.36.20
  3. プロキシエンドポイントの AAAA レコードに対して Resolve-DnsName を実行します。IPv6 アドレスは IPAddress の下に表示されます。例:

    Resolve-DnsName -Name example.cloudflare-gateway.com -Type AAAA
    Name                                           Type   TTL   Section    IPAddress
    ----                                           ----   ---   -------    ---------
    example.cloudflare-gateway.com                 AAAA   300   Answer     2606:4700:5c::a29f:2e07
    example.cloudflare-gateway.com                 AAAA   300   Answer     2606:4700:54::a29f:2407

ファイアウォールで応答を許可するには、Cloudflare プロキシエンドポイントの静的 IPv4 アドレス 162.159.193.21 を許可するインバウンドルールを追加します。

プロキシエンドポイントを編集する

作成後にプロキシエンドポイントの設定を変更できます。

認可エンドポイントを編集する

  1. Cloudflare OneNetworks > Resolvers & Proxies > Proxy endpoints を開きます。
  2. 認可エンドポイントを探します(Type の下に Authorization と表示されます)。
  3. 三点メニューを選び、Configure を選びます。
  4. 編集する内容を選びます。
    • Basic info: エンドポイント名と説明を更新します。
    • Access policies: エンドポイントを使える人を制御する Access ポリシーを追加、削除、変更します。
    • Login methods: ユーザーが認証に使える アイデンティティプロバイダー を選びます。
  5. Save を選びます。

送信元 IP エンドポイントを編集する

  1. Cloudflare OneNetworks > Resolvers & Proxies > Proxy endpoints を開きます。
  2. 送信元 IP エンドポイントを探します(Type の下に Source IP と表示されます)。
  3. 三点メニューを選び、Configure を選びます。
  4. エンドポイント名を更新するか、許可する送信元 IP アドレスを変更します。
  5. Save を選びます。

ログ

プロキシエンドポイントのトラフィックは、次の場所に記録されます。

  • 認証ログ: ユーザーが認可エンドポイント経由で認証すると、ログインイベントが Access ログ に表示されます。
  • トラフィックログ: エンドポイント経由でプロキシされた HTTP およびネットワークトラフィックは Gateway ログ に表示され、使用したプロキシエンドポイントが示されます。

課金

認可プロキシエンドポイント経由で認証した各ユーザーは、Cloudflare One Client 経由で接続したユーザーと同じく Gateway シート を 1 つ消費します。

制限事項

認可エンドポイントの制限

認可エンドポイント を使うときは、次の制限に注意してください。証明書ピン留めのあるアプリの設定ガイダンスは、PAC ファイルのベストプラクティス を参照してください。

TLS 検査が必要

認可エンドポイントは、プロキシしたすべてのトラフィックで TLS 検査 が必要です。Gateway は、各ユーザーセッションを識別する認可 cookie を読むために HTTPS リクエストを復号する必要があります。アカウントレベルで TLS 復号をオフにしていても、認可エンドポイント経由のトラフィックでは Gateway は常に TLS 復号を行います。認可エンドポイントを使う場合、特定の宛先だけ TLS 検査を選択的にバイパスすることはできません。

平文 HTTP トラフィック

認可エンドポイントは、Access アプリケーション 経由で構成するか、PAC ファイルでバイパスしない限り、平文 HTTP トラフィックに対応しません。

Referer ヘッダーのトラフィック

referer HTTP ヘッダーが、同じ送信元 IP から最近ログインしたユーザーのドメインに一致するトラフィックは許可され、次の非アイデンティティメールアドレスでログに記録されます。

auth-proxy-non-identity@<your-team-name>.cloudflareaccess.com

<your-team-name>チーム名 です。

これは、ブラウザーがユーザー認証の確認に使うアイデンティティ cookie を HTTP サブリクエストに付けないためです。プロキシベースの Secure Web Gateway では一般的な動作です。

このトラフィックをフィルタリングするには、次の 2 つの方法があります。

  • auth-proxy-non-identity@<your-team-name>.cloudflareaccess.com メールアドレスに一致するすべてのトラフィックをブロックまたは許可する HTTP ポリシー を設定する。
  • 非アイデンティティトラフィックを特定の送信元 IP に制限するには、送信元 IP とプロキシエンドポイントの両方に一致する ネットワークポリシー を作成する。

Safari と iOS は非対応

Safari(macOS)と iOS/iPadOS 上のすべてのブラウザーは、Cloudflare プロキシエンドポイントが必要とする HTTPS プロキシタイプに対応していません。これは Apple が確認したプラットフォームレベルの制限です。macOS では Chromium ベースのブラウザーまたは Firefox を使ってください。iOS/iPadOS ではプロキシエンドポイントを使えません。

トラフィックの制限

各種類のプロキシエンドポイントが対応する機能は次のとおりです。

機能 送信元 IP エンドポイント 認可エンドポイント
HTTP/HTTPS トラフィック 1 2
非 HTTP の TCP トラフィック
UDP トラフィック
HTTP3
アイデンティティベースのポリシー
mTLS 認証
Happy Eyeballs
ブラウザーの HTTPS 自動アップグレード 3 3

セッション期間

Cloudflare Gateway 経由でプロキシされるすべての接続には、保証される最大期間 10 時間があります。詳細は トラブルシューティング を参照してください。

Gateway DNS とリゾルバーポリシー

Gateway の DNS ポリシーと リゾルバー ポリシーは、デバイス構成に関係なく、PAC ファイルでプロキシしたトラフィックに常に適用されます。

Footnotes

  1. 送信元 IP エンドポイント で平文 HTTP(非 HTTPS)オリジンにアクセスするには、セルフホスト Access アプリケーション として構成します。Access ポリシーでセキュリティを維持したまま、ユーザーが HTTP リソースへアクセスできます。

  2. 認可エンドポイント で平文 HTTP(非 HTTPS)オリジンにアクセスするには、平文 HTTP トラフィック を参照してください。

  3. プロキシエンドポイントは、ブラウザーが HTTP リクエストを HTTPS へ自動アップグレードする場合(Chrome の自動 HTTPS アップグレードなど)の HTTPS に対応していません。自動アップグレードされるサイトで接続の問題が起きる場合は、ブラウザー設定で自動 HTTPS アップグレードを無効にするか、そのサイトを例外に設定する必要があります。 2

役に立ちましたか?