web-dev-qa-db-ja.com

GCP HTTPロードバランサの正しいファイアウォール設定を構成する

enter image description here

図に示すように、ポート8545でHTTPサーバーを実行している2つのVMをインスタンスグループに配置しています。

エンドユーザーからのHTTPリクエストを分散するために、GCPでHTTPロードバランサーを作成しました。ただし、図に示す設定とファイアウォールルールでは、ヘルスチェックが失敗し、アクセスできません http://35.190.34.26:80/

Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.

ただし、すべてを許可するファイアウォールルールを追加すると、(0.0.0.0/0 on 8545)、ヘルスチェックに合格し、私もアクセスできます http://35.190.34.26:80/

しかし、私は8545のすべてのユーザーを許可するこのファイアウォールルールを記述したくありません。ロードバランサーだけがこのポートのインスタンスグループにアクセスできるようにファイアウォールを構成する正しい方法は何ですか?

2
kosta

グローバル転送ルールはポート80で構成されていますが、バックエンドインスタンスはポート8545でトラフィックを処理しているため、これらのポートで130.211.0.0/22および35.191.0.0/16からのトラフィックを許可するには、2つの個別のファイアウォールルールを作成する必要があります。これらは、ロードバランサーがバックエンドインスタンスへの接続に使用するIPアドレス範囲です。このルールは、ロードバランサーとヘルスチェッカーの両方からのトラフィックを許可します。

バックエンドインスタンスをチェックして、すべてのアドレス(0.0.0.0/0)でリッスンしていて、特定のIPにバインドされていないことを確認することをお勧めします。さらに、バックエンドインスタンスでtcpdumpを実行すると、トラフィックが上記のIP範囲からインスタンスに到達しているかどうかを確認し、さらにデバッグを続けるのに役立ちます。

Google HTTP(S)負荷分散に関するファイアウォールルールの詳細については、このヘルプセンター article をご覧ください。

2
Ishtiaque

GCPにロードバランサーを備えたHAを使用したApacheレンジャーのインストールにも同様の要件がありました。レンジャーポート(6080)で130.211.0.0/22および35.191.0.0/16からのトラフィックを許可するファイアウォールルールを1つ作成したところです。

私たちがしなければならない重要なことは、ヘルスチェック-> select TCP protocol with port 6080(あなたのケースでは8545)です。それからあなたはロードバランサーのURLにアクセスできます。

0