Google Cloud Functions の新しいネットワーク制御のご紹介
Google Cloud Japan Team
※この投稿は米国時間 2020 年 5 月 21 日に、Google Cloud blog に投稿されたものの抄訳です。
高度な VPC ネットワーキング機能と、デベロッパー向けのサーバーレス プラットフォームは、一般的に相性が良くないと思われているかもしれません。しかし、従来型の IT 環境でサーバーレス プラットフォームを使用したいと考える組織は増えています。Google Cloud では、この相反するものをサーバーレスで両立するため、上り(内向き)設定や VPC Service Controls など、Google Cloud Functions の新しいネットワーク制御のサポートを発表しました。
サーバーレス VPC アクセスは、2019 年 12 月から一般提供され、Cloud Functions で VPC ネットワークのプライベート IP スペースを使用できるようになりました。これにより、接続された VPC にすべてまたは内部専用の下り(外向き)トラフィックをルーティングできるようになりました。今回、その機能を上り設定のサポートで拡張いたします。そうすることで、Cloud Functions に到達するトラフィックを制御し、「非公開」の Cloud Functions を実行できるようになります。また、Cloud Functions と VPC Service Controls の統合や、貴社のデータの移動を制御するための組織のポリシーもサポートします。
上り設定と VPC Service Controls
サーバーレス VPC アクセスのリリースにより、関数から VPC で実行されているサービスへの下りパスが提供されていました(例: パブリック IP アドレスのない VM で実行されているステートフルなサービスまたは Memorystore などのサービス)。上り設定のサポートにより、新たにどのネットワーク リクエストが関数に到達できるかをより詳細に制御できるようになります。
デフォルトでは上り設定により、プロジェクト内の VPC やインターネットのソースから関数へのトラフィックが許可されます。これを関数ごとに、上りを「内部専用」に設定できるようになりました。その結果、同じプロジェクト内の内部ソースを発信元としないネットワーク リクエストが除外されます。
どのトラフィックが関数に到達できるかを細かく規定するには、VPC Service Controls を使用して明示的な境界を設定できます。また、上り設定、下り設定、新しい組織のポリシー サービスを使用して、データの漏えいを防止できます。
次のように、これらのネットワーク設定をさまざまな方法で組み合わせて、さまざまなユースケースに対応することができます。
- VPC ネットワーク内でのみ呼び出すことができる関数を作成する - ネットワーク設定の主な用途の 1 つは、特定のプロジェクトや VPC ネットワーク内のクライアントのみが呼び出すことができる関数を作成することです。たとえば、VPC ネットワーク内の Compute Engine VM から関数を呼び出せます。そのような関数の作成方法の一例はこちらです。
- VPC ネットワーク上のプライベート サービスに接続する関数を構成する - 一部のサービスはパブリックなインターネットに対して強化されるように構築されておらず、ネットワーク セキュリティに依存してアクセスを制御しています。VPC 内の独自の VM やクラスタ上で実行されているサービス、または Cloud Memorystore などのマネージド サービスに、関数が到達できるようにする必要性のある場合があります。レート制限のための関数の Redis への接続はこちらの例をご覧ください。
- VPC ファイアウォールと NAT で関数の下りを管理する - すべてのトラフィックを VPC 経由でルーティングするだけで、ネットワークの下り設定を使用して、VPC のコンピュート インスタンスに対するものと同じセキュリティ ポリシーとファイアウォール ルールを適用できます。関数からのすべてのトラフィックが、特定の固定 IP アドレスから送信されているように見せる場合は、このトラフィック ルーティング 設定を Cloud NAT と組み合わせることができます。
- データ漏えいから保護するセキュリティ境界を作成する - 関数が誤って不要な宛先にデータを送信しないようにします。
組織のポリシー
以上のユースケースは、上り設定と下り設定の特定の組み合わせを使用する方法が多数あることを示しています。ただし、データ漏えいから保護するなどの一部のユースケースでは、特に組織にすでに標準が定義されている場合に、リソース構成を繰り返し手動で適用することによる人為的ミスを軽減または除去することが重要です。これに対処するため、Cloud Functions では組織のポリシーをサポートし、Cloud Functions のネットワーク設定にも適用できるようになりました。これにより、組織は懸念事項を適切に分離して厳重なセキュリティ ポリシーを設定できると同時に、デベロッパーはサーバーレス インフラストラクチャを使用して柔軟で迅速に開発を行うことができます。
VPC コネクタと VPC Service Controls の実例
多国籍保険会社 AXA は、安全なサーバーレス サービスを実現するための非常に有用な、Cloud Functions の VPC コネクタと VPC Service Controls の新たな統合の初期からのユーザーです。AXA は Google Cloud Premier Partner の Wabion と連携して、これらの機能を次の 2 つの非常に重要な要件に使用しています。
Cloud Functions 用の VPC-SC は、境界で安全性が保証されたサービスへのアクセスのみに制限することにより、GCP で使用されるデータ ストリームをデータ漏えいから保護します。AXA の GCP エンジニアリング リードである Felix Jost 氏は、次のように述べています。「この機能を使用することで、機密データを未承認のサービス、プラットフォーム、GCP プロジェクトに移動できないようにすることが可能です。組織のポリシーを適切に構成すれば、そのポリシーを AXA の GCP 組織全体で管理し、セキュリティを確保できます。」
Cloud Functions 用の VPC コネクタにより、オンプレミス サービスへの内部接続が可能になります。同氏は次のようにも述べています。「これにより、サーバーレスのサービスでハイブリッドのシナリオを構築し、最大限の柔軟性とスケーラビリティを確保して、他の自動化されたプロセスとシームレスな統合ができます。」
Cloud Functions などのサーバーレス コンピューティング プラットフォームに対し、デベロッパーからの支持が高まり続けています。Google は、お客様が作成するサーバーレス ワークロードが、Google Cloud の本番環境で最高レベルの構成要素となることを確約いたします。Cloud Functions で VPC Service Controls の使用を開始するには、スタートガイドをご覧ください。
- By ソリューション アーキテクト Preston Holmes、プロダクト マネージャー Vinod Ramachandran