Skip to content
Latchkey

forward proxy とは? 送信トラフィックのブローカー

forward proxy は内部クライアントとより広いインターネットの間に立ち、組織が egress トラフィックをフィルタリング、ログ記録、制御できるよう、クライアントに代わって送信リクエストを送ります。

forward proxy は reverse proxy の鏡像です。トラフィックを受け取るサーバーではなく、外に出ていくクライアントを代表します。企業は、ポリシーを適用しネットワークから出ていくものを検査するために、runner の egress を forward proxy 経由でルーティングします。CI がその背後にある場合、すべてのパッケージインストールや API 呼び出しはそこを通らなければなりません。

クライアントに代わって動作する

forward proxy の背後にある runner が URL を取得するとき、実際にはリクエストを proxy に送信し、proxy が宛先を取得して結果を返します。宛先には runner ではなく proxy が見えます。

組織が使う理由

  • どの外部ホストに到達できるかをフィルタリングする。
  • 送信トラフィックをログ記録し監査する。
  • 帯域を節約するために一般的なダウンロードをキャッシュする。
  • egress のセキュリティポリシーを適用する。

CI で使用するための設定

ツールは、HTTP_PROXY や HTTPS_PROXY などの環境変数、および例外のための NO_PROXY から proxy 設定を読み取ります。これらを無視する runner は、proxy 環境でインターネットに到達できず失敗します。

forward proxy と egress 制御

セキュリティチームはしばしば forward proxy で宛先を allowlist に登録します。新しい依存関係のホストがリストにない場合、パッケージが有効であってもインストールは connection refused で失敗します。

proxy の問題のデバッグ

症状には、407 proxy authentication required、ブロックされたホスト、runner が信頼しなければならないカスタム認証局を差し込む TLS インターセプトが含まれます。これらは一時的な不具合ではなく設定の問題です。

一時的 vs ブロック

接続を一瞬切断する proxy は一時的な障害ですが、ポリシーによってブロックされたホストは毎回失敗します。Latchkey の runner は一時的な proxy の切断をリトライしますが、ポリシーによるブロックは明確に表面化させるため、allowlist を修正できます。

重要なポイント

  • forward proxy は、内部クライアントに代わって送信リクエストを仲介します。
  • CI ツールは HTTP_PROXY、HTTPS_PROXY、NO_PROXY の設定を尊重しなければなりません。
  • ブロックされたホストや proxy 認証エラーは、リトライ可能な不具合ではなく設定の問題です。

関連ガイド