コンテンツにスキップ

GCP

このガイドでは、Google Cloud Project (GCP) の仮想マシンを、軽量コネクタ cloudflared を使用して Cloudflare に接続する方法を説明します。

デプロイするもの:

  • 基本的な HTTP サーバーを実行する Google Cloud Project (GCP) の仮想マシン。
  • ユーザーがパブリックホスト名またはプライベートIPアドレスを介してサービスに接続できる Cloudflare トンネル。

前提条件

次の手順を完了するには、以下が必要です:

1. GCP で VM インスタンスを作成する

  1. Google Cloud Console にアクセスし、新しいプロジェクトを作成する

  2. Compute Engine > VM インスタンスに移動します。

  3. インスタンスを作成を選択します。

  4. VM インスタンスに名前を付けます。この例では http-test-server と名付けます。

  5. 希望するオペレーティング システムと仕様を選択します。この例では、以下の設定を使用できます:

    • マシンファミリー: 一般用途
    • シリーズ: E2
    • マシンタイプ: e2-micro
    • ブートディスクイメージ: Debian GNU/Linux 12
    • ファイアウォール: HTTP および HTTPS トラフィックを許可
  6. 詳細オプション > 管理 > 自動化の下に、次のスタートアップスクリプトを追加します。この例では、ポート 80 で基本的な Apache ウェブサーバーをデプロイします。

    #!/bin/bash
    apt update
    apt -y install apache2
    cat <<EOF > /var/www/html/index.html
    <html><body><h1>Hello Cloudflare!</h1>
    <p>This page was created for a Cloudflare demo.</p>
    </body></html>
    EOF
  7. 作成を選択します。

  8. オペレーティング システムが自動的に Apache HTTP サーバーを起動します。サーバーが実行中であることを確認するには:

    1. VM インスタンスの 外部 IP をコピーします。
    2. ブラウザを開き、http://<EXTERNAL IP> にアクセスします。Hello Cloudflare! テストページが表示されるはずです。
  9. VM インスタンスにログインするには、SSH の横にあるドロップダウンを開き、ブラウザウィンドウで開く を選択します。

2. Cloudflare トンネルを作成する

Next, we will create a Cloudflare Tunnel in Zero Trust and run the tunnel on the GCP VM.

  1. Log in to Zero Trust and go to Networks > Tunnels.

  2. Select Create a tunnel.

  3. Choose Cloudflared for the connector type and select Next.

  4. Enter a name for your tunnel (for example, gcp-tunnel).

  5. Select Save tunnel.

  6. Under Choose your environment, select Debian. Copy the command shown in the dashboard and run it on your GCP VM.

  7. Once the command has finished running, your connector will appear in Zero Trust.

  8. Select Next.

3. パブリックホスト名を使用して接続する

Public hostname routes allow anyone on the Internet to connect to HTTP resources hosted on your virtual private cloud (VPC). To add a public hostname route for your Cloudflare Tunnel:

  1. In the Public Hostname tab, enter a hostname for the application (for example, hellocloudflare.<your-domain>.com).
  2. Under Service, enter http://localhost:80.
  3. Select Save hostname.
  4. To test, open a browser and go to http://hellocloudflare.<your-domain>.com. You should see the Hello Cloudflare! test page.

You can optionally create an Access application to control who can access the service.

4. プライベート IP を使用して接続する

Cloudflare トンネルのプライベートネットワークルートを構成するには:

  1. プライベートネットワークタブで、GCP VM インスタンスの 内部 IP を入力します(例:10.0.0.2)。必要に応じて後で IP 範囲を拡張できます。

  2. Split Tunnel 構成 で、内部 IP が WARP を介してルーティングされていることを確認します。たとえば、Exclude モードで Split Tunnels を使用している場合は、10.0.0.0/8 を削除します。GCP VM に明示的に使用されていない IP を再追加することをお勧めします — この計算機 を使用して再追加する IP アドレスを決定できます。

  3. ユーザーデバイスでテストするには:

    1. WARP クライアントにログインする
    2. ターミナルウィンドウを開き、プライベート IP を使用してサービスに接続します:
    Terminal window
    curl 10.0.0.2
    <html><body><h1>Hello Cloudflare!</h1>
    <p>This page was created for a Cloudflare demo.</p>
    </body></html>

オプションで、Gateway ネットワークポリシー を作成して、プライベート IP を介して VM にアクセスできるユーザーを制御できます。

ファイアウォール構成

VM インスタンスを保護するために、VPC ファイアウォールルールを構成することで、すべてのインバウンドトラフィックを拒否し、Cloudflare トンネル IP アドレスへのエグレストラフィックのみを許可できます。GCP は デフォルトでインバウンドトラフィックを拒否するため、すべてのインバウンドルールを削除し、関連するエグレスルールのみを残すことができます。

VPC ファイアウォールルールを構成した後、Cloudflare トンネルを介してサービスに引き続きアクセスできることを確認します。サービスはもはや Cloudflare トンネルの外部からアクセスできないはずです — たとえば、http://<EXTERNAL IP> にアクセスすると、テストページはもはや読み込まれないはずです。