はじめに
前回に続いて、2019年に公開された論文「Zanzibar: Google's Consistent, Global Authorization System」に基づいて、Googleのサービス群を支える統合認証システム「Zanzibar」を紹介していきます。今回は、リアルタイムに更新されるACLの整合性を担保する仕組みについて解説します。
変更の時系列を守る必要性
前回の記事で説明したように、Zanzibarは「何に対して(object)」「どのような関係・権限を(relation)」「誰が持つのか(user)」という関係を表す、「<object>#<relation>@<user>」という形式のレコード(ACL)を記録します。この際、どのような順序でACLが変更されたかという時間的な前後関係を正しく保持すること、そして、誤って古い情報を返さないこと、この2点を守ることが特に重要になります。論文内では、これらが守られなかった際に起こり得る問題として、次の2つの例が挙げられています。
例1:時間的な前後関係を無視した場合に起こる問題
(1) アリスは、フォルダーからボブのアクセス権を削除する。
(2) アルスは、新しいドキュメントをフォルダーに保存するようにチャーリーに依頼する。このドキュメントはフォルダーのアクセス権を引き継ぐ。
(3) ボブは新しいドキュメントにアクセスできてはいけないが、(1)(2) の記録順序が誤っていた場合、ボブが新しいドキュメントにアクセスできる可能性がある。
この続きは以下をご覧ください
(リンク »)
お問い合わせにつきましては発表元企業までお願いいたします。

