【入門編】 アクセス制御の強制メカニズム – Cloud Spanner

こんにちは!クラウドの世界へようこそ。
今日は、Googleが誇る最強のデータベース「Cloud Spanner(クラウド・スパナー)」の、ちょっとカッコいい裏側の仕組みについてお話ししますね。

「データベースのアクセス制御」とか「認証・認可」って聞くと、なんだか難しそうな呪文のように感じるかもしれません。でも、大丈夫。ここをクリアすれば、Cloud Spannerの基本はバッチリマスターできますよ!

今回は、専門用語をできるだけ使わずに、私たちが普段暮らしている「街の仕組み」に例えて優しく解き明かしていきましょう。

—

1. Cloud Spannerってどんなデータベース?

まず、Cloud Spannerのイメージをつかんでおきましょう。
普通のデータベースが「街の小さな本屋さん」だとしたら、Cloud Spannerは「世界中に何号店もあり、世界中の人が同時に使っても絶対にレジが混雑しない、超巨大デパート」のようなものです。

世界中からものすごい数のアクセスが来ても、データをきれいに分散して、まるで1つの大きな机の上にあるかのように高速に処理してくれます。

2. 「入り口」と「店員さん」のセキュリティ

さて、この超巨大デパート、誰でも勝手に入ってきて、勝手に金庫を開けられたら大問題ですよね。だから、しっかりとした「警備システム」が必要です。

Cloud Spannerにおけるセキュリティは、大きく分けて2つのステップで動いています。

1. 認証(あなたは誰ですか?)
2. 認可(あなたは何をしていい人ですか?)

これを日常の例で考えてみましょう。

日常の例え:テーマパークの「年間パスポート」

あなたは今、大人気のテーマパークに遊びに来ました。

  • 認証:入り口で「年間パスポート」と「顔写真付きの身分証明書」を見せます。「あ、〇〇さんですね、本物ですね」と確認されるのが認証です。
  • 認可:そのパスポートには「アトラクションには乗れるけど、スタッフオンリーのバックヤードには入れません」というルール(権限)が書いてあります。入れる場所を制限されるのが認可です。

Cloud Spannerでも全く同じ。Google CloudのIAM(Identity and Access Management)という仕組みを使って、「この人は誰か(認証)」と「この人はどのデータを見ていいのか(認可)」を厳しく、かつスマートに管理しています。

—

3. データを取りに行くときの「内部の旅」

ここからが本題です。
「私はデータを見ていい人です」と認められたあなた(アプリや人)が、「〇〇のデータをください!」とお願いしたとき、Cloud Spannerの裏側ではどんなドラマが起きているのでしょうか?

デパートの「VIPルーム」を買い出しに行くスタッフを想像してください。

[ あなた(アプリ) ]
↓ 「このデータちょうだい!」
[ 総合受付(IAMによる認証・認可) ]
↓ 「よし、この人は通してOK!」(通行証を発行)
[ 各フロアの店員さん(ノードのクエリ実行エンジン) ]
↓ 「通行証のハンコを確認…よし、商品をお渡しします!」
[ データ ]

① まず「総合受付」でチェック

あなたがリクエストを投げると、まずはCloud Spannerの「総合受付(Google CloudのIAM)」にぶつかります。
ここで、「このリクエストを送ってきた人は、本当にアクセスしていい権限を持っているか?」が厳しくチェックされます。合格すると、特別な「通行証(トークン)」が発行されます。

② 各フロア(ノード)のクエリ実行エンジンへ

Cloud Spannerのデータは、広大なデパートのたくさんの「フロア(ノード)」に散らばって保管されています。
あなたが探しているデータが「3階の洋服売り場」にあるとしたら、リクエストは3階の担当者(クエリ実行エンジン)のところに届きます。

ここで重要なポイントがあります。
「総合受付だけでなく、各フロアの店員さんもしっかりあなたの通行証を確認する」ということです。

③ ノードでの最終チェックと実行

各フロアの店員さん(クエリ実行エンジン)は、受け取ったリクエストに添付されている「通行証」をジロジロと見ます。

  • 「ふむふむ、この人は『総務部の〇〇さん』だな」
  • 「おや、このデータは『人事部の機密情報』だから、総務部の人は見ちゃいけないルールになっているぞ」

もしルール違反だったら、店員さんは「申し訳ありません、お見せできません!」とその場でビシッと遮断します。
逆にルールにぴったり合っていれば、笑顔で金庫を開け、データをあなたに渡してくれるのです。

—

4. なぜ、わざわざ「各ノード」でもチェックするの?

「総合受付でチェックしたんだから、中の店員さんは信じてあげればいいのに」って思いますよね?
ここに、Cloud Spannerが「世界最高峰のデータベース」と言われる秘密があります。

Cloud Spannerは、世界中にデータをバラバラに置いて動いています。もし総合受付だけでしかセキュリティを見ていなかったら、もしも受付のシステムをすり抜ける悪い奴がいたとき、中のデータがすべて危険にさらされてしまいます。

だからこそ、データを実際に持っている最前線のスタッフ(各ノードのエンジン)一人ひとりが、自分の目で厳しく身分証を確認するようにできているのです。
この「ゼロトラスト(誰も信用しない、すべて確認する)」の精神が、Cloud Spannerの鉄壁のセキュリティを支えているんですね。

—

おわりに

いかがでしたか?
Cloud Spannerのアクセス制御の仕組みも、私たちの身近にある「厳重な警備のデパート」の仕組みと同じだと思えば、少し親しみやすくなったのではないでしょうか。

  • 入り口のIAMで「身元と大まかな権限」を確認する
  • 中のクエリ実行エンジン(ノード)が「本当にこのデータに触っていいか」をその都度チェックする

この2段構えのバッチリとした連携があるからこそ、私たちは安全に、そして安心して世界中のデータを預けることができるのです。

ここをクリアできれば、Cloud Spannerの基礎はもうバッチリマスターです!
次は実際に手を動かして、権限を設定する設定(IAMポリシーの付与)などに挑戦してみてくださいね。応援しています!

コメント

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