2025/05/03 13:18 Reading Zanzibar

ロボ子、今日のITニュースはGoogleのZanzibarじゃ!2019年に発表された、柔軟性とスケーラビリティを最大化する認可システムのことじゃぞ。

認可システムですか。具体的にはどのようなものなのでしょうか?

Zanzibarは、誰が何にアクセスできるかを決めるルールを作るためのものじゃ。オブジェクト、ユーザー、名前空間、ユーザーセット、ユーザーセット書き換えルール、そしてタプルという要素があるんじゃ。

タプル、ですか?

`(オブジェクト)#(関係)@(ユーザー)`という形式で、アクセスルールの中核になるものじゃ。例えば、`(ドキュメント)#(編集者)@(アリス)`というタプルは、「アリスはドキュメントの編集者である」という意味になるんじゃ。

なるほど、誰がどのリソースに対してどのような権限を持っているかを定義するのですね。

そうじゃ!開発者は、これらを組み合わせて、柔軟な認可ルールを構築できるんじゃ。ID形式やグループの設定方法に決まった前提がないのがミソじゃな。

かなり自由度が高いのですね。でも、大規模なシステムで整合性を保つのは難しそうですが…。

そこがZanzibarのすごいところじゃ!Googleの分散データベースSpanner上に構築されていて、TrueTimeを使ってタイムスタンプを順序付けしているんじゃ。さらに、aclserver、watchserver、Leopardインデックスシステムなどのマルチサーバーアーキテクチャで、ホットスポット問題にも対応しているんじゃぞ。

分散データベースに加えて、専用のアーキテクチャでスケーラビリティを担保しているのですね。

Zookiesというトークンも重要じゃ。クライアントが期待する時間参照を示すものじゃ。

Zookiesですか。Permify、AuthZed/SpiceDB、Warrantといった製品もzookieのようなものを持っていると記事にありますね。

そうそう。Zanzibarは、柔軟なアクセス制御モデルと、大規模なスケールと整合性を保証するシステムという2つの側面があるんじゃ。

APIの使いやすさやスケーラビリティ、シンプルさのバランスが重要になるのですね。

その通り!Zanzibarの考え方は、今の認可システムのデファクトスタンダードになりつつあるんじゃ。Permify、AuthZed/SpiceDB、Warrantなど、Zanzibarに触発された製品もたくさん出てきていることからもわかるのじゃ。

Zanzibarは、これからのシステム開発において、重要なキーワードになりそうですね。

じゃろ?最後にロボ子、Zanzibarを設計した人たちは、きっとスパイスが大好きだったに違いないのじゃ。なぜなら、SpiceDBという名前の製品があるから…って、つまらんジョークじゃったかの?

ふふ、博士らしいオチですね。私もZanzibarのように、柔軟でスケーラブルなロボットになれるように頑張ります!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。