コンテンツに移動
サーバーレス

Google App Engine アプリのセキュリティを強化する新機能

2021年9月9日
Google Cloud Japan Team

※この投稿は米国時間 2021 年 8 月 27 日に、Google Cloud blog に投稿されたものの抄訳です。

2008 年のリリース以来、Google App Engine はアプリ デベロッパーにとっての使いやすさに力を入れることで、デベロッパーたちが基盤となるインフラストラクチャを管理せずにコードの記述に集中できるようにしてきました。また、上り(内向き)制御App Engine ファイアウォールIdentity-Aware Proxy のサポートなど、アプリのセキュリティ強化を支援すべく数年にわたってさまざまな機能を追加してきました。そして、今回ご紹介するのが、プラットフォームにすでに用意されているセキュリティをさらに拡張できる新たな機能です。

  1. サーバーレス VPC アクセス用下り(外向き)制御

  2. ユーザー管理サービス アカウント

下り(外向き)制御

フルマネージド プラットフォームである App Engine には、アプリからの送信トラフィック用に IP アドレスのプールが用意されています。ネットワークの詳細を管理する必要がないため、これは多くのお客様にとって理想的です。しかし、送信リクエストをよりきめ細かく制御する必要があるお客様もいらっしゃいます。

App Engine の新しい下り(外向き)制御機能では、Google Cloud VPC サービス、具体的にはこのサービスのサーバーレス VPC アクセス機能を活用しています。サーバーレス VPC アクセスにより、ユーザーは App Engine アプリから VPC ネットワークにリクエストがルーティングされるようコネクタを構成できます。下り(外向き)制御では、どのトラフィックで VPC コネクタを使用するかをお客様がより細かく制御できます。

ユーザーは 2 つのオプションから選択できます。デフォルトの「非公開の範囲のみ」の場合、VPC ネットワークのプライベート IP に対するすべての HTTP リクエストが VPC コネクタ、VPC ネットワークの順に送信されます。一方、パブリック IP に対するすべての HTTP リクエストが直接インターネットに送信されます。もう一つのオプションである「すべてのトラフィック」では、VPC コネクタを通じてすべての送信 HTTP リクエストが VPC ネットワークにルーティングされます。ルーティングされたリクエストには VPC ファイアウォールのルールと他の VPC 設定が適用されます。

下り(外向き)制御によって可能になる主なユースケースの一つが、App Engine HTTP リクエスト用の静的送信 IP アドレスの作成です。App Engine を利用されている複数のお客様が、エンド カスタマーのネットワークに接続する必要がある SaaS サービスを提供しています。こうしたエンド カスタマーの大半は、特定の送信元 IP からのトラフィックに対してのみファイアウォールを開くことを望んでいます。オプションに「すべてのトラフィック」を設定した下り(外向き)制御では、サーバーレス VPC アクセスとともに Cloud NAT を使用して、安定性のある静的 IP アドレスを構成できます。

ユーザー管理サービス アカウント

現在、App Engine(スタンダード環境フレキシブル環境両方)には App Engine アプリに代わって他の GCP サービスとやりとりするのに使用されるデフォルト サービス アカウントがあります。App Engine のデフォルト サービス アカウントは App Engine の最初のアプリ作成プロセス中に設定され、お客様はサービス アカウントに付与されている権限を管理できます。しかし、これまではこのデフォルト サービス アカウントがアプリのすべてのサービスで使用されてきました。つまり、あるサービスが実際に必要とする権限が何であるかに関係なく、すべてのサービスで同じ権限セットが共有されていたのです。

今回導入された新しいユーザー管理サービス アカウント機能では、アプリのバージョンごとに異なるサービス アカウントを指定できます(デプロイ時に指定するか App Engine Admin API を使用)。アプリのすべてのサービスで必要な権限が付与された共有サービス アカウントを 1 つ使用する代わりに、「最小権限」のベスト プラクティスに従って、各サービスがタスクを実行するのに必要な権限だけに制限できるのが主なメリットの一つです。バージョンごとにサービス アカウントを使い分けるかどうかは任意となっています。サービス アカウントを指定しなかった場合、App Engine のデフォルト サービス アカウントが使用されます。

読み込んでいます...

次のステップ

新しい下り(外向き)制御の詳細については、こちらのドキュメントをご覧ください。サーバーレス VPC アクセスを構成するのが初めての場合は、こちらのページで方法をご確認ください。サービス アカウントをカスタマイズする方法についてはこちらのドキュメントでご紹介しています。


-Google Cloud プロダクト マネージャー Matthew Larkin

-デベロッパー アドボケイト Wesley Chun

投稿先