Права доступа ACL (Access Control List) в Zookeeper особенно важны в производственных средах, поэтому в этой главе приводится специальное введение.

Права доступа ACL позволяют задавать соответствующие разрешения на чтение/запись для узлов, чтобы обеспечить безопасность данных.

Разрешения могут задавать различные области разрешений и роли.

Командная строка ACL

  • команда getAcl: Получить информацию о разрешениях ACL узла.
  • команда setAcl: Установить информацию о разрешениях ACL узла.
  • команда addauth: Введите информацию аутентификации и авторизации. При регистрации введите пароль в открытом виде; он сохраняется в зашифрованном виде.

Состав ACL

ACL Zookeeper состоит из[scheme:id:permissions]для формирования списка разрешений.

  • 1, scheme: Представляет используемый механизм разрешений, включая world, auth, digest, ip, super.
  • 2, id: Представляет пользователей, которым разрешён доступ.
  • 3, permissions: Строка комбинации разрешений, состоящая из cdrwa, где каждая буква обозначает отдельное разрешение: разрешение на создание (c), разрешение на удаление (d), разрешение на чтение (r), разрешение на запись (w), административное разрешение (a).

Пример world

Проверьте разрешения узла по умолчанию, затем обновите раздел разрешений узла до crwa. В результате удаление узла завершается неудачей. Здесь world обозначает открытые разрешения.

$ getAcl /example/child
$ setAcl /example/child world:anyone:crwa
$ delete /example/child

Пример auth

auth используется для предоставления разрешений. Обратите внимание, что сначала нужно создать пользователя.

$ setAcl /example/child auth:user1:123456:cdrwa
$ addauth digest user1:123456
$ setAcl /example/child auth:user1:123456:cdrwa
$ getAcl /example/child

digest Пример

Выйдите из текущего пользователя, переподключитесь к терминалу. digest можно использовать для входа и проверки с помощью учетной записи/пароля.

$ ls /example
$ create /example/child01 example
$ getAcl /example/child01
$ setAcl /example/child01 digest:user1:HYGa7IZRm2PUBFiFFu8xY2pPP/s=:cdra
$ getAcl /example/child01
$ addauth digest user1:123456
$ getAcl /example/child01

Примечание:Зашифрованный пароль — это тот, который был создан на предыдущем шаге.

Пример IP

Ограничьте права доступа по IP-адресу. После установки прав для IP-адреса 192.168.3.7 IP-адрес 192.168.3.38 больше не имеет прав доступа.

$ create /example/ip 0
$ getAcl /example/ip
$ setAcl /example/ip ip:192.168.3.7:cdrwa
$ get /example/ip