Cloud Load Balancing の機能拡張による、セキュリティと分散アプリケーションのサポートの強化
Google Cloud Japan Team
※この投稿は米国時間 2023 年 9 月 21 日に、Google Cloud blog に投稿されたものの抄訳です。
Google Cloud Next ‘23 において、Cloud Networking Load Balancing チームは、Google Cloud Load Balancing 使用時の価値を高め新しいユースケースをもたらす複数の機能強化を発表しました。そのうちの主要な 4 つの機能をご紹介します。
mTLS のサポートにより、グローバル外部アプリケーション ロードバランサでの TLS ネゴシエーション時にクライアント側の認証が追加されます。この機能により、標準的な TLS 認証時にクライアントがサーバー ID を確認するのと同じ方法でサーバーがクライアント ID を確認できます。つまり、mTLS は中間者攻撃や他の脅威からの保護に役立つ追加のセキュリティ層を提供します。
Service Extensions コールアウトによって、ユーザーは自身が作成したアプリケーションまたはサードパーティ アプリケーションを使って、選択したロードバランサのデータプレーン処理をカスタマイズできるようになります。これにより、お客様は新しい機能を追加して Google Cloud ワークロードのトラフィック処理方法を最適化できるようになり、ユーザー エクスペリエンスが向上します。
クロスリージョン内部アプリケーション クラウド ロードバランサは、グローバル バックエンドに対応しています。つまり、内部ロードバランサを使用してグローバルに広がるバックエンドに負荷を分散できるようになります。さらに、グローバル アクセスが組み込まれているため、あらゆるリージョンのクライアントが内部アプリケーション ロードバランサにアクセスできます。この機能により、バックエンドのホスティングやクライアントのロケーションの設計時に、新たなレベルの柔軟性がもたらされます。
プロジェクト間のサービス参照にグローバル外部アプリケーション ロードバランサを利用することより、組織はアプリケーション ロードバランサを構成し、複数の異なるプロジェクトに分散された何百ものサービスにトラフィックを転送できます。プロジェクト間のサービス参照は共有 VPC を活用しており、複数のプロジェクトからのリソースを共通の Virtual Private Cloud(VPC)ネットワークに接続できるため、安全で効率的な相互通信が可能になります。
これらの新機能について、それぞれさらに詳しくご紹介していきます。
Google Cloud の外部ロードバランサにおける mTLS のサポート
通常、HTTPS 通信での認証は、クライアントがサーバーの ID を検証するという方法でのみ機能します。ロードバランサで接続元のクライアントの ID を認証する必要があるアプリケーション向けに、グローバル外部アプリケーション ロードバランサと従来のアプリケーション ロードバランサの両方が相互 TLS(mTLS)をサポートするようになりました。こちらは、現在プレビュー版として提供されています。
mTLS では、ロードバランサはクライアントに対し、TLS handshake 中にクライアント ID を認証する証明書を送信するようリクエストします。お客様は、ロードバランサがクライアント証明書の信頼チェーンを検証するために使用する、トラストストアを構成できます。


図 1、外部アプリケーション ロードバランサ コンポーネントによる相互 TLS
mTLS には次のようなさまざまなメリットがあります。
- セキュリティの強化: mTLS がクライアントとサーバーの両方に認証を求めることでセキュリティが強化されるため、攻撃者がどちらかになりすまして機密データにアクセスすることがより難しくなります。
- 中間者攻撃のリスクの軽減: 中間者攻撃(MITM)はサイバー攻撃の一種で、攻撃者が 2 者間のトラフィックをインターセプトし、リダイレクトします。mTLS は両者に認証を要求することで、MITM 攻撃のリスクを軽減します。
- 可視性の向上: mTLS を使用することで、組織はどのクライアントがサーバーに接続しているのか追跡できるようになり、ネットワーク トラフィックの可視性を向上させることができます。これは、潜在的なセキュリティ脅威を特定し、全体的なセキュリティ対策を改善するのに役立ちます。
これらのメリットに加えて、mTLS は、Apigee X を含むさまざまなアプリケーションで使用できます。その結果、ネットワーク通信のセキュリティを向上させる方法として、mTLS の人気が高まっています。
アプリケーション ロードバランサでの Service Extensions コールアウト
Service Extensions コールアウトは Google Cloud アプリケーション ロードバランサにカスタム ロジックを追加する有用なツールとなります。カスタム ロジックは、お客様独自のワークフロー要件に対応したり、パートナーが自社のソフトウェアを Google サービスに簡単に統合したり、組織が Cross-Cloud Network を実装したりするのに役立ちます。この機能により Google Cloud のお客様やパートナーは、独自のコードを書いて、ロードバランサに処理されるトラフィックに対してさまざまなアクティビティ、たとえばヘッダーの書き換え、段階的なセキュリティ対策、カスタム ロギング、カスタム ユーザー認証などを実行できます。


図 2、Service Extensions コールアウトのデータフロー
Service Extensions コールアウトを利用することで、ロード バランシング データ処理パス内から gRPC などの RPC を介して、任意の場所で実行されているユーザー管理のアプリケーションまたはサービスにトラフィックを転送するように Google Cloud Load Balancing に指示できます。これらのアプリケーションは、さらなる処理のためにトラフィックをロードバランサに返す前に、さまざまなポリシーや機能を適用できます。
Service Extensions コールアウトには、次のようなメリットがあります。
- カスタマイズされた実装 - 固有のワークフロー要件に対応するようにトラフィック処理が調整され、クラウド アプリケーションやサービスのパフォーマンスを最適化できます。
- ユーザー サポートを強化 - 組織は、独自のアプリケーションを開発したりプログラムを購入したりしてサービスの提供方法を変更し、新しい要件やカスタム要件に対応できます。
- アジャイルな導入 - ユーザーはいつでも Service Extensions を独自に作成、デプロイできます。
- パートナーによるインテグレーションが簡単 - パートナーは自社のソフトウェアを迅速かつプログラマティックに Google Cloud アプリケーション ロードバランサ サービスと統合し、高度な新しいユースケースを提供できます。
提供状況: Cloud Load Balancing 用 Service Extensions コールアウトの公開プレビュー版が、2023 年 10 月に提供開始となります。サポートされるアプリケーション ロードバランサには、グローバル外部(従来型を除く)、リージョン外部、リージョン内部が含まれます。
クロスリージョン内部アプリケーション ロードバランサ
内部アプリケーション ロードバランサは、Compute Engine、Google Kubernetes Engine(GKE)、Cloud Run、オンプレミス、その他のクラウドでホストされているバックエンドに、HTTP および HTTPS トラフィックを分散します。これまで、内部アプリケーション ロードバランサは、範囲がそのリージョンに限定されていました。つまり、ロード バランサは同じリージョン内のバックエンドにのみ接続できました。クロスリージョン内部アプリケーション ロードバランサはこの制約を取り除きます。


図 3、クロスリージョン内部アプリケーション ロードバランサの論理トラフィック フロー
クロスリージョン内部アプリケーション ロードバランサは、Google のフルマネージド サービスで、マルチリージョン ロードバランサとしてデプロイできます。また、すぐに利用できるグローバル アクセスを提供するため、どの Google Cloud リージョンのクライアントもアクセス可能です。加えて、クロスリージョン モードにより、ユーザーはグローバルに分布したバックエンドにトラフィックの負荷を分散できます。このロードバランサは高可用性も実現します。つまり、バックエンドを複数のリージョンに配置することで、単一リージョンにおける障害によってユーザーが受ける影響が軽減されます。1 つのリージョンのバックエンドが停止した場合でも、トラフィックを別のリージョンに正常にフェイルオーバーできます。さらに、複数のリージョンにデプロイできるため、リージョン内のロードバランサ サービスの可用性に影響を及ぼしうるサービスの停止に対しても高い復元性を発揮します。
クロスリージョン モードにおけるロードバランサのプロキシ インスタンスは、常にお客様が選択した特定のリージョンにデプロイされることにご留意ください。
クロスリージョン内部アプリケーション ロードバランサのメリットは、以下のようにまとめられます。
- 内部トラフィックでグローバル Cloud Load Balancing が利用可能: この機能により、アクティブ / アクティブ マルチリージョン設定を介してトラフィックを分散する方法に新たな柔軟性がもたらされます。
- 高可用性の強化: 別のリージョンのサービスへのフェイルオーバーにより、ゾーンまたはリージョン固有の問題の影響を軽減でき、可用性が向上します。
- Private Service Connect(PSC)ユースケースの開拓: Private Service Connect により、VPC ネットワーク内からマネージド サービスへのプライベート アクセスが可能になります。
- Google マネージド証明書のサポート: Certificate Manager および Certificate Authority Service を利用することで、このサポートが得られます。
クロスリージョン内部アプリケーション ロードバランサは、現在プレビュー版で提供されています。詳細については、内部アプリケーション ロードバランサ ページをご覧ください。
グローバル外部アプリケーション ロードバランサでのプロジェクト間のサービス参照
プロジェクト間のサービス参照を使用すると、組織は 1 つの一元的なロードバランサを構成し、複数のプロジェクトに分散された何百ものサービスにトラフィックを転送できます。トラフィック ルーティングのルールおよびポリシーはすべて、1 つの URL マップで一元管理できます。ロードバランサを、特定のホスト名と SSL 証明書の組み合わせに関連付けることも可能です。
このモデルでは、ロードバランサのフロントエンドと URL マップはホスト プロジェクトまたはサービス プロジェクトに存在します。ロードバランサのバックエンド サービスとバックエンドは、共有 VPC 環境のプロジェクト間で分散できます。プロジェクトをまたいだバックエンド サービスは 1 つの URL マップで参照可能です。
グローバル外部アプリケーション ロードバランサ(現在はプレビュー版)のサポートにより、プロジェクト間のサービス参照をすべてのアプリケーション ロードバランサで利用できるようになりました。これには、内部アプリケーション ロードバランサおよびリージョン外部アプリケーション ロードバランサも含まれます。


図 4、プロジェクト間のサービス参照の論理図
プロジェクト間のサービス参照のメリットは以下のとおりです。
- デプロイの効率化: 複数のサービスを 1 つのロードバランサに接続することにより、アプリケーションのデプロイに必要なロードバランサの数を最適化します。転送ルールをはじめ、ロード バランシング関連の各種リソースを減らすことで、費用を抑えられるだけでなく、運用上のオーバーヘッドや必要な割り当て量も削減できます。
- 管理権限の改善: プロジェクトを部門ごとに分けることで、お客様は組織内のロールも分離できます。そうすることで、サービス オーナーはサービス プロジェクト内のサービス構築に、ネットワーク チームは別のプロジェクト内のロードバランサのプロビジョニングおよび維持に専念できます。これらのプロジェクトは、プロジェクト間のサービス参照によって接続可能です。
プロジェクト間のサービス参照について詳しくは、外部アプリケーション ロードバランサ ページをご覧ください。
- クラウド ネットワーキング担当シニア プロダクト マネージャー Neil Abogado