4.8. ZooKeeper の承認
Kafka と ZooKeeper との間で認証が有効になっていると、ZooKeeper アクセス制御リスト (ACL) ルールを使用して、ZooKeeper に保存された Kafka メタデータへのアクセスを自動的に制御できます。
4.8.1. ACL 設定
ZooKeeper ACL ルールの適用は、config/server.properties
Kafka 設定ファイルの zookeeper.set.acl
プロパティーによって制御されます。
プロパティーはデフォルトで無効になっていて、true
に設定することにより有効になります。
zookeeper.set.acl=true
ACL ルールが有効になっている場合、ZooKeeper で znode
が作成されると、作成した Kafka ユーザーのみが変更または削除できます。その他のすべてのユーザーには、読み取り専用アクセスが付与されます。
Kafka は、新しく作成された ZooKeeper znodes
に対してのみ ACL ルールを設定します。ACL がクラスターの最初の起動後にのみ有効である場合、zookeeper-security-migration.sh
ツールは既存のすべての znodes
に ACL を設定できます。
ZooKeeper のデータの機密性
ZooKeeper に保存されるデータには以下が含まれます。
- トピック名およびその設定
- SASL SCRAM 認証が使用される場合に、ソルトおよびハッシュ化されたユーザークレデンシャル
しかし、ZooKeeper は Kafka を使用して送受信されるレコードを保存しません。ZooKeeper に保存されるデータは機密ではないと仮定されます。
データが機密として考慮される場合 (たとえば、トピック名にカスタマー ID が含まれる場合など)、データ保護に使用できる唯一のオプションは、ネットワークレベルで ZooKeeper を分離し、Kafka ブローカーにのみアクセスを許可することです。