3

1 つの Google Cloud プロジェクト内に 2 つの App Engine サービスをデプロイしたいと考えています (1 つは外部 HTTPS リクエストを処理し、もう 1 つは最初のサービスからの受信トラフィックを処理します)。これら 2 つのサービス間の通信は、自己署名証明書を使用して mTLS 経由で行われます (2 番目のサービスは、ハンドシェイク中に提供されたクライアント証明書に基づいて最初のサービスを認証します)。

私が正しく理解している場合、VERSION_ID-dot-SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com ドメイン名を介した HTTP トラフィック以外は公開できず、サービス間の通信は内部ネットワーク (VPC) を使用して実行されます。また、これにより、内部トラフィックの公開に関連するセキュリティ リスクも軽減されます (ただし、トラフィックは保護されます)。

内部 IP アドレスを使用して、最初のサービスの 1 つのインスタンスから他のサービスの 1 つのインスタンスに接続できました。しかし、最初のサービスのインスタンスから 2 番目のサービスのインスタンスの 1 つにトラフィックを適切にルーティングする方法はよくわかっていません。これは VPC コネクタを介して実行できますか、それとも TCP ロード バランサーが必要ですか?

4

1 に答える 1

3

両方の組み合わせを使用する必要があります。

  • この最初のサービスから発生したすべてのトラフィックを VPC にルーティングするために、最初のサービスでサーバーレス VPC コネクタを使用します。
  • 2 番目のサービスのサブネット範囲に NEG (ネットワーク エンドポイント グループ) を作成します。
  • トラフィックを 2 番目のサービスの NEG にルーティングするために、内部グローバル ロードバランサを使用します。

これを行わず、IAPのみで 2 番目のサービスを保護するように選択することもできます。もちろん、IP と DNS はパブリックにアクセスできますが、アクセスできるのは明示的に承認されたアカウントだけです。他のすべてのリクエストは、GFE (Google フロント エンド) によって破棄されます。

この「ゼロ トラスト」機能は、Google で流行っています。ネットワークに依存するのではなく、認証メカニズムに依存します。私はそれのファンです!

于 2020-05-26T18:36:19.123 に答える