プロキシ サーバーのルーティングをセットアップする

このドキュメントは、すべてのサーバーサイド タグ設定トラフィックをプロキシ サーバー経由でルーティングしたいデベロッパーを対象としています。

始める前に

プロキシ サーバー ルーティングをセットアップするには、以下が必要です。

  • Cloud Run または手動セットアップでデプロイされたサーバー コンテナ。

  • HTTP CONNECT リクエストをサポートするデプロイ済みのプロキシ サーバー

  • VPCファイアウォール、またはプロキシのアクセス制御リスト(ACL)などを使用して、プロキシ サーバーからの特定のアウトバウンド トラフィックを許可リストに登録できること。

プロキシ サーバー ルーティングを構成する

Cloud Run

Cloud Run デプロイでプロキシにトラフィックを転送するには:

  1. Cloud Run を開きます。
  2. サーバーサイド タグ設定の Cloud Run インスタンスを選択します。
  3. [新しいリビジョンの編集とデプロイ] をクリックします。リビジョンのデプロイ画面が開きます。
  4. [コンテナ] でサーバー コンテナを選択します。コンテナの設定を含む新しい画面が開きます。
  5. サービス構成を展開するには、[変数とシークレット] タブを選択します。[変数を追加] ボタンをクリックして、次の環境変数を追加します。

    1. 名前: HTTP_PROXY
    2. : プロキシ サーバーの URI(例: https://proxy.example.com:3333 または http://32.12.83.10
  6. [完了] をクリックします。

  7. リビジョンを確認し、[デプロイ] をクリックします。

手動でのデプロイ

手動デプロイでトラフィックをプロキシに転送するには:

  1. Docker イメージからアクセスできる環境変数を次のように定義します。

    1. 名前: HTTP_PROXY
    2. : プロキシ サーバーの URI(例: https://proxy.example.com または http://32.12.83.10:1234
  2. 新しい環境変数を使用して Docker イメージを実行します。

    docker run -p 8080:8080 \
    -e CONTAINER_CONFIG=CONTAINER_CONFIG \
    -e HTTP_PROXY=PROXY_URL \
    gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
    

結果: サーバーサイド タグ設定のデプロイから、環境変数で指定したプロキシ エンドポイントに、すべてのアウトバウンド トラフィックが送信されます。

プロキシ サーバーが正しくセットアップされているか確認する

プロキシ サーバーが正しくセットアップされているか確認するには、Google タグ マネージャーとプロキシ サーバーの両方の設定をチェックします。

サーバー コンテナのプロキシ リクエストを確認するには:

  1. Google タグ マネージャーを開きます。

  2. 確認するサーバー コンテナを開きます。

  3. プレビュー モードを開きます。[リクエスト] タブで次を確認します。

    1. クライアントが受信リクエストを受信していること。
    2. タグと変数が HTTP リクエストを正常に送信していること。
    3. リクエストがプロキシ サーバー経由で送信されたかどうかを確認するには、HTTP リクエストをクリックして [HTTP リクエストの詳細] を表示します。

プロキシのセットアップを確認するには:

  1. ネットワークとプロキシ サーバーのログをチェックします。少なくとも、次のエンドポイントに対して正常に実行されたリクエストを確認できます。
  2. 他のエンドポイントへのリクエストの有無を確認します。
  3. 使用するサーバーサイド タグ設定機能によっては、他のエンドポイント(www.google-analytics.combigquery.googleapis.com やサードパーティのエンドポイントなど)に対して実行されたリクエストも表示されることがあります。タグ設定のセットアップに必要な他のエンドポイントを許可リストに登録します。

省略可: プロキシ サーバーからのアウトバウンド トラフィックを許可リストに登録する

自社のネットワークまたはプロキシ サーバーからのアウトバウンド トラフィックをブロックする場合は、タグ設定サーバー インスタンスが機能するように、Google タグ マネージャーのドメインを許可リストに登録する必要があります。アウトバウンド トラフィックを許可リストに登録する方法は、ネットワーク環境とプロキシ ソフトウェアによって異なります。エンドポイントの許可リストへの登録を開始する前に、ネットワーク トポロジを理解しておいてください。

Google タグ マネージャー コンテナの取得、プレビュー、デバッグには、次のドメインが使用されます。

  • https://www.googletagmanager.com
  • https://tagmanager.google.com
  • ${Preview server URL}

プレビュー サーバーをご利用のプロキシ サーバーとは異なるネットワークでホストする場合、またはネットワーク ルールに制限がある場合は、プロキシからプレビュー サーバーへのアウトバウンド トラフィックを許可リストに登録します。プレビュー サーバーの URL は、サーバー コンテナをデプロイする際に定義されます。

省略可: プロキシ サーバーで基本認証を使用する

組織で認証が必要な場合は、すべての種類のサーバーで基本認証を使用できます。

基本認証を使用するには、プロキシ サーバー URL の一部として認証情報(ユーザー名とパスワード)を次の形式で含めます。

HTTP_PROXY=http(s)://USER_NAME:PASSWORD@PROXY_URL

プロキシに対する各リクエストは、Proxy-Authorization ヘッダーのユーザー名とパスワードを Base64 値として設定します。

Cloud Run を使用する場合は、プロキシ エンドポイントの認証情報を Secret Manager に保存します。Secret Manager により、起動時に Cloud Run にシークレットへのアクセス権が付与され、その値が解決されます。詳しくは、Cloud Run でシークレットを構成する方法をご覧ください。

省略可: 特定のホストのプロキシを無効にする

NO_PROXY 環境変数を使用すると、プロキシ サーバー経由では送信できないホスト名をカンマ区切りのリストで定義できます。

NO_PROXY=example.com,169.254.169.254,diagnostics.example2.com:3131 と定義した場合:

sGTM コンテナで、次のリクエストのプロキシ処理が行われなくなります。

  • http://example.comhttps://sub.example.comhttps://other.example.com:123
  • http://169.254.169.254https://169.254.169.254http://169.254.169.254:123
  • http://diagonstics.example2.com:3131https://diagonstics.example2.com:3131