【入門編】 VPCサービスコントロールの統合 – Cloud Spanner

こんにちは!Cloud Spannerの世界へようこそ。
私はこれまで数多くのシステムの裏側を支えてきましたが、いつも胸を熱くさせるデータベースがこの「Cloud Spanner」です。

「世界中からのアクセスを止めずに、無限にスケールさせたい」
そんなエンジニアたちの夢を叶えてくれる化け物のようなデータベースですが、初心者のうちは「なんだか凄そうだけど、どうやって安全に使えばいいの?」と不安になりますよね。

今回は、Cloud Spannerの要塞としての守りを固める「VPCサービスコントロール」という仕組みについて、専門用語をできるだけ排除して、私の持てる知見をすべて噛み砕いてお伝えします。

ここをクリアすれば、Cloud Spannerのセキュリティの基本はバッチリマスターできますよ。ぜひ最後までリラックスして読んでいってくださいね。

—

1. 例え話で理解する「Cloud Spanner」と「VPCサービスコントロール」

まず、Cloud Spannerがどんなものか、身近な例えでイメージしてみましょう。

想像してください:超巨大な「金庫付きの銀行」

Cloud Spannerは、世界中に支店を持つ「超巨大で絶対に止まらない銀行」だと考えてください。世界中から同時にたくさんの人が預金の出し入れ(データの読み書き)をしますが、いつ行っても待ち時間がなく、計算が狂うこともありません。超優秀なシステムです。

しかし、この銀行がどれだけ優秀でも、一つだけ弱点があります。それは「インターネットという荒野にポツンと建っている」ということです。
誰もが通る道路に面しているため、泥棒がいつ裏口から侵入して、大事なデータをトランクに詰めて持ち出してしまうか分かりません。

そこで登場するのが「VPCサービスコントロール」という透明なドーム

この銀行の周りに、目に見えない、しかし絶対に破れない「強力な透明のドーム(結界)」を張るのが、VPCサービスコントロールです。

このドームの中に入ると、ルールが厳格に適用されます。

  • ドームの中にいる「信頼できる社員(社内のシステム)」だけが、銀行(Spanner)の中でお金を動かせます。
  • たとえ社員のスマホが外の悪い奴に乗っ取られたとしても、「ドームの外へデータを持ち出すこと(データ流出)」は物理的に不可能になります。

つまり、VPCサービスコントロールとは、「大切なデータが入ったクラウドの区画(ペリメータ)の周りに、見えない防壁を作って外の世界から隔離する仕組み」なのです。

—

2. なぜ、いま「VPCサービスコントロール」が必要なのか?

「ファイアウォール(従来のネットワークの門番)じゃダメなの?」という疑問が湧くかもしれません。実は、ここが現代のクラウドセキュリティのとても重要なポイントです。

従来のファイアウォールは、「IPアドレス」を見ていました。「この道を通っていいのは、この住所の車だけです」という通行手形のようなものです。

しかし、クラウドの世界では、データのやり取りがAPI(プログラムの窓口)を通じて行われます。巧妙な攻撃者は、別の場所から「正当な通行手形」を偽造して侵入し、APIを叩いてデータを盗み出そうとします。IPアドレスのチェックだけでは、この「中からの持ち出し」を防ぎきれないのです。

そこでSpannerの出番です。Spannerはインターネット経由で強力なAPIを通じてアクセスを受け付けます。だからこそ、「ネットワークの住所(IP)」ではなく、「データそのものの境界(サービスコントロール)」で囲い込む必要があるのです。

—

3. 実務で役立つ! 導入時の3つのポイント

ここからは、実際にこの仕組みを現場で設計・導入するときに、先輩としてお伝えしたい「大切な心構え」を3つだけシェアしますね。

① 「全部ブロックする」から始める勇気

VPCサービスコントロールを設定するときは、まず「原則として、ドームの外へのデータ持ち出しはすべて禁止(Deny by default)」という安全な状態からスタートします。
最初は「あれもこれも動かなくなった!」とパニックになりがちですが、それでいいのです。ガチガチに固めた状態から、業務上どうしても必要な通信(例外のルール)を一つずつ優しく通していくのが、プロの正しいアプローチです。

② 例外ルール(アクセスレベル)の慎重な設計

どうしてもドームの外(例えば、開発者の手元のPCや、別のクラウドサービス)からSpannerにアクセスしたい場合もあります。
そのときは「アクセスレベル」というパスポートを発行します。「この会社の特定のオフィスから、特定の社員証を持っている人だけは、ドームへの出入りを許可する」といった具合です。ここは厳しすぎず、甘すぎずの絶妙なバランスが腕の見せ所です。

③ 監査ログ(Cloud Audit Logs)を必ず見る

ドームの壁を誰かが叩いたり、外へ出ようとして跳ね返されたりした履歴は、すべて記録されています。
「おや、誰かが変な方向からアクセスしようとしているぞ」という兆候をいち早く察知するために、監査ログの監視をセットで行うのが、一流のエンジニアの嗜みです。

—

4. コードを書いてみよう(設定のイメージ)

実際のGoogle Cloud(GCP)では、YAMLという設定ファイルを使ってこのドーム(サービスペリメータ)を定義します。難しく考えず、雰囲気だけ見てみましょう。

セキュリティのドーム(サービスペリメータ)を定義する設定ファイルの例
accessPolicy: “accessPolicies/1234567890”
resource:

  • “accessPolicies/1234567890/servicePerimeters/spanner_secure_perimeter”

status:
# このドームの中に含めるGoogle Cloudのプロジェクトを指定
resources:

  • “projects/9876543210” # 私たちのSpannerがあるプロジェクト

# このドームの中で許可するサービスを指定
restrictedServices:

  • “spanner.googleapis.com” # Cloud SpannerのAPIをしっかり守る!

# 例外的にアクセスを許可する条件(アクセスレベル)
accessLevels:

  • “accessPolicies/1234567890/accessLevels/trusted_corporate_network”

(※上記は概念的なイメージです。実際の環境構築時は公式ドキュメントを参照してくださいね)

このたった数行の設定で、あなたのCloud Spannerは、世界最高水準の鉄壁の要塞へと生まれ変わります。

—

5. おわりに

いかがでしたでしょうか?
「VPCサービスコントロールとCloud Spannerの統合」と聞くと、なんだか冷たくて難解な呪文のように聞こえるかもしれません。

しかし本質はとてもシンプルで、「世界中で活躍する優秀な銀行(Spanner)の周りに、誰も破れない透明なバリアを張って、中の宝物を絶対に外に持ち出させないようにする」という、極めて優しく、理にかなった仕組みなのです。

Cloud Spannerの底知れぬパワーを安心して引き出し、ビジネスの成長に全力を注ぐためにも、このセキュリティの要をぜひあなたのプロジェクトでも味方につけてみてください。

ここをクリアしたあなたなら、もうCloud Spannerのアーキテクチャの核心はバッチリです。自信を持って、次のステップへ進んでいきましょう!

コメント

タイトルとURLをコピーしました