Использование Ranger в Kafka
После активации плагина Ranger Kafka, создания сервиса Ranger или подключения к существующему сервису (в зависимости от значения параметра Override service policies) все действия в сервисе Kafka (создание топиков, запись сообщений, чтение сообщений, изменение конфигурации топиков и т.д.) возможны только после настройки политики авторизации для пользователя.
Настройка политики авторизации
|
ПРИМЕЧАНИЕ
|
Чтобы добавить новую политику для пользователя к сервису Ranger для Kafka:
-
Создайте пользователя в Ranger. Для этого в верхнем меню интерфейса Ranger выберите Settings → Users/Groups/Roles и нажмите Add new user.
Переход к созданию пользователя в Ranger
Создание пользователя в Ranger -
В открывшемся окне заполните необходимые данные для пользователя:
-
User Name — имя пользователя. Это имя не может дублироваться в системе. Имя должно совпадать с именем пользователя в базе данных KDC или LDAP. Например, для пользователя с принципалом
writer@ADS-KAFKA.LOCALимя в Ranger должно бытьwriter. -
New Password — пароль пользователя.
-
Password Confirm — подтверждение пароля пользователя.
-
First Name — личное имя пользователя.
-
Last Name — фамилия пользователя.
-
Email Address — email-адрес пользователя.
-
Select Role — выбор роли пользователя (
Admin,User,Auditor). -
Group — выбор группы/групп, к которым принадлежит пользователь.
Создание пользователя в Ranger
Создание пользователя в Ranger
-
-
Кликните Save.
-
В окне Service Manager кликните на название сервиса Ranger для Kafka.
Переход к созданному сервису политик
Переход к созданному сервису политик -
В открывшемся окне List of Policies нажмите Add new policy, чтобы добавить новую политику для пользователя.
Создание политики авторизации
Создание политики авторизации -
В открывшемся окне Create Policy:
-
заполните поля в разделе Policy Details:
-
Policy Name — имя политики. Это имя не может быть дублировано для такого же сервиса в системе. Поле обязательно для заполнения.
-
Policy Label — предоставляет следующие возможности:
-
Позволяет пользователю группировать наборы политик с помощью одной или нескольких меток.
-
Пользователь может искать политики по названиям меток. Поиск можно осуществлять как на странице списка политик, так и на странице отчета.
-
Помогает пользователю экспортировать/импортировать политики. Если пользователю необходимо экспортировать определенный набор политик, он может найти метку политики и экспортировать определенный набор политик.
-
-
Description — цель политики. Это поле является необязательным.
-
Policy Conditions — нажав + под Add conditions, можно добавить дополнительные условия.
-
Add Validity Period — время начала и окончания политики.
-
-
в разделе Policy Details установите нужные положения переключателей:
-
Audit Logging — определяет, будет ли проводиться аудит конкретной политики.
-
Enable/Disabled — по умолчанию политика включена. Вы можете отключить политику, чтобы ограничить доступ пользователей/групп для этой политики.
-
Override/Normal — указывает политику переопределения. Если выбрано
Override, разрешения на доступ в политике переопределяют разрешения на доступ в существующих политиках. Эту функцию можно использовать вместе с Add Validity Period для создания временных политик доступа, которые переопределяют существующие политики.
-
-
в разделе Resources:
-
При необходимости заполните поле, определяющее значение параметра (
topic,transactionalid,cluster,delegationtoken,consumergroup). -
Установите нужное положение переключателя Include/Exclude. Положение
Includeозначает, что будут учитываться значения, введенные в поле. ПоложениеExcludeисключит все имена таблиц или столбцов, введенные в этом конкретном поле.
Разделы Policy Details и Resources окна Create Policy
Разделы Policy Details и Resources окна Create Policy
-
-
заполните поля в разделе Allow Condition:
-
Select Role — роль, к которой применяется эта политика. Роль — набор разрешений. Роли представляют собой более простой способ управления набором разрешений на основе определенных критериев доступа.
-
Select Group — группа, к которой применяется эта политика. Чтобы повысить статус пользователя до администратора, установите флажок Delegate Admin. Администраторы могут редактировать или удалять политику и создавать дочерние политики. Публичная группа содержит всех пользователей, поэтому предоставление доступа к публичной группе дает доступ всем пользователям.
-
Select User — пользователь, к которому применяется эта политика (вне уже указанной группы). Можно сделать пользователя администратором этой политики. Администраторы могут создавать дочерние политики на основе существующих политик.
-
Permissions — добавляет или удаляет разрешения:
-
Publish— процесс, который публикует сообщения производителей топиков в Kafka. -
Consume— процесс, который читает и обрабатывает сообщения производителей топиков в Kafka. -
Configure— настройка брокера/кластера Kafka. -
Describe— получение метаданных по топику в Kafka.
-
-
Delegate Admin — для назначения привилегий администратора пользователям или группам, указанным в политике.
-
Deny All Other Accesses — запрещает все остальные доступы.
Раздел Allow Condition окна Create Policy
Раздел Allow Condition окна Create Policy -
ПРИМЕЧАНИЕУсловия выполняются в порядке, указанном в политике. Сначала применяется условие, находящееся в начале списка, затем второе, третье и так далее. -
-
Кликните Add.
Работа авторизованного пользователя в Kafka
После активации Ranger и настройки политики авторизации для пользователя работа в Kafka происходит в соответствии с шагами, описанными в статьях:
-
Использование MIT Kerberos в Kafka — для пользователя, имеющего принципал в среде, защищенной по протоколу Kerberos SASL.
-
Защита канала по протоколу SSL в Kafka — для пользователя, имеющего принципал в среде, использующей протокол Kerberos SASL с защитой канала по протоколу SSL.
-
Использование Kerberos с MS Active Directory в Kafka — для пользователя, имеющего учетную запись в Active Directory и соответствующий сертификат SSL LDAP-сервера.
Любое действие неавторизованного пользователя вызовет ошибку. Например, попытка записать сообщения в топик new-topic для пользователя, в политике авторизации которого не указано разрешение Publish, вызовет ошибки следующего содержания:
[2022-08-29 10:21:10,094] WARN [Producer clientId=console-producer] Error while fetching metadata with correlation id 3 : {new-topic=TOPIC_AUTHORIZATION_FAILED} (org.apache.kafka.clients.NetworkClient)
[2022-08-29 10:21:10,097] ERROR [Producer clientId=console-producer] Topic authorization failed for topics [new-topic] (org.apache.kafka.clients.Metadata)
[2022-08-29 10:21:10,098] ERROR Error when sending message to topic new-topic with key: null, value: 1 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TopicAuthorizationException: Not authorized to access topics: [new-topic]