Настройка доступа к сервисам ADS через Knox Gateway

Обзор

В ADPS Knox Gateway, помимо прочего, используется как обратный прокси — единая точка доступа для коммуникации с целевыми сервисами, которая позволяет сохранять внутреннюю топологию скрытой от потенциальных атак. Knox получает запросы, обрабатывает их и перенаправляет к соответствующим бэкендам.

Топология в Knox определяется провайдером (provider) и дескриптором (descriptor). Пример ниже демонстрирует, как настроить доступ к сервисам ADS с помощью Knox Admin UI. В данном руководстве рассматривается доступ с помощью cURL, а также проксирование UI. Для настройки доступа с помощью Groovy или DSL см. документацию Knox.

Провайдер для аутентификации

ПРИМЕЧАНИЕ
Если у вас уже создан подходящий провайдер для аутентификации, вы можете пропустить этот шаг.

Настройте провайдер для аутентификации:

  1. На странице Provider configurations кликните knox plus справа от названия списка Provider Configurations.

    Список провайдеров
    Список провайдеров
    Список провайдеров
    Список провайдеров
  2. Выберите имя провайдера (например, my-provider) и нажмите Add Provider.

    Добавление провайдера
    Добавление провайдера
    Добавление провайдера
    Добавление провайдера
  3. На появившемся экране выберите опцию Authentication и нажмите Next.

    Выбор типа провайдера
    Выбор типа провайдера
    Выбор типа провайдера
    Выбор типа провайдера
  4. Выберите метод аутентификации и нажмите Next. В данном примере используется Kerberos.

    Выбор метода аутентификации
    Выбор метода аутентификации
    Выбор метода аутентификации
    Выбор метода аутентификации
  5. Заполните необходимую информацию и нажмите Ok.

    Настройка параметров аутентификации
    Настройка параметров аутентификации
    Настройка параметров аутентификации
    Настройка параметров аутентификации
  6. На завершающем экране вы можете добавить дополнительные настройки, например, указать ACL.

Дескриптор

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

  1. На странице Descriptors нажмите knox plus справа от названия списка Descriptors.

    Список дескрипторов
    Список дескрипторов
    Список дескрипторов
    Список дескрипторов
  2. Укажите имя дескриптора (например, ads) и необходимый провайдер. Среди предложенных сервисов выберите NIFI — это сервис для проксирования UI NiFi Flow. После этого нажмите Ok.

    Выбор сервисов кластера
    Выбор сервисов кластера
    Выбор сервисов кластера
    Выбор сервисов кластера
  3. Выберите созданный дескриптор и нажмите knox plus справа от Services. В появившемся поле введите KAFKA.

  4. Под названием добавленного сервиса есть поля Params и URLs. В поле URLs введите ссылки на сервисы ADS.

    Добавление URL сервисов
    Добавление URL сервисов
    Добавление URL сервисов
    Добавление URL сервисов

    По умолчанию эти URL следующие:

    • KAFKA — http://<kafka_rest_host>:8082 (сервис Kafka REST Proxy должен быть установлен).

    • NIFI — http://<nifi_server_host_1>:9090, http://<nifi_server_host_2>:9090.

ПРИМЕЧАНИЕ
Read-only файл топологии с именем дескриптора будет сгенерирован автоматически.

Доступ к сервисам

Чтобы проверить доступ к сервисам через Knox Gateway, запустите команду следующего формата:

$ curl -ik --negotiate -u <principal>:<password> -X GET https://<gateway_host>:8443/gateway/ads/<service>/[<parameters>]

где:

  • <principal> — принципал Kerberos, имеющий доступ к <gateway_host>.

  • <password> — пароль для <principal>.

  • <gateway_host> — хост Knox Gateway.

  • <service> — имя сервиса, объявленного в топологии ads.

  • <parameters> — опциональные параметры, уточняющие запрашиваемый ресурс.

KAFKA

$ curl -ik --negotiate -u <principal>:<password> -X GET https://<gateway_host>:8443/gateway/ads/kafka/topics

В результате вы получите список топиков в Kafka:

["mm-connect-offsets","mm-connect-status","mm-connect-configs","_schemas"]

NIFI

Откройте браузер и введите в поисковой строке https://<knox_host>:8443/gateway/ads/nifi-app/nifi. Вас направит на пользовательский интерфейс NiFi Flow.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней