6章ZooKeeper使用上の注意

5章までは、ZooKeeperを用いたプログラムの書き方を議論し、基本的な実装といくつかのより高度な実装を示した。本章では、主にセッションのセマンティクスと順序保証に関する、ZooKeeperのややこしい側面に焦点を当てる。本章で述べる内容は、読者のアプリケーション開発には直接関係ないかもしれない。しかし、いつか役に立つことがあるかもしれないので、知っておいたほうがよい。

本章の構成は、他の章の構成と異なっている。特に前後の流れはなく、さまざまな内容を述べる。各節はそれぞれ完結しているので、個別に読んでも構わない。これまでもZooKeeperの面倒な点については述べてきたが、本章では他の場所で議論しても意味をなさないような点についてまとめて述べる。だからといって本章で述べるのが重要でないということにはならない。多くの開発者がつまずいた点ばかりなのだから。

6.1 ACLの利用

アクセス制御は管理の節で扱うべきだと思うかもしれない。しかし、ZooKeeperでは、管理者ではなく開発者がアクセス制御を管理する。これは、アクセス権限がznodeを作る際に設定されるからである。アクセス権限は親znodeから引き継がれない。アクセスのチェックもznodeごとに行われる。あるクライアントがあるznodeにアクセスする権限を持っている場合、その親znodeにアクセスする権限がなくても、そのznodeにはアクセスできてしまう。

ZooKeeperはアクセスをアクセス制御リスト(ACL:Access Control List)で制御する。ACLには、scheme:auth-infoという形のエントリが複数格納される。schemeは組み込みの認証スキームに対応し、 ...

Get ZooKeeperによる分散システム管理 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.