VPC Service Controlsで保護されたリソースを組織階層で使用する方法

2024/09/02に公開されました。
2024/09/02に更新されました。

組織階層でVPC Service Controlsで保護されたプロジェクトのリソースを使用する方法


author: morishu

はじめに

企業においてビジネスデータの保護は極めて重要です。

しかし、データ流出事故の多くは人為的なミスから発生します。

Google CloudのVPC Service Controlsは、プロジェクトのリソースを強力に保護するためのサービスです。

このサービスを利用することで、企業の重要なデータをより安全に守ることができます。

ただし、VPC Service Controlsの設定は初心者には難解な部分が多いのも事実です。

そこで今回は、VPC Service Controlsの基本設定に加え、私自身が設定中に直面した疑問とその解決策について、わかりやすく解説します。

これからVPC Service Controlsを始める方や、設定に困っている方にとって、少しでも役立つ情報をお届けします。

VPC Service Controlsとは

VPC Service Controls(VPC SC)は、Google Cloudプロジェクト内のリソースを、 不正なアクセスやデータ漏洩から保護するためのセキュリティサービスです。

VPC Service Controls の主な機能と特徴

図1

  1. サービス境界(Perimeter)の設定: プロジェクト外側に仮想的な境界を作成し、プロジェクト内のリソースを保護します。
  2. アクセス制御の強化: Access Context Managerと連携し、以下の条件に基づいてリソースへのアクセスを制限できます。
    • デバイスの属性
    • 接続元のIPアドレス
    • 地域
    • ユーザーID
    • サービスアカウント
    • Googleグループ(プレビュー)
    • サードパーティID(プレビュー)
  3. データ漏洩対策: 許可されていないユーザーや端末からのアクセスを制限し、意図しないデータの持ち出しや外部からの不正アクセスを防ぎます。

VPC Service Controls の設定項目

  1. タイトル(必須): 半角英数とアンダースコアを使用して50文字以内で指定
  2. 境界のタイプ(必須): 標準境界(デフォルト)と境界ブリッジの2つから選択(詳細については、以下で説明)
  3. 保護するリソース(必須): リソースを保護するプロジェクト又はVPCネットワークを指定
  4. 制限付きサービス(必須): サービス境界で保護するGoogle Cloudサービスを指定
  5. VPCのアクセス可能なサービス(必須): 限定公開のGoogleアクセスを使用してアクセスするサービスを指定
  6. アクセスレベル(オプション)(任意): サービス境界外から保護されたリソースにアクセスする条件を指定
  7. 上り(内向き)ポリシー(任意): VPC SC外部から保護されたリソースにアクセスするポリシーを指定
  8. 下り(外向き)ポリシー(任意): 保護されたリソースからVPC SC外部にアクセスするポリシーを指定

標準境界(デフォルト)と境界ブリッジ

標準境界(デフォルト)では、プロジェクト(またはVPCネットワーク)に1つの境界を作成し、リソースを保護します。 標準境界は、シンプルで管理しやすい一方で、複数のプロジェクト間でリソースを共有する必要がある場合には、柔軟性に欠ける場合があります。

境界ブリッジでは、2つのプロジェクト(またはVPCネットワーク)に境界を作成し、そのプロジェクト(またはVPCネットワーク)は、 双方向で通信やデータの共有できます。 境界ブリッジは、複数のプロジェクトにまたがる複雑なシステム構成においても、セキュリティを維持しながら柔軟な連携を実現します。

構築内容

今回の構築内容は、組織で設定したSecurity Command Centerが検出したエラーを、 継続的エクスポートを使用し、VPC Service Controlsで保護されたプロジェクトのPub/Subから通知するフローをデプロイすることです。

構築イメージ

構築イメージは、以下になります。

図2

疑問に感じたこと

VPC Service Controlsはプロジェクトのリソースを保護するサービスですが、組織階層のリソースを作成する際、下り(外向き)ルールをどのように設定すべきか。

結論

組織やフォルダ階層のリソースを作成する場合、下り(外向き)ルールで許可するプロジェクトは「All projects」を選択します。

理由

VPC Service Controlsを使用する際、組織やフォルダをエクスポート先に設定する場合は、外向き通信のルールを特定のプロジェクトに限定せず、 すべてのリソースに対して外向きの通信を許可するように設定する必要があります。 これは、Google CloudのAPIがプロジェクト単位で有効になる一方で、APIリクエスト自体はプロジェクトから組織やフォルダに向けて行われるためです。

実際の設定方法

今回の構築内容の実際の設定値は以下になります。

  1. タイトル: 任意

  2. 境界のタイプ: 標準境界(デフォルト)

  3. 保護するリソース: 対象プロジェクト

  4. 制限付きサービス: すべてのサービス

  5. VPCのアクセス可能なサービス: すべてのサービス

  6. アクセスレベル: 任意(今回はアクセス元IPアドレスのアクセスレベルを使用)

  7. 上り(内向き)ポリシー: <APIクライアントのFROM属性>

    • ID: 任意のユーザーアカウント
    • ソース: すべてのソース <GCPサービス / リソースのTO属性>
    • プロジェクト: Selected projects
      • プロジェクト: 対象プロジェクト
    • サービス: Selected services
      • 選択したサービス: Cloud Pub/Sub API
        • メッソド: All methods
  8. 下り(外向き)ポリシー: <APIクライアントのFROM属性>

    • ID: 任意のユーザーアカウント <GCPサービス / リソースのTO属性>
    • プロジェクト: All projects
      • プロジェクト: 対象プロジェクト
    • サービス: Selected services
      • 選択したサービス: Cloud Pub/Sub API
        • メッソド: All methods
      • 選択したサービス: Security Command Center API
        • メッソド: All methods

実際の設定方法(補足)

設定方法で重要なポイントは「上り(内向き)/下り(外向き)ポリシー」なので、設定画面を掲載しておきます。

Ingress rules

Egress rules

まとめ

VPC Service Controlsは、企業の重要なデータを保護するために非常に有用なサービスです。

通常、プロジェクトに境界を設定し、そのプロジェクト内のリソースを保護します。

しかし、組織やフォルダ階層のリソースをエクスポート先として設定する場合、下り(外向き)ルールで許可するプロジェクトは、 特定のプロジェクトを選択するのではなく、「All projects」を使用することで、組織やフォルダ階層のリソースを作成できます。


GI Cloudは事業の拡大に向けて一緒に夢を追う仲間を募集しています

当社は「クラウドで日本のIT業界を変革し、世の中をもっとハッピーに」をミッションに掲げ、Google Cloudに特化した技術者集団として、お客様にコンサルティングからシステム開発、運用・保守まで一気通貫でサービスを提供しています。

まだ小規模な事業体ですが、スタートアップならではの活気と成長性に加えて、大手総合商社である伊藤忠グループの一員としてやりがいのある案件にもどんどんチャレンジできる環境が整っています。成長意欲の高い仲間と共にスキルを磨きながら、クラウドの力で世の中をもっとハッピーにしたい。そんな我々の想いに共感できる方のエントリーをお待ちしています。

採用ページ

※本記事は、ジーアイクラウド株式会社の見解を述べたものであり、必要な調査・検討は行っているものの必ずしもその正確性や真実性を保証するものではありません。

※リンクを利用する際には、必ず出典がGIC dryaki-blogであることを明記してください。
リンクの利用によりトラブルが発生した場合、リンクを設置した方ご自身の責任で対応してください。
ジーアイクラウド株式会社はユーザーによるリンクの利用につき、如何なる責任を負うものではありません。