С ростом числа ИИ-агентов на предприятиях управление безопасным доступом к инструментам становится ключевой проблемой. В отличие от традиционных приложений с фиксированной логикой, агенты на базе 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 принимает окончательное решение на основе контекста.

Architecture diagram of the lakehouse data agent showing Streamlit UI, Amazon Cognito authentication, AgentCore Runtime, AgentCore Gateway with Lambda Interceptor and Policy Engine, lakehouse MCP Server, AWS Lake Formation enforcement on Us
Architecture diagram of the lakehouse data agent showing Streamlit UI, Amazon Cognito authentication, AgentCore Runtime, AgentCore Gateway with Lambda Interceptor and Policy Engine, lakehouse MCP Server, AWS Lake Formation enforcement on Us · Источник: AWS Machine Learning Blog

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

Комбинация Policy и Lambda-перехватчиков позволяет реализовать многоуровневую архитектуру безопасности для ИИ-агентов. Например, для контроля доступа по географическому признаку нужна динамическая валидация (перехватчик определяет регион пользователя) и детерминированная политика (разрешает только данные этого региона). Решение доступно в виде референсной архитектуры в GitHub-репозитории AWS.