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

VPC Service Controls を使用して Cloud Run でのデータの引き出しリスクを管理する

2021年9月7日
https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Blog_Serverless.max-2600x2600.jpg
Google Cloud Japan Team

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

クラウド技術に伴うスケーラビリティと使いやすさを活用しようとする企業の多くは、サーバーレス コンピューティング アーキテクチャに目を向けてきました。サーバーレス システムでは、クラウド プロバイダが特定のワークロードの需要に応じてオンデマンドでリソースを割り当て、アプリケーションやシステムの管理の大部分を顧客のために肩代わりします。しかし、フルマネージドのクラウド デプロイメントのセキュリティはブラックボックス的な性質を持つため、セキュリティに対する意識が極めて高い企業にとって、サーバーレス アーキテクチャは扱いに困ると感じられることがあります。

サーバーレス サービスに組み込まれた基盤となるセキュリティ システムについて理解すれば、このような懸念は軽減されます。多くのクラウド サービスは、データをアプリケーション レベルで保護するために ID とアクセスの管理(IAM)を備えています。Google Cloud は最も信頼できるクラウドになるために日々取り組んでおり、その一環として保護機能を絶えず更新しています。IAM に加えて、Google は Cloud Run に対する VPC Service Controls のサポートも開始しました。これはエンタープライズ グレードのセキュリティ ガードレールを作成するもので、データをネットワーク レベルで保護しながら、フルマネージド システムに期待される使いやすさと市場投入までの時間の短縮を、コンテナ ワークロードに最適化されたプロダクトで提供します。

クラウドへの移行を計画している組織が、アプリから Cloud Run のようなマネージド クラウド サービスを利用できるようにアプリを再設計するとき、ファイアウォールを使用してアプリケーションを分離するといった一般的なセキュリティ戦略が適切でないことに気づくことがよくあります。VPC Service Controls(VPC-SC)では、Google マネージド サービスの周囲にセキュリティ境界を定義して、それらのサービスとの通信やサービス間の通信を管理できます。VPC-SC を使用すると、本番環境の GCP リソースを無許可の VPC ネットワークやインターネットから分離できるほか、本番環境の GCP リソースと本番環境の VPC ネットワークの両方を無許可の GCP リソースから切り離すこともできます。

VPC Service Controls(VPC SC)では、データが VPC SC のサービス境界を越えてどのように出入りするかをきめ細かく制御できます。VPC SC は、ID とアクセスの管理(IAM)から独立した追加のセキュリティ防御層を Google Cloud に提供します。IAM では現在、ID に基づく細かいアクセス制御が可能ですが、それに対して VPC SC は、クラウド リソースの保護や Google Cloud の API およびサービスへのプライベート接続の設定に使用できるセキュリティ境界を実現します。

これは次のようなリスクを防ぐために役立ちます。

  • 悪意のある内部関係者や感染コードによるデータの引き出し

  • IAM ポリシーの構成ミスによるプライベート データの偶発的な公開

  • 盗まれた認証情報を使用した無許可のネットワークからのアクセス

VPC Service Controls による境界セキュリティの確保

では、その仕組みについて説明します。なんらかのデータ処理を行うために Cloud Run サービスを使用していると想像してください。Pub/Sub からプッシュ通知が届くと、サービスが Google Cloud Storage からデータを読み出し、データ処理を実行して結果を Cloud Storage に書き戻します。この例では、ダッシュボードへのアクセスとデータ処理エンドポイントへのアクセスの両方が IAM によって保護されています。

このシステムの仕組みは次のとおりです。

https://storage.googleapis.com/gweb-cloudblog-publish/images/without_VPC_SC.max-700x700.jpg

このシステムが本番環境に移行された場合、このシステムを通じて機密データにアクセスできます。IAM による保護は便利ではありますが、すべてのデータ引き出し手段を完全に防ぐことはできません。たとえば、悪意のある内部関係者がサービスを改ざんし、HTTP 呼び出しを介してインターネット上の無許可の場所に出力データを書き込む可能性があります。また、1 つの権限の構成ミスによってデータが危険にさらされる可能性のある状況は避けなければなりません。

第 2 のセキュリティ層を導入するため、Cloud Run 向けの VPC SC 統合ガイドに従って Cloud Run サービスを VPC SC 境界の内側に配置しました。また、開発者がアクセスするその他すべての API に対しても VPC SC を適用しました。変更後のシステムは次のとおりです。

https://storage.googleapis.com/gweb-cloudblog-publish/images/with_VPC_Sc.max-900x900.jpg

これで、Cloud Run サービスと Cloud Run Admin API(サービスのデプロイと管理に使用される)の両方が VPC SC サービス境界によって保護されました。つまり、Cloud Run Admin API へのリクエスト、または Cloud Run サービス自体のエンドポイントへのリクエストは、VPC SC ポリシーと照合してチェックされます。

この新しい仕組みは、以前よりも多くの攻撃を防ぎます。たとえば、Cloud Run サービスに対する権限を持つ悪意ある内部関係者は、もはや次のことはできません。

  • サービスからの出力を、自身の制御下にある境界外部のプロジェクト内の Cloud Storage バケットにリダイレクトすること

  • サービスの下り(外向き)設定を組織のポリシーに適合しない値に変更することによって、データにアクセスできるようにする、またはデータを任意のインターネット リソースに送信されるようにサービスを改ざんすること

正当な要件を満たしているサービスが外部世界と通信できるようにするため、監査可能なポリシーを通じて外部リソースから境界内のリソースへのアクセスを許可する方法が用意されています。次に例を示します。

  • VPC SC の上り(内向き)ポリシーを使用して、Cloud Run Admin API への管理者権限のアクセスを許可できます。これにより、境界の外部から(たとえば、会社から支給されたノートパソコンから)サービスの管理や更新を続けることができます。

  • VPC ファイアウォール ルールを設定して、Cloud Run サービスから境界外部の特定のリソースへのアクセスを許可できます。これは、たとえばサービスのデータ処理用の入力として GCP 外部のリソースへのアクセスが必要な場合に役立ちます。

  • 保護を維持しながら、境界の外部にいる人にサービスへのアクセスを許可する必要がある場合は、サービスに対して Cloud Load Balancing を設定し、Cloud ArmorCloud IAP を使用してサービスへのアクセスを選択的に許可できます。これは、たとえばサービスからエクスポートされたダッシュボードに開発者がアクセスできるようにする場合に役立ちます。

高度なエンタープライズ セキュリティ

VPC SC は、企業が持つサーバーレス ニーズの実状をより明瞭にします。Cloud Run では、サーバー インフラストラクチャの管理は Google Cloud が行います。これにより、Google API のマルチプロジェクト API セキュリティ境界に対する Google の高度なアプローチの恩恵を受けることができます。これは、ホストレベルのパッチやネットワーク インフラストラクチャのセキュリティといった既存のサーバーレス セキュリティの利点を拡張するもので、チームの時間を解放して戦略的な仕事に打ち込める環境を作ります。

今年前半に、Cloud Run サービスを保護する 4 つの新機能が発表されました。それは、Secret Manager の統合、Binary Authorization、顧客管理の暗号鍵、おすすめハブでの最小権限の原則に基づく権限の提案です。

Cloud Run は、上り(内向き)および下り(外向き)のネットワーク制御機能も備えています。

VPC SC が加わったことで、Cloud Run のセキュリティ管理能力の充実、ネットワーク ガバナンスの容易さ、そして得られる安心感がそれぞれ向上しています。

今すぐセットアップ方法を確認し、Cloud Run で VPC SC を使用してください。

-プロダクト マネージャー Rachel Tsao

-プロダクト マネージャー Karolina Netolicka

投稿先