はじめに

2024/2/24 VPC Service Controls 違反アナライザー という機能がプレビューで利用することができるようになりました。こちらにより、想定外の VPC Service Controls による制限をより効率的に調査、解消することが可能になりました。

概要

VPC Service Controls にて意図しない制限をかけてしまい、必要な挙動が阻害されるケースや、ドライランで動かしていた場合でも、意図しないエラーがログに記録されることがあるかと思います。そういった事象に対して効率的に調査、特定するための機能がプレビュー公開されておりましたので、ご紹介します。

VPC Service Controls とは

こちらのサービスの内容については、弊社田中の セキュリティ強化のために理解しておきたいサービス~VPC Service Controls~を参照ください。記事内の文章と図を引用させていただき、以下のような制限ができるものとお考えください。

簡潔に言うと、Google CloudサービスへのAPIリクエスト及びGoogle Cloudから外部へのAPIリクエストを送信元により制限するものです。
これにより
・インターネットからのAPIリクエスト
・サービス境界外のその他 Google CloudプロジェクトからのAPIリクエスト
・Cloud Interconnectなどを介したオンプレミス環境や、他のクラウドサービスからのAPIリクエスト
・サービス境界外部へのAPIリクエスト
といったサービス境界を跨ぐAPIリクエストを制御します。

今回の VPC Service Controls 違反アナライザー の良いところ

制限自体の煩雑さ

VPC Service Controls で制限するための設定内容は複雑なところもあり、以下図のように、どのプロジェクトを保護して、どの API を制限して、上り・下りのルール(どのプリンシパルでどのAPIが実行できるか)をどう定義して許可するかという設定が必要となります。

解消できること

今回プレビューでリリースされた VPC Service Controls 違反アナライザーは、設定した制限に抵触し違反が起きた場合、ログ内の識別子を用いて、ログの内容からどのような違反があったかを明確に表示してくれるようになり、意図した制限のものか、意図していない違反で本来許可するべきものか、を判断しやすくなります。
次に簡単な調査ステップをご紹介します。

ログからvpcServiceControlsTroubleshootTokenをコピーする

違反アナライザー を開きトークンを検索する

違反の詳細が確認できる

ドライランを実行していた場合、比較してマッチしていない箇所の特定ができる


こちらみておわかりいただける通り、例えばサービス箇所の赤いビックリマークをみると、storage.googleapis.com があるように対象プリンシパルからの Storage への API が許可されていないことがわかります。

纏め

VPC Service Controls はセキュリティを維持するために重要な機能でありますが、その分制限する項目の柔軟さを求めると、ルールが煩雑になってきます。その煩雑になったルールから更に必要な権限を許可する場合、時間を要するケースもあったかと思います。そこで、違反アナライザーを利用することで、違反箇所が明確になり、許可する場合も、許可するか拒否したままにするかの判断をするうえでも重要な役割を果たすといえる機能だと思います。プレビューから早く GA され、ログからの遷移のしやすさなどが向上すると、より期待できる機能になると感じました。