Использование Ranger в Kafka

После активации плагина Ranger Kafka, создания сервиса Ranger или подключения к существующему сервису (в зависимости от значения параметра Override service policies) все действия в сервисе Kafka (создание топиков, запись сообщений, чтение сообщений, изменение конфигурации топиков и т.д.) возможны только после настройки политики авторизации для пользователя.

Настройка политики авторизации

ПРИМЕЧАНИЕ

Чтобы добавить новую политику для пользователя к сервису Ranger для Kafka:

  1. Создайте пользователя в Ranger. Для этого в верхнем меню интерфейса Ranger выберите Settings → Users/Groups/Roles и нажмите Add new user.

    Создание пользователя в Ranger
    Переход к созданию пользователя в Ranger
    Создание пользователя в Ranger
    Создание пользователя в Ranger
  2. В открывшемся окне заполните необходимые данные для пользователя:

    • 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
      Создание пользователя в Ranger
      Создание пользователя в Ranger
  3. Кликните Save.

  4. В окне Service Manager кликните на название сервиса Ranger для Kafka.

    Переход к созданному сервису политик
    Переход к созданному сервису политик
    Переход к созданному сервису политик
    Переход к созданному сервису политик
  5. В открывшемся окне List of Policies нажмите Add new policy, чтобы добавить новую политику для пользователя.

    Создание политики авторизации
    Создание политики авторизации
    Создание политики авторизации
    Создание политики авторизации
  6. В открывшемся окне 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
        Разделы 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
      Раздел Allow Condition окна Create Policy
      Раздел Allow Condition окна Create Policy
    ПРИМЕЧАНИЕ
    Условия выполняются в порядке, указанном в политике. Сначала применяется условие, находящееся в начале списка, затем второе, третье и так далее.
  7. Кликните Add.

Работа авторизованного пользователя в Kafka

После активации Ranger и настройки политики авторизации для пользователя работа в Kafka происходит в соответствии с шагами, описанными в статьях:

Любое действие неавторизованного пользователя вызовет ошибку. Например, попытка записать сообщения в топик 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]
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней