Cloudflare Access を使うと、エンドユーザーはシングルサインオン(SSO)プロバイダーで認証し、仮想プライベートネットワーク(VPN)に接続せずに、任意の TCP 経由でリソースへ接続できます。
- Cloudflare アカウント
- Cloudflare 上で有効なサイト
- ホストとクライアントの各マシンにインストールした
cloudflaredデーモン
Cloudflare Access を使うには、先に Cloudflare へ サイトを追加 ↗ する必要があります。登録済みの任意のサイトを使えます。顧客向けトラフィックと同じサイトである必要はなく、内部 DNS のサイトと一致している必要もありません。
サイトを Cloudflare に追加するには、ドメインの権威 DNS を Cloudflare のネームサーバーへ向ける必要があります。設定後、そのホスト名へのリクエストは先に Cloudflare のネットワークへ送られ、そこで Access ポリシーを適用できます。
Cloudflare デーモンの cloudflared は、マシンから Cloudflare へ、安全で永続的な、送信のみの接続を維持します。任意の TCP トラフィックは、この接続上で Cloudflare Tunnel ↗ を使ってプロキシされます。
リソースをホストするマシンへ cloudflared をダウンロードしてインストールするには、こちらの手順 に従います。
次のコマンドを実行し、cloudflared を Cloudflare アカウントに認証します。
cloudflared tunnel logincloudflared はブラウザーウィンドウを開き、Cloudflare アカウントへのログインを求めます。ブラウザーのないマシンで作業している場合、またはウィンドウが開かない場合は、コマンドライン出力の URL をコピーし、任意のマシンのブラウザーで開きます。
ログインすると、アカウントに追加したサイトが一覧表示されます。リソースを表すサブドメインを作成するサイトを選びます。たとえば、サービスを tcp.site.com で共有する予定なら、一覧から site.com を選びます。
選ぶと、cloudflared はそのサイトのワイルドカード証明書をダウンロードします。この証明書により、cloudflared はそのサイトのサブドメイン用 DNS レコードを作成できます。
次に、登録予定のサブドメインを Cloudflare Access ポリシーで保護します。こちらの手順 に従い、リソースへの接続を制御する新しいポリシーを作成します。
たとえば、リソースを tcp.site.com で共有する場合は、チームメンバーだけがそのサブドメインへ接続できるポリシーを作成します。
cloudflared は、標準以外のポートへの接続もプロキシできます。
次のコマンドを実行し、リソースを Cloudflare に接続します。tcp.site.com と 7870 は、自分のサイトとポートに置き換えます。
cloudflared tunnel --hostname tcp.site.com --url tcp://localhost:7870cloudflared は接続の確立を確認します。このプロセスは常時稼働し、自動起動するように設定する必要があります。プロセスが終了すると、エンドユーザーは接続できなくなります。
上記と同じ手順で、リソースへ接続するクライアントデスクトップに cloudflared をダウンロードしてインストールします。接続する各ユーザーデバイスに cloudflared をインストールする必要があります。
次のコマンドを実行し、デバイスから Cloudflare への接続を作成します。利用可能な任意のポートを指定できます。
cloudflared access tcp --hostname tcp.site.com --url localhost:9210このコマンドはデスクトップショートカットにまとめて、エンドユーザーがコマンドラインを使わずに済むようにできます。
クライアントアプリケーションを、選んだポートに向けます。
クライアントが起動すると、cloudflared はブラウザーウィンドウを開き、SSO プロバイダーでの認証を求めます。
よくある問題
- マシンのファイアウォールがポート 80 と 443 の送信を許可していることを確認してください。許可されていないと、
cloudflaredはエラーを返します。