Эта статья предоставляет информацию о интеграции шлюза Kong AI с системой безопасности Cato AI для мониторинга и применения политики для собственных агентов.
Обзор.
Система безопасности Cato AI позволяет инспектировать и применять политику для AI-трафика, проходящего через ваш существующий шлюз Kong AI. Вместо настройки каждого приложения отдельно, вы подключаете шлюз к Cato Guard и применяете централизованный мониторинг и применение политики к шлюзовому трафику.
В этой статье объясняется, как настроить интеграцию шлюза Kong AI, карту собственных агентов и проверить применение политики в Interaction Explorer.
Предпосылки
Прежде чем начать, убедитесь, что выполнены следующие требования:
- Лицензия AI безопасности для приложений
- Администраторские разрешения для AI Security > Guards и AI Security > Guards Interaction Policy
- Пользователи Kong аутентифицируются с помощью плагина аутентификации ключей Kong
- Доступ для создания и применения конфигурации decK
kong.yaml - Токен личного доступа и название самолета управления для Kong Konnect. Создайте токен на странице личных токенов доступа в Kong Konnect
- Разрешение на развертывание плагина Kong AI Custom Guardrail
- Тестируемое приложение или клиент, отправляющий трафик через Kong AI Gateway
- Сетевой доступ от Kong к конечной точке API безопасности Cato AI для вашего региона CMA
Рабочий процесс конфигурации
Интеграция включает следующие этапы:
| Этап | Задача | Результат |
|---|---|---|
| 1 | Создание охранника AI Gateway | Cato создает охранника и предоставляет API ключи для Kong |
| 2 | Настройка Kong | Kong отправляет AI трафик в Cato для проверки |
| 3 | Проверка трафика шлюза | Cato показывает трафик от охранника в Исследователе взаимодействий |
| 4 | Карта внутренних агентов | Cato приписывает трафик потребителя Kong внутреннему агенту |
Создайте охранника AI Gateway
Создайте охранника AI Gateway, чтобы определить точку принуждения Cato для трафика Kong.
Чтобы создать охранника:
- Выберите из меню навигации AI безопасность > Защитники.
- Нажмите Новый.
- В поле Имя охранника введите имя для охранника. Например,
Kong AI Gateway. - В разделе Тип выберите AI Gateway.
- В разделе Тип интеграции AI Gateway выберите Kong.
- В разделе Хост охранника выберите Cato Cloud или передовой пост, подходящий для вашего развертывания.
- Нажмите Сохранить.
После сохранения охранника он будет готов принимать трафик от Kong. Охранник не начинает применять правила, пока вы не настроите правило политики.
Настройка Kong AI Gateway
Настройка плагина Kong AI Custom Guardrail с ключом API охранника. Плагин отправляет AI трафик в Cato для проверки и блокирует запросы, когда Cato возвращает действие блокировки.
Получение данных соединения охранника
Чтобы получить данные соединения охранника:
- Выберите из меню навигации AI безопасность > Защитники.
- Выберите охранника Kong AI Gateway.
- Перейдите на вкладку Развертывание.
- Скопировать один из Ключей API охранника.
У каждого охранника два ключа API. Используйте неиспользуемый ключ, когда вы поворачиваете учетные данные, чтобы избежать прерывания проверки трафика.
Настройка плагина Kong AI Custom Guardrail
Плагин использует следующие настройки:
| Поле | Описание |
|---|---|
guarding_mode |
Определяет трафик, который Cato проверяет: INPUT, OUTPUT или BOTH |
stop_on_error |
Когда true, Kong блокирует трафик, если не может достичь Cato. Установите в false, чтобы разрешить трафик, когда Cato недоступен. |
api_key |
Аутентифицирует Kong в Cato Guard |
api_base |
Базовый URL API безопасности AI Cato для вашего региона CMA |
Cato проверяет только текст. Содержимое изображений не проверяется.
Чтобы настроить плагин:
-
Сохраните следующую конфигурацию как
kong.yaml._format_version: "3.0" plugins: - name: ai-custom-guardrail config: guarding_mode: BOTH text_source: concatenate_all_content stop_on_error: true params: api_key: "${{ env \"DECK_CATO_API_KEY\" }}" api_base: "<CATO_AI_SECURITY_API_BASE_URL>" request: url: $(conf.params.api_base)/fw/v1/analyze headers: Authorization: Bearer $(conf.params.api_key) Content-Type: application/json x-cato-gateway-key-alias: "$(get_key_alias)" body: messages: "$(build_messages)" response: block: "$(check_response.block)" block_message: "$(check_response.block_message)" ssl_verify: true functions: get_key_alias: | return function() local c = kong.client.get_consumer() return (c and (c.username or c.id)) or "" end check_response: | return function(resp) local ra = resp and resp.required_action local block = type(ra) == "table" and ra.action_type == "block_action" local reason if block then reason = ra.detection_message or "Blocked by Cato Networks guardrail" else reason = "Allowed by Cato Networks guardrail" end return { block = block, block_message = reason, } end build_messages: | return function(content, source) if source == "OUTPUT" then return { { role = "assistant", content = content } } end local body = kong.request.get_body() if body and body.messages then return body.messages end return { { role = "user", content = content } } end -
Замените
<CATO_AI_SECURITY_API_BASE_URL>на базовый URL API безопасности AI Cato для вашего региона CMA. -
Установите учетные данные Kong Konnect и Cato в виде переменных среды:
export KONNECT_TOKEN=<your-kong-konnect-personal-access-token> export DECK_KONNECT_TOKEN=$KONNECT_TOKEN export DECK_KONNECT_CONTROL_PLANE_NAME=<your-control-plane-name> export DECK_KONNECT_CONTROL_PLANE_REGION=<region>.api.konghq.com export DECK_CATO_API_KEY=<guard-api-key> -
Примените конфигурацию к контрольной плоскости Kong:
deck gateway sync kong.yaml
Безопасно храните ключи API охранника. Используйте переменные среды или менеджер секретов и не фиксируйте ключ в управлении источником.
Поведение интеграции Kong
- Со стороны ответа Kong раскрывает только текст ответа ассистента для пользовательского плагина Guardrail. Вызовы инструментов не раскрываются в реальном времени, поэтому Cato не может их проверить или заблокировать до выполнения. Cato получает их в последующих запросах для мониторинга.
- Интеграция по умолчанию завершает с ошибкой. Когда Cato недоступен, Kong блокирует трафик. Установите
stop_on_errorвfalse, чтобы использовать поведение "открытого отказа", когда доступность важнее строгого выполнения. - Kong не поддерживает проверку серверных событий (SSE) с пользовательским плагином Guardrail. Когда потоки ответа LLM, Cato может проверять только сообщения пользователей и ответы инструментов.
- Интеграция поддерживает формат API завершений чата OpenAI.
Проверка трафика шлюза в Cato
Используйте Исследователь взаимодействий, чтобы подтвердить, что трафик Kong достигает Cato.
Чтобы проверить трафик шлюза:
- Отправьте тестовый запрос от приложения через Kong AI Gateway.
- Выберите из меню навигации AI безопасность > Исследователь взаимодействий.
- В списке Охранник отфильтруйте по вашему охраннику Kong AI Gateway.
- Подтвердите, что тестовая сессия отображается в таблице.
Прежде чем привязать внутреннего агента, в колонке Внутренний агент отображается тире (-) для трафика. Это ожидается.
Привязывайте внутренних агентов к Охраннику
Свяжите каждого внутреннего агента с именем потребителя Kong, под которым он аутентифицируется. Cato использует эти сопоставления для атрибуции трафика Kong правильному внутреннему агенту.
Чтобы сопоставить внутреннего агента:
- В Kong идентифицируйте имя пользователя потребителя для внутреннего агента.
- Выберите из меню навигации AI безопасность > Защитники.
- Выберите охранника Kong AI Gateway.
- Перейдите на вкладку Конфигурация.
- В разделе Связанные внутренние агенты выберите внутреннего агента из списка Выберите внутреннего агента для привязки.
- В разделе Имя потребителя Kong введите имя пользователя потребителя из шага 1.
- Нажмите Сохранить.
Сопоставление появляется в таблице Связанные внутренние агенты. Чтобы удалить его, нажмите на значок удаления в его строке.
Проверка Атрибуции Агентов
Проверьте, что Cato приписывает трафик сопоставленного внутреннего агента.
Чтобы проверить атрибуцию агента:
- Отправьте тестовый запрос через Kong, используя сопоставленного потребителя.
- Выберите из меню навигации AI безопасность > Исследователь взаимодействий.
- Отфильтруйте вид по сопоставленному Внутреннему агенту.
- Подтвердите, что в колонке Внутренний агент отображается сопоставленный агент.
Когда сопоставление корректно, Исследователь взаимодействий показывает имя внутреннего агента вместо тире.