1.はじめに

クラウドインテグレーション事業部 の田中 弘紀です。
Google Cloudでは様々なセキュリティサービスが提供されており、サービスの1つとしてVPC Service Controlsが提供されています。
本記事ではVPC Service Controlsについて解説します。

2.VPC Service Controlsとは

簡潔に言うと、Google CloudサービスへのAPIリクエスト及びGoogle Cloudから外部へのAPIリクエストを送信元により制限するものです。
VPC Service Controlsを適切に利用すれば、Cloud StorageやBigQueryなどのリソースを防護し、不正操作やデータ漏洩といったインシデントが発生するリスクを効果的に軽減できます
VPC Service Controlsは論理的な防御領域として「サービス境界」と呼ばれるものを設定し、サービス境界内外からのAPIリクエストに対して制限を行います。
これにより
・インターネットからのAPIリクエスト
・サービス境界外のその他 Google CloudプロジェクトからのAPIリクエスト
・Cloud Interconnectなどを介したオンプレミス環境や、他のクラウドサービスからのAPIリクエスト
・サービス境界外部へのAPIリクエスト
といったサービス境界を跨ぐAPIリクエストを制御します。

3.サービス境界について

例として記載している図はサービス境界に単一のプロジェクトを所属させたケースを想定して掲載していますが
サービス境界は複数のプロジェクトを所属させる事も可能です。
同じサービス境界内に存在するプロジェクト間のAPIリクエストは制限が行われませんが
サービス境界内でのAPIコールについても無条件でアクセスが可能では無いという点には注意して下さい。
アクセス元となるリソースにはサービスアカウントに適切な権限の付与を行い、サービス境界内のリソースに対してアクセス可能な状態とする必要があります。

4.サービス境界を跨ぐリクエスト元制限について

リクエスト元の制限は
・Access Context ManagerによるIPアドレス許可(パブリックアドレス・プライベートアドレス)
※プライベートアドレスはGoogle Cloud同組織内のVPCのみ指定が可能です。
・Access Context Managerによる地域(国)ベースの許可
・サービスアカウント
・IAMユーザー
・IAMグループ
などからいずれかを選択、もしくは組み合わせてリクエスト元の制限を行います。

 

5.サービス境界の管理について

デフォルトではサービス境界は組織単位で管理されますが、組織管理者のみが操作できると柔軟性に欠ける場合があります。
しかし、サービス境界の管理をフォルダやプロジェクト単位に委任することができ、管理の柔軟性を高めることが可能です。
これにより、責任範囲を分けることができ、各チームやプロジェクトごとに効率的な運用が期待できます。

6.VPC Service Controlsの設定

VPC Service Controlsは以下の設定項目により構成されます。
・境界のタイプ
・保護するリソース
・制限付きサービス
・VPCのアクセス可能なサービス
・アクセスレベル
・上り(内向き)ルール
・下り(外向き)ルール
設定項目毎に解説を行います。

6-1.境界のタイプ

サービス境界のイメージは以下の図の通りです。
プロジェクトAをサービス境界として指定し、各環境からCloud Storageに対してAPIリクエストを発行した際の例です。
APIリクエストが可能なものは⚪︎、不可能なものは✖️として記載しています。
境界のタイプは「標準境界」、「境界ブリッジ」の2つのタイプが存在します。
「標準境界」は「4.サービス境界について」に記載したイメージ図の通りで
プロジェクト、またはVPCネットワーク を1つの境界に所属させ、リソースを保護します。
ちなみにサービス境界は仕様上1つのプロジェクトに対し、1つしか作成が出来ません。
「境界ブリッジ」は、異なるサービス境界間でリソース同士が双方向にAPIリクエストを許可する際に指定されます。
異なるセキュリティポリシーで管理しているサービス境界間のアクセスを限定的に許可するケースや、プロジェクトの統合などで利用されるケースが考えられます。
注意すべき点は境界ブリッジに指定されたサービス境界内でのAPIコールについても無条件でアクセスが可能では無いという点です。
アクセス元となるリソースにはサービスアカウントに適切な権限の付与を行い、境界ブリッジ内のリソースに対してアクセス許可を行う必要があります。

6-2.保護するリソース

サービス境界内で保護するプロジェクトやVPCを指定します。

6-3.制限付きサービス

サービス境界で保護するサービスを指定します。
保護したリソースは後述するポリシーにて明示的に許可設定を追加しない限り、サービス境界外からのAPIリクエストは拒否されます。
保護対象として指定しないリソースは、権限をもつユーザーやサービスアカウントから境界内外どこからでもアクセス可能となってしまうため
特定の条件下でサービスを利用したい場合を除いて、サービス境界内に全てのサービスを含めて防護する事を推奨します。
VPC Service Controlsで防御可能なリソースは下記のGoogle Cloud公式ドキュメントにて紹介されています。

https://cloud.google.com/vpc-service-controls/docs/supported-products?hl=ja

6-4.VPC のアクセス可能なサービス

限定公開の GoogleアクセスやPrivate Service Connectを利用してアクセス可能なサービスを指定します。
限定公開の GoogleアクセスやPrivate Service Connectの詳細は省略しますが、通常、Google Cloudリソースへのアクセスはインターネットを経由して行われます。
この機能は、インターネットを介さずに安全にリソースにアクセスできるようにするためのものです。
ここで指定したGoogle CloudサービスはCloud Interconnectなどを介したオンプレミス環境やその他クラウドサービスなどからプライベートネットワーク経由でのアクセスが可能となります。
このパラメーターでは「すべてのサービス」、「サービスなし」、「すべての制限付きサービス」、「選択したサービス」のいずれかを選択し
どの範囲でプライベートネットワーク経由でのアクセスを可能とするかを決定します。
パラメーターの詳細について下記に記載します。
すべてのサービス 全てのGoogle Cloudサービスに対して限定公開のGoogleアクセスもしくはPrivate Service Connectを利用してアクセス可能
サービスなし 全てのGoogle Cloudサービスに対して限定公開のGoogleアクセスもしくはPrivate Service Connectを利用してアクセス不可
すべての制限付きサービス 制限付きサービスにて指定したGoogle Cloudサービスのみ限定公開のGoogleアクセスもしくはPrivate Service Connectを利用してアクセス可能
選択したサービス
明示的に指定したGoogle Cloudサービスのみ限定公開のGoogleアクセスもしくはPrivate Service Connectを利用してアクセス可能

6-5.アクセスレベル

特定のIPアドレスや地域(国)ベースのアクセスを許可する場合、
Access Context Managerで指定したIPアドレス(パブリックまたはプライベート)や地域(国)からのアクセスを制御できます。
この設定により、許可されたIPアドレスや地域(国)からのアクセスは、すべてのIAMユーザーやサービスアカウントに適用され、指定した範囲内でリソースにアクセスできます。
この設定値はIPアドレスや地域(国)単位で大きく許可を行う設定値ですが
後述するポリシーではさらに細かく制御が行えます。

6-6.上り(内向き)ポリシー

サービス境界外からGoogle Cloudに対して行われる通信に対して制御設定を行う項目です。
ここの設定値では、単一のIAMユーザやサービスアカウント、Google Cloudリソース、APIの種類など
複数の条件を組み合わせて細かく制御設定が行えます。
VPC Service Controlsの導入を検討される際は、この設定項目にて制限を行う事を推奨します。

6-7.下り(外向き)ポリシー

Google Cloudからサービス境界外対して行われる通信に対して制御設定を行う項目です。
ここの設定値では、単一のIAMユーザやサービスアカウント、Google Cloudリソース、APIの種類など
複数の条件を組み合わせて細かく制御設定が行えます。
また、送信先には外部クラウドサービス、例えばAmazon S3などを指定することもできます。

7.ドライランモード

VPC Service Controlsには「ドライランモード」と呼ばれる機能があり、
設定したセキュリティ境界を擬似的に適用して、Google Cloud上のサービスに与える影響を事前に評価することが可能です。
これにより、意図せぬアクセス拒否などの影響を未然に防ぐことができます。
ドライランモードでは実際に拒否は行われませんが、拒否されたログはCloud Loggingにログが出力されますので分析も行えますので嬉しい機能ですね。
動作検証 → 本番適用(ドライランモード) → 本番適用
のような流れで追加作業を行うと、より安全に導入が出来るのではないでしょうか。

 

8.まとめ

VPC Service Controlsの利用開始にあたり、押さえていただきたい点を記載しましたが、いかがでしょうか。
VPC Service Controlsを利用することでセキュリティ対策を強化することはできますが、
それだけでセキュリティが完全に保証されるわけではありません。多層防御の観点から、他のセキュリティ対策と併用することが重要です。
ぜひ導入をご検討下さい。