VPC Service Controls の概要

このトピックでは、VPC Service Controls の概要と、そのメリット、機能について説明します。

VPC Service Controls を使用する必要があるユーザー

組織では、機密性の高いデータという形で知的財産を所有している場合や、PCI DSS などのデータ保護規制の対象となる機密データを処理している場合があります。意図しない機密データの損失や開示は、ビジネスに重大な悪影響を及ぼす可能性があります。

オンプレミスからクラウドに移行する場合の目標の一つとして、データを Google Cloud に移行する際にオンプレミス ネットワーク ベースのセキュリティ アーキテクチャを複製することが考えられます。機密性の高いデータを保護するには、信頼できるネットワークからのみリソースにアクセスできるようにする必要があります。組織によっては、リクエストの IP アドレスに基づいて信頼できるネットワークを識別し、そのネットワークからリクエストが発信されている限り、リソースへの公開アクセスを許可している場合があります。

データ漏洩のリスクを軽減するために、きめ細かい制御を実装して、組織の境界を越えて安全なデータ交換を実現しなければならない場合もあります。管理者として、以下の状態を維持する必要があります。

  • 特権的なアクセス権を付与されたクライアントに、パートナー リソースへのアクセス権も付与されないようにする。
  • 機密データにアクセスできるクライアントには、一般公開データセットの読み取りのみを許可し、書き込みはできないようにする。

VPC Service Controls でデータ漏洩のリスクを軽減する方法

VPC Service Controls は、外部エンティティや内部エンティティによる意図しない操作や標的型の攻撃を防止します。これにより、Cloud Storage や BigQuery などの Google Cloud サービスで不正なデータ漏洩が発生するリスクを最小限に抑えることができます。VPC Service Controls を使用すると、明示的に指定したサービスのリソースとデータを保護する境界を作成できます。

VPC Service Controls では、次のコントロールを定義することで Google Cloud サービスを保護します。

  • 境界内でリソースへのプライベート アクセスが許可されているクライアントは、境界外の未承認のリソース(公開される可能性があるリソース)にアクセスできません。

  • gsutil cpbq mk などのサービス オペレーションによって、境界外の未承認リソースにデータをコピーすることはできません。

  • 境界で分離されたクライアントとリソース間のデータ交換は、上り(内向き)ルールと下り(外向き)ルールを使用して保護されます。

  • リソースへのコンテキストアウェア アクセスは、ID タイプ(サービス アカウントまたはユーザー)、ID、デバイスデータ、ネットワーク送信元(IP アドレスまたは VPC ネットワーク)などのクライアント属性に基づいています。コンテキストアウェア アクセスの例を次に示します。

    • Google Cloud またはオンプレミス上にある境界外のクライアントは、承認済みの VPC リソース内にあり、限定公開の Google アクセスを使用して境界内のリソースにアクセスします。

    • 境界内のリソースへのインターネットからのアクセスは、IPv4 と IPv6 のアドレス範囲に制限されます。

    詳細については、上り(内向き)ルールを使用したコンテキストアウェア アクセスをご覧ください。

VPC Service Controls によって、Identity and Access Management(IAM)から独立している Google Cloud サービスに対するセキュリティが強化されます。IAM では詳細な ID ベースのアクセス制御が可能ですが、VPC Service Controls では、境界全体での下り(外向き)データの制御など、コンテキスト ベースの境界セキュリティが可能になります。多層的な防御を行うため、VPC Service Controls と IAM の併用をおすすめします。

VPC Service Controls を使用すると、Cloud Audit Logs を使用してサービス境界全体のリソース アクセス パターンをモニタリングできます。詳細については、VPC Service Controls の監査ロギングをご覧ください。

VPC Service Controls のセキュリティ上の利点

VPC Service Controls は、Google Cloud リソースへの直接的なプライベート アクセスのパフォーマンス上の利点を犠牲にすることなく、次のセキュリティ リスクを緩和します。

  • 盗まれた認証情報を使用した不正なネットワークからのアクセス: VPC Service Controls は、承認済みの VPC ネットワークからのプライベート アクセスのみを許可します。これにより、盗まれた OAuth またはサービス アカウントの認証情報を使用するクライアントによるデータ漏洩のリスクから保護できます。

  • 悪意のある関係者や感染コードによるデータ漏洩: VPC Service Controls では、下り(外向き)ネットワーク内のクライアントは境界外にある Google マネージド サービスのリソースにアクセスできません。これにより、これらのネットワークの制御が強化されます。

    VPC Service Controls では、サービス オペレーションで境界外のリソースにデータの読み取りやコピーを行うことはできません。VPC Service Controls では、gsutil cp コマンドでの Cloud Storage 公開バケットへのコピー、bq mk コマンドでの永続的な外部 BigQuery テーブルへのコピーなどのサービス オペレーションは行えません。

    Google Cloud では、VPC Service Controls と統合された制限付きの仮想 IP も用意されています。制限付き VIP では、VPC Service Controls でサポートされているサービスに対するリクエストをインターネットに公開することなく実行できます。

  • IAM ポリシーの誤構成による非公開データの開示: VPC Service Controls では、IAM ポリシーの誤った構成が原因で非公開データが開示されている場合でも、未承認のネットワークからのアクセスを拒否することでセキュリティをさらに強化できます。

  • サービスへのアクセスのモニタリング: VPC Service Controls をドライラン モードで使用して、アクセスを阻止せずに保護されたサービスへのリクエストを監視し、プロジェクトへのトラフィック リクエストを把握します。また、ハニーポット境界を作成して、アクセス可能なサービスを探ろうとする予期しない、または悪意のある試行を特定できます。

組織のアクセス ポリシーを使用して、Google Cloud 組織全体に対して VPC Service Controls を構成できます。また、スコープ ポリシーを使用して、組織内のフォルダまたはプロジェクトに対して VPC Service Controls を構成できます。境界内では、データの処理、変換、コピーを柔軟に行うことができます。

VPC Service Controls の構成は、デフォルトでは組織レベルで管理されますが、スコープがフォルダまたはプロジェクトに設定されたアクセス ポリシーを使用して、リソース階層の下位にサービス境界の管理を委任できます。

VPC Service Controls とメタデータ

VPC Service Controls は、メタデータの移動を包括的に制御するようには設計されていません。

ここでは、「データ」は Google Cloud リソースに格納されているコンテンツとして定義されています。たとえば、Cloud Storage オブジェクトのコンテンツなどです。「メタデータ」は、リソースまたはその親の属性として定義されています。たとえば、Cloud Storage のバケット名などがメタデータになります。

VPC Service Controls の主な目的は、サポート対象のサービスを介して、サービス境界を越えたデータ(メタデータではなく)の移動を制御することです。VPC Service Controls はメタデータへのアクセスも管理しますが、VPC Service Controls のポリシー チェックを経ずにメタデータのコピーやアクセスができる場合もあります。

メタデータへのアクセスを適切に制御するため、カスタムロールを含む IAM を使用することをおすすめします。

機能

VPC Service Controls では、信頼できる境界の外部にある Google マネージド サービスへのアクセスを禁止して、信頼できない場所からのデータへのアクセスをブロックし、データ漏洩のリスクを軽減するセキュリティ ポリシーを定義できます。

VPC Service Controls は、次のような場合に使用します。

Google Cloud リソースをサービス境界で分離する

サービス境界は、Google Cloud リソースのセキュリティ境界を作成します。サービス境界を設定すると、境界内では自由に通信できますが、境界を越える Google Cloud サービスとの通信はデフォルトでブロックされます。

この境界は、Google Cloud マネージド サービスとの連携に特化しています。インターネット上のサードパーティの API やサービスへのアクセスは、境界によってブロックされません。

境界を構成して、次の種類の通信を制御できます。

  • 公共のインターネットからマネージド サービス内の顧客リソースへの通信
  • 仮想マシン(VM)から Google Cloud サービス(API)への通信
  • Google Cloud サービス間の通信

VPC Service Controls には、Virtual Private Cloud(VPC)ネットワークは必要ありません。VPC ネットワーク上にリソースがない状態で VPC Service Controls を使用するには、外部 IP 範囲または特定の IAM プリンシパルからのトラフィックを許可します。詳しくは、アクセスレベルの作成と管理をご覧ください。

以下に、セキュリティ境界を作成する VPC Service Controls の例を示します。

  • サービス境界を構成する VPC ネットワーク内の VM は、同じ境界内の Cloud Storage バケットと、データの読み書きを行います。ただし、VPC Service Controls では、境界外の VPC ネットワークの VM から、境界内の Cloud Storage バケットへのアクセスを許可できません。境界外の VPC ネットワーク内の VM が境界内の Cloud Storage バケットにアクセスできるようにするには、上り(内向き)ポリシーを指定する必要があります。

  • 複数の VPC ネットワークを含むホスト プロジェクトは、ホスト プロジェクト内の VPC ネットワークごとに異なる境界ポリシーを持ちます。

  • 2 つの Cloud Storage バケット間のコピー オペレーションは、両方のバケットが同じサービス境界内にある場合は成功しますが、一方のバケットが境界外にある場合、コピー オペレーションは失敗します。

  • VPC Service Controls は、サービス境界内の VPC ネットワークの VM に境界外の Cloud Storage バケットへのアクセスを許可しません。

次の図に、境界内の VPC プロジェクトと Cloud Storage バケットの間の通信を許可し、境界を越える通信はすべてブロックするサービス境界を示します。

承認済みの VPN または Cloud Interconnect に境界を拡張する

限定公開の Google アクセスのオンプレミス拡張機能を使用して、ハイブリッド環境にまたがる VPC ネットワークから、Google Cloud リソースへのプライベート通信を構成できます。境界内の Google Cloud リソースにプライベート アクセスするには、オンプレミスからのランディング ゾーンを含む VPC ネットワークが、オンプレミス ネットワークのリソースの境界の一部である必要があります。

プライベート IP アドレスが割り振られ、サービス境界を構成する VPC ネットワーク上にある VM は、サービス境界外のマネージド リソースにアクセスできません。必要であれば、インターネット経由のすべての Google API(Gmail など)に対して、調査済みで監査済みのアクセス権を引き続き使用できます。

次の図は、限定公開の Google アクセスを使用するハイブリッド環境に拡張されるサービス境界を示しています。

インターネットから Google Cloud リソースへのアクセスを制御する

デフォルトでは、インターネットからサービス境界内のマネージド リソースへのアクセスは拒否されています。必要に応じて、リクエストのコンテキストに基づいてアクセスを有効にできます。これを行うには、送信元 IP アドレス、ID、送信元 Google Cloud プロジェクトなどのさまざまな属性に基づいてアクセスを許可する上り(内向き)ルールまたはアクセスレベルを作成します。インターネットからのリクエストが上り(内向き)ルールまたはアクセスレベルで定義された基準を満たしていない場合、リクエストは拒否されます。

Google Cloud コンソールを使用して境界内のリソースにアクセスするには、1 つ以上の IPv4 または IPv6 の範囲からのアクセスと特定のユーザー アカウントへのアクセスを許可するアクセスレベルを構成します。

次の図は、IP アドレスやデバイス ポリシーなど、構成されたアクセスレベルに基づいて、インターネットから保護リソースへのアクセスを許可するサービス境界を示しています。

データ漏洩のリスクを軽減するその他のコントロール

  • ドメインで制限された共有: 組織のポリシーを設定して、リソース共有を特定の組織リソースに属する ID に制限することもできます。詳細については、ドメイン別の ID の制限をご覧ください。

  • 均一なバケットレベルのアクセス: Cloud Storage バケットへのアクセスを均一に制御するには、バケットレベルの IAM 権限の設定を検討してください。均一なバケットレベルのアクセスを使用すると、ドメインで制限された共有、Workforce Identity 連携IAM Conditions などの他の Google Cloud セキュリティ機能を使用できます。

  • 多要素認証: Google Cloud リソースへのアクセスには多要素認証を使用することをおすすめします。

  • Infrastructure-as-Code ツールを使用した自動化: 自動化ツールを使用して Cloud Storage バケットをデプロイし、バケットへのアクセスを制御することをおすすめします。人間によるレビューまたは自動レビューを行ってから Infrastructure as Code をデプロイします。

  • デプロイ後のスキャン: 開いている Cloud Storage バケットをスキャンするには、次のデプロイ後のスキャンツールの使用を検討してください。

    • Security Command Center
    • Cloud Asset Inventory を使用してアセット メタデータの履歴を検索し、IAM ポリシーを分析して、誰が何にアクセスできるのかを確認します。
    • Palo Alto PrismaCloud などのサードパーティ ツール
  • 機密データの匿名化: 機密データ保護を使用して、Google Cloud 内外の機密データを検出、分類、匿名化することを検討します。機密データの匿名化は、秘匿化、トークン化、または暗号化によって行うことができます。

サポートされていないサービス

VPC Service Controls でサポートされているプロダクトとサービスの詳細については、サポートされているプロダクトのページをご覧ください。

gcloud コマンドライン ツールまたは Access Context Manager API を使用して、サポートされていないサービスを制限しようとするとエラーが発生します。

サポートされているサービスのデータに対するプロジェクト間のアクセスは、VPC Service Controls によってブロックされます。また、制限付き VIP を使用して、サポートされていないサービスを呼び出すワークロードをブロックできます。

既知の制限事項

VPC Service Controls を使用する場合、特定の Google Cloud サービス、プロダクト、インターフェースで制限事項が確認されています。たとえば、VPC Service Controls はすべての Google Cloud サービスに対応しているわけではありません。したがって、サポートされていない Google Cloud サービスは境界内では有効にしないでください。詳細については、VPC Service Controls でサポートされているプロダクト リストをご覧ください。VPC Service Controls でサポートされていないサービスを使用する必要がある場合は、境界外のプロジェクトでサービスを有効にします。

Google Cloud サービスを境界に含める前に、既知の制限事項を確認することをおすすめします。詳細については、VPC Service Controls サービスの制限をご覧ください。

用語集

このトピックでは、VPC Service Controls の新しいコンセプトについて学習しました。

VPC Service Controls
Google マネージド サービスのリソースにサービス境界を定義し、これらのサービスとの通信またはサービス間の通信を制御するテクノロジー。
サービス境界
Google マネージド リソースのサービス境界。境界内では自由に通信できますが、境界を越える通信はデフォルトでブロックされます。
上り(内向き)ルール
境界外の API クライアントが、境界内のリソースにアクセスできるようにするルール。詳細については、上り(内向き)と下り(外向き)のルールをご覧ください。
下り(外向き)ルール
境界内の API クライアントまたはリソースが、境界外の Google Cloud リソースにアクセスできるようにするルール。インターネット上のサードパーティの API やサービスへのアクセスは、境界でブロックされません。
サービス境界ブリッジ

境界ブリッジを使用すると、異なるサービス境界のプロジェクト間で通信が可能になります。境界ブリッジは双方向です。各サービス境界のプロジェクトは、ブリッジのスコープ内で同等にアクセスできます。

Access Context Manager

送信元 IP アドレスなど、クライアントの特定の属性に基づいてリクエストをアクセスレベルに関連付けるコンテキスト認識のリクエスト分類サービス。詳細については、Access Context Manager の概要をご覧ください。

アクセスレベル

送信元 IP 範囲、クライアント デバイス、位置情報など、複数の属性に基づくインターネット上のリクエストの分類。上り(内向き)ルールと同様に、アクセスレベルを使用してサービス境界を構成し、リクエストに関連付けられたアクセスレベルに基づいてインターネットからのアクセスを許可できます。Access Context Manager を使用してアクセスレベルを作成できます。

アクセス ポリシー

サービス境界を定義する Google Cloud リソース オブジェクト。組織全体に適用できるアクセス ポリシーとともに、特定のフォルダまたはプロジェクトに限定したアクセス ポリシーを作成できます。1 つの組織に設定できる組織レベルのアクセス ポリシーは 1 つだけです。

スコープが設定されたポリシー

スコープが設定されたポリシーには、組織全体に適用されるアクセス ポリシーのほかに、特定のフォルダまたはプロジェクトをスコープとするアクセス ポリシーがあります。詳細については、スコープが指定されたポリシーの概要をご覧ください。

制限付き VIP

制限付き VIP は、VPC Service Controls でサポートされるプロダクトと API にプライベートなネットワーク ルートを提供します。これらのプロダクトが使用するデータやリソースは、インターネットからアクセスできません。restricted.googleapis.com199.36.153.4/30 として解決されます。この IP アドレス範囲はインターネットに公開されません。

次のステップ