Компания PAR Technology Corporation, разрабатывающая технологии для ресторанной индустрии, столкнулась с типичной для мультитенантных систем задачей: как обеспечить, чтобы один и тот же вопрос от разных пользователей возвращал корректные и строго разграниченные данные. Система обслуживает более 300 ресторанных брендов — от независимых операторов до крупных франчайзинговых групп. Каждого пользователя нужно авторизовать только на его сегмент данных, что невозможно гарантировать простыми инструкциями LLM в промпте.

Первая версия системы передавала вопрос пользователя напрямую в модель (использовалась Anthropic Claude Sonnet 4 на Amazon Bedrock), которая генерировала SQL-запрос к Databricks. Для proof-of-concept этого хватало, но при переходе к промышленной эксплуатации выяснилась фундаментальная проблема: LLM недетерминирована. Модель может корректно применить фильтр бизнес-ID десять тысяч раз подряд, а на десять тысяч первый — случайно его опустить. В мультитенантной среде с чувствительными данными такой риск недопустим.

УровеньФункцияТехнология
1. АутентификацияПодтверждение личности пользователя и целостности запросаAWS SigV4
2. Семантическая валидацияПроверка, что SQL запрашивает только разрешенные данныеAmazon Bedrock
3. Изоляция данныхОграничение строк таблицы в соответствии с правами пользователяSplit-Plane SQL

В итоге команда построила трехуровневую архитектуру, где каждый уровень работает независимо и снижает вероятность перекрестного доступа к данным, даже если сама LLM скомпрометирована или подверглась атаке. Первый уровень — криптографическая подпись запросов с помощью AWS SigV4, которая подтверждает личность пользователя. Второй — семантическая валидация на Amazon Bedrock: система проверяет, что сгенерированный SQL запрашивает данные только из разрешенных таблиц и полей. Третий — программная изоляция данных через технологию Split-Plane SQL, которая на уровне базы данных ограничивает строки, доступные пользователю.

Трехуровневая архитектура включает криптографическую подпись, семантическую валидацию на Bedrock и изоляцию данных через Split-Plane SQL

Tenant, business, and admin hierarchy showing how each role’s location access changes the sales total returned for the same query
Tenant, business, and admin hierarchy showing how each role’s location access changes the sales total returned for the same query · Источник: AWS Machine Learning Blog

Ключевой сценарий демонстрирует необходимость такого подхода. Два пользователя задают одинаковый вопрос: «Каковы были общие продажи на прошлой неделе?» Первый — владелец франшизы с двумя точками в Чикаго. Правильный ответ для него — $84 000. Второй — корпоративный менеджер бренда, управляющий сетью из 200 ресторанов по всей стране. Его правильный ответ — $9,2 млн. Показ национальных данных владельцу франшизы — это нарушение управлением данными и раскрытие коммерчески чувствительной информации. А показ только двух точек менеджеру — принятие неверных решений. Без аппаратной защиты на уровне архитектуры LLM неспособна последовательно различать эти сценарии.

Система находится в промышленной эксплуатации и ежедневно обрабатывает тысячи запросов. Подход PAR Technology показывает, что для production-grade аналитики на естественном языке недостаточно полагаться на поведение модели — безопасность должна быть встроена в инфраструктуру.