С ростом числа ИИ-агентов на предприятиях управление безопасным доступом к инструментам становится ключевой проблемой. В отличие от традиционных приложений с фиксированной логикой, агенты на базе LLM принимают решения о вызове инструментов в рантайме, что затрудняет аудит и контроль. Amazon Bedrock AgentCore gateway решает эту задачу с помощью двух взаимодополняющих механизмов: Policy на языке Cedar и Lambda-перехватчиков.
Policy в Amazon Bedrock AgentCore использует декларативный язык Cedar для определения правил доступа к инструментам. Каждый запрос оценивается по принципу «субъект — действие — ресурс» с учётом дополнительных условий контекста. Результат — однозначное разрешение или запрет, автоматически фиксируемый в журнале аудита. Lambda-перехватчики позволяют выполнять произвольный код до или после вызова инструмента, обеспечивая динамическую валидацию, обогащение полезной нагрузки, обмен токенами и фильтрацию ответов.
| Механизм | Назначение | Принцип работы | Пример использования |
|---|---|---|---|
| Policy (Cedar) | Детерминированный контроль доступа | Оценка запроса по правилам principal-action-resource с условиями | Запрет доступа к инструменту query_login_audit для роли policyholder |
| Lambda Interceptor | Динамическая валидация и модификация запросов | Выполнение кода до/после вызова инструмента | Замена bearer-токена на tenant-scoped credentials перед вызовом |
В демонстрационном сценарии используется lakehouse data agent для страховой компании, где сотрудники запрашивают данные о страховых случаях. Приложение развёрнуто на Amazon Bedrock AgentCore gateway и работает с хранилищем данных на Amazon S3 Tables (Apache Iceberg), запросами через Amazon Athena и Lake Formation. Три роли: застрахованные (видят только свои заявки), урегулировщики (работают с назначенными заявками) и администраторы (полный доступ, включая аудит). Пользователи аутентифицируются через Amazon Cognito, передавая JWT-токены. MCP-сервер предоставляет пять инструментов, включая query_claims, get_claim_details, text_to_sql. Сопоставление ролей и инструментов, а также географическая привязка хранятся в Amazon DynamoDB.
Механизмы работают вместе: перехватчик может модифицировать запрос, а Policy принимает окончательное решение на основе контекста.

Lambda-перехватчик перед вызовом инструмента извлекает bearer-токен, проверяет права доступа через маппинг ролей, генерирует токен с ограниченными правами (tenant-scoped claims) и передаёт управление Policy Engine. Policy Engine принимает финальное решение на основе Cedar-политик. После вызова второй перехватчик может фильтровать или обогащать ответ. Lake Formation дополнительно применяет построчное и поколоночное ограничение доступа на уровне SQL-запросов — даже если агент сформирует широкий запрос, результат будет ограничен правами IAM-роли вызывающего. Вся активность мониторится через CloudWatch.
Комбинация Policy и Lambda-перехватчиков позволяет реализовать многоуровневую архитектуру безопасности для ИИ-агентов. Например, для контроля доступа по географическому признаку нужна динамическая валидация (перехватчик определяет регион пользователя) и детерминированная политика (разрешает только данные этого региона). Решение доступно в виде референсной архитектуры в GitHub-репозитории AWS.
