Amazon Bedrock AgentCore Gateway: безопасный доступ к приватным ресурсам в Amazon VPC — ИИ для бизнеса

Amazon Bedrock AgentCore Gateway: безопасный доступ к приватным ресурсам в Amazon VPC

Прослушать статью

AI-агентам в продуктивных средах часто нужно обращаться к внутренним API, базам данных и другим приватным ресурсам, которые находятся за границами Amazon Virtual Private Cloud (Amazon VPC). Управление приватной связностью для каждого пути «агент — инструмент» увеличивает операционные издержки и замедляет внедрение. Возможности Amazon Bedrock AgentCore VPC connectivity предназначены для развертывания AI-агентов и серверов Model Context Protocol (MCP) без необходимости выводить сетевой трафик в публичный интернет. Эта возможность распространяется и на управляемый исходящий трафик Amazon VPC для Amazon Bedrock AgentCore Gateway, так что вы можете подключаться к конечным точкам внутри приватных сетей во всей вашей AWS-среде.

В этой статье вы настроите Amazon Bedrock AgentCore Gateway для доступа к приватным конечным точкам с помощью Resource Gateway — управляемого компонента, который создает Elastic Network Interfaces (ENI) прямо внутри вашего Amazon VPC, по одному на каждую подсеть. Вы рассмотрите два режима реализации — managed и self-managed — и пройдете три практических сценария: подключение к приватной конечной точке Amazon API Gateway, интеграцию с MCP-сервером на Amazon Elastic Kubernetes Service (Amazon EKS) и доступ к приватному REST API.

Ключевые термины

Ниже приведены термины, которые используются в статье. Ознакомьтесь с ними перед тем, как двигаться дальше, чтобы понять, как каждый компонент вписывается в архитектуру исходящего VPC-трафика AgentCore Gateway.

Resource VPC: Amazon VPC, в котором находится ваш приватный ресурс. Например, VPC, содержащий ваш приватно размещенный MCP-сервер или конечную точку API. Это Amazon VPC, к которому AgentCore Gateway должен получить доступ. Resource VPC может находиться как в той же учетной записи AWS, что и учетная запись AgentCore Gateway, так и в другой.

AgentCore Gateway account: учетная запись AWS, в которой вы создаете и управляете ресурсами AgentCore Gateway. Эта учетная запись может совпадать с учетной записью Resource VPC, а может и отличаться.

Resource Gateway: Resource Gateway выступает как приватная точка входа в ваш Resource VPC. При создании он выделяет по одному ENI на каждую указанную подсеть, и каждый из них находится внутри вашего VPC. Трафик от AgentCore Gateway к вашему приватному ресурсу поступает через эти ENI.

Resource Configuration: Resource configuration for VPC resources определяет конкретный ресурс, к которому AgentCore Gateway может обращаться через Resource Gateway, с идентификацией по доменному имени или IP-адресу. Вместо предоставления доступа ко всему Amazon VPC, Resource Configuration ограничивает связность одним конечным пунктом.

Service Network Resource Association: ассоциация service network resource association связывает Resource Configuration с сервисной сетью AgentCore, что позволяет службе AgentCore Gateway вызывать ваш приватный endpoint. AgentCore создает и управляет этой ассоциацией от вашего имени независимо от выбранного режима.

Как работает исходящий VPC-трафик AgentCore Gateway?

Исходящий VPC-трафик AgentCore Gateway поддерживает два режима в зависимости от того, какой уровень контроля над сетевой инфраструктурой вам нужен и как вы строите меж-VPC-связность.

Managed VPC resource

В этом режиме AgentCore Gateway берет все на себя. Вы указываете идентификатор VPC, идентификаторы подсетей и security groups в конфигурации target, а AgentCore автоматически создает и управляет VPC Resource Gateway в вашей учетной записи. Этот режим хорошо сочетается с уже существующими сетевыми архитектурами — будь то VPC peering для связности в одном или разных регионах либо hub-and-spoke-модель с AWS Transit Gateway для многовиртуальных и гибридных сред.

Следующая архитектура показывает, как AgentCore Gateway подключается к приватному Amazon API Gateway в режиме managed VPC resource.

Когда вы создаете AgentCore Gateway Target с конфигурацией managed VPC resource, AgentCore Gateway инициирует запрос и направляет его в Resource Gateway внутри вашего Resource Owner VPC. Resource Gateway передает трафик через ENI, развернутый в вашей подсети, под управлением security groups, которые вы настроили. Затем запрос с ENI достигает execute-api VPC endpoint. В режиме managed VPC Resource именно AgentCore создает и управляет Resource Gateway, а у вас есть только режим чтения для наблюдения за ним.

Self-managed Lattice resource

В этом режиме вы создаете и управляете VPC Lattice Resource Gateway и Resource Configuration до того, как ссылаетесь на них при создании target в AgentCore Gateway. Это дает вам видимость и контроль над Resource Configuration, включая количество IPv4-адресов на ENI, размещение по подсетям и правила security group. Что еще важнее, вы получаете видимость самого Resource Configuration с возможностью просматривать его, делиться им через AWS Resource Access Manager (AWS RAM) (это требуется для межаккаунтной связности), видеть связанные с ним ассоциации и при необходимости отзывать эти ассоциации.

Следующая архитектура показывает, как AgentCore Gateway подключается к приватным REST API endpoints с использованием режима self-managed lattice resource.

В режиме self-managed lattice resource вы заранее создаете Resource Gateway и Resource Configuration, а затем настраиваете AgentCore Gateway Target. При вызове CreateGatewayTarget вы передаете идентификатор Resource Configuration, чтобы связать target AgentCore Gateway с вашим приватным endpoint. Во время вызова Resource Gateway передает запрос через ENI, развернутый в вашей подсети, под управлением security groups, которые вы настроили. Затем запрос с ENI достигает execute-api VPC endpoint. В отличие от режима managed VPC Resource, именно вы владеете Resource Gateway и Resource Configuration и управляете ими.

Используйте следующую таблицу, чтобы определить, какой режим подходит вашей архитектуре. Выбирайте managed VPC resource для более простой настройки, а self-managed Lattice resource — если вам нужен контроль над жизненным циклом Resource Gateway, межаккаунтной связностью и видимостью ассоциаций.

Параметр AgentCore Managed VPC Resource Self-Managed Lattice Resource
Сложность настройки Просто: укажите VPC ID, subnet IDs и security group IDs. Остальное сделает AgentCore Продвинутый вариант: вы сами создаете и управляете Amazon VPC Lattice Resource Gateway и Resource Configurations, а затем передаете идентификатор Resource Configuration каждому target
Потребление IPv4 Каждый managed resource gateway использует 1 IP-адрес на ENI. Это нельзя настраивать При использовании с Amazon Bedrock AgentCore он потребляет один IP-адрес на подсеть. Если также подключен к другим VPC Lattice service networks, потребляется больше IP-адресов в зависимости от значения ipv4AddressesPerEni в resource gateway
Межаккаунтная связность Нативно не поддерживается; для межаккаунтных/меж-VPC сценариев используйте hub-and-spoke-архитектуры (VPC peering или AWS Transit Gateway). Поддерживается с AWS Resource Access Manager (AWS RAM). Позволяет напрямую подключаться между аккаунтами без необходимости использовать VPC peering или Transit Gateway.
Повторное использование существующих ENI AgentCore автоматически повторно использует один Resource Gateway и его ENI для target-ов в аккаунте, если их managedVpcResource совпадает по Amazon VPC, набору подсетей, набору security group, тегам и типу IP-адреса Вы подключаете несколько Resource Configurations к одному принадлежащему вам Resource Gateway; target, у которого resourceConfigurationIdentifier указывает на этот Resource Gateway, использует его ENI совместно с другими
Управление жизненным циклом Resource Gateway Amazon Bedrock AgentCore создает, повторно использует и удаляет Resource Gateway от вашего имени Вы полностью управляете жизненным циклом resource gateways и resource configurations
Управление и видимость Resource Configurations управляются в сервисной учетной записи Amazon Bedrock AgentCore и не видны в консоли Amazon VPC. Базовый Resource Gateway виден в вашей учетной записи только в режиме чтения Полная видимость Resource Configurations, Service Network associations и подключенных доменов в консоли Amazon VPC Lattice. Вы можете аудитировать подключения и отзывать доступ на детальном уровне
Ценообразование Только плата за обработку данных в расчете на ГБ (для данных, проходящих через Resource Gateway) 1) почасовая плата за Service Network association; 2) плата за обработку данных в расчете на ГБ

Начало работы с исходящим VPC-трафиком AgentCore Gateway

В этой статье вы сосредоточитесь на режиме managed VPC resource. Если хотите изучить предложение self-managed lattice resource, воспользуйтесь примерами кода. Прежде чем начать, предполагается базовое знакомство с Amazon VPC, AWS Command Line Interface (AWS CLI), Amazon Bedrock AgentCore и Amazon Bedrock AgentCore Gateway. Убедитесь, что у вас есть следующее.

В настоящее время AgentCore Gateway доверяет только TLS-сертификатам, подписанным публичным центром сертификации; сертификаты, подписанные частным CA, он не доверяет, поэтому рукопожатие с вашим backend завершается ошибкой. Если ваш endpoint защищен частным или самоподписанным сертификатом, рабочий пример решения можно найти на GitHub.

Вашему IAM-принципалу нужна привилегия iam:CreateServiceLinkedRole для bedrock-agentcore.amazonaws.com, чтобы AgentCore мог создать service-linked role от вашего имени, если она еще не существует. Требуемую IAM policy см. в разделе Gateway service-linked role.

  • Настройте security groups

Security group Resource Gateway контролирует, какой исходящий трафик ENI Resource Gateway могут отправлять к ресурсам внутри вашего Amazon VPC. Если вы не укажете security group при вызове API CreateGatewayTarget, будет использована группа безопасности по умолчанию.

  • AgentCore Gateway

Это пошаговое руководство предполагает, что у вас уже есть AgentCore Gateway. Если вы еще не создали его, выполните:

Формулы и расчет
aws bedrock-agentcore create-gateway \
  --name my-gateway \
  --role-arn arn:aws:iam::<account-=id>:role/AgentCoreGatewayRole

Сохраните значение gatewayId из ответа. Оно понадобится при создании AgentCore Gateway Targets в следующих шагах.

Приватный Amazon API Gateway

В этом разделе вы создадите target AgentCore Gateway, который направляет запросы в приватный Amazon API Gateway. Вызовите API CreateGatewayTarget со следующими параметрами. В поле openApiSchema укажите URL вашей приватной конечной точки Amazon API Gateway (https://{api-id}-{vpce-id}.execute-api.{region}.amazonaws.com/{stage}). В блоке managedVpcResource укажите идентификатор VPC, идентификаторы подсетей и идентификатор security group.

 aws bedrock-agentcore-control create-gateway-target \
 --region us-west-2 \
 --cli-input-json '{
 "gatewayIdentifier": "<GATEWAY_ID>", 
 "name": "private-apigw",
 "description": "Private API Gateway", 
 "targetConfiguration": { 
 "mcp": {
 "openApiSchema": { 
 "inlinePayload": "..."
 }
 }
 },
 "credentialProviderConfigurations": [...], 
 "privateEndpoint": {
 "managedVpcResource": {
 "vpcIdentifier": "<VPC_ID>",
 "subnetIds": ["<SUBNET_ID_1>", "<SUBNET_ID_2>"],
 "endpointIpAddressType": "IPV4",
 "securityGroupIds": ["<VPCE_SG_ID>"]
 } 
 } 
 }'       

После выполнения команды AgentCore Gateway использует связанную с сервисом роль, чтобы развернуть Resource Gateway в вашем VPC, создавая по одному ENI на каждую указанную подсеть.

Следующая архитектурная схема показывает поток трафика.

AgentCore Gateway инициирует запрос и направляет его в Resource Gateway, развернутый внутри Resource Owner VPC. Трафик проходит через ENI внутри вашей приватной подсети, где правила security group определяют, что может пройти к следующему узлу. Затем запрос достигает execute-api VPC endpoint, который обеспечивает приватную связность с внутренней конечной точкой Amazon API Gateway. Формат URL https://{api-id}-{vpce-id}.execute-api.{region}.amazonaws.com/{stage} — это именно тот адрес, который вы указали в поле openApiSchema при вызове CreateGatewayTarget.

Приватный MCP-сервер на Amazon EKS

В этом разделе вы создадите target AgentCore Gateway, который направляет запросы к приватному MCP-серверу, работающему на Amazon EKS. Вызовите API CreateGatewayTarget со следующими параметрами. В блоке mcpServer укажите URL внутреннего endpoint MCP-сервера. В блоке managedVpcResource укажите идентификатор VPC, идентификаторы подсетей и идентификатор security group.

 aws bedrock-agentcore-control create-gateway-target \
 --region us-west-2 \
 --cli-input-json '{
 "gatewayIdentifier": "<GATEWAY_ID>", 
 "name": "private-apigw",
 "description": "Private API Gateway", 
 "targetConfiguration": { 
 "mcp": {
 "mcpServer": { 
 "endpoint": "https://internal.example.com/csm/mcp"
 }
 }
 },
 "credentialProviderConfigurations": [...], 
 "privateEndpoint": {
 "managedVpcResource": {
 "vpcIdentifier": "<VPC_ID>",
 "subnetIds": ["<SUBNET_ID_1>", "<SUBNET_ID_2>"],
 "endpointIpAddressType": "IPV4",
 "securityGroupIds": ["<VPCE_SG_ID>"]
 } 
 } 
 }'

После выполнения этой команды AgentCore развернет Resource Gateway в вашем VPC, создав по одному ENI на каждую указанную подсеть. Следующая архитектурная схема показывает полный путь трафика от начала до конца.

AgentCore Gateway отправляет HTTPS-запрос к вашему внутреннему endpoint. Частная hosted zone Amazon Route 53 разрешает это доменное имя во внутренний Network Load Balancer (NLB). Запрос входит в Resource Owner VPC через Resource Gateway, проходит через ENI, управляемый вашими security groups, и достигает NLB. NLB завершает TLS на порту 443 с использованием публичного сертификата AWS Certificate Manager (ACM), а затем пересылает запрос по HTTP на порт 80 в NGINX Ingress Controller, работающий на Amazon EKS, который направляет его в нужный pod.

Приватная цель REST API

В этом разделе вы создадите target AgentCore Gateway, который направляет запросы к приватной конечной точке REST API. Это подходит для любого REST API, работающего внутри вашего Amazon VPC, например для контейнеризованного микросервиса. Вызов API CreateGatewayTarget выполняется по той же схеме, что и в предыдущих разделах. В поле openApiSchema укажите вашу OpenAPI-схему, описывающую REST API. В блоке managedVpcResource укажите идентификатор VPC, идентификаторы подсетей и идентификатор security group. После того как AgentCore Gateway развернет Resource Gateway в вашем VPC, следующая архитектурная схема показывает полный путь трафика от начала до конца.

AgentCore Gateway отправляет HTTPS-запрос к вашему внутреннему endpoint. Частная hosted zone Amazon Route 53 разрешает это доменное имя во внутренний Application Load Balancer (ALB). Запрос входит в Resource Owner VPC через Resource Gateway, проходит через ENI, управляемый вашими security groups, и достигает внутреннего ALB. ALB завершает TLS на порту 443 с использованием публичного сертификата AWS Certificate Manager (ACM), а затем пересылает запрос по HTTP на порт 8000 в target group, содержащую ваши backend-серверы.

Очистка ресурсов

Чтобы избежать дальнейших начислений, удалите все ресурсы, созданные в ходе этого руководства. Для справки см. страницу ценообразования AgentCore Gateway VPC egress. Кроме того, кластеры Amazon EKS, load balancer-ы и endpoints API Gateway продолжают тарифицироваться, пока работают. Убедитесь, что ресурсы удалены, чтобы остановить списания. Если вы использовали пример из GitHub, обязательно выполните раздел очистки в конце каждого Jupyter Notebook.

Если вы использовали режим managed VPC resource, удаление Gateway Target удаляет и связанный с ним Amazon VPC Resource Gateway.

aws bedrock-agentcore delete-gateway-target \
    --gateway-identifier <gateway-id> \
    --target-id <target-id>

Заключение

По мере того как AI-агенты берут на себя все более сложные задачи, им нужен безопасный доступ к инструментам и сервисам, которые поддерживают ваш бизнес, и многие из них находятся внутри приватных сетей. Исходящий VPC-трафик AgentCore Gateway позволяет вашим агентам обращаться к приватным MCP-серверам, внутренним API, базам данных и локальным системам без вывода их в публичный интернет. Режим managed VPC resource напрямую интегрируется с вашим существующим VPC и требует минимальной настройки. Режим self-managed lattice resource дает более точный контроль, но требует дополнительной подготовки. Оба режима направляют трафик через Resource Gateway, который не покидает сеть AWS.

Следующие шаги

  • Определите один внутренний API или MCP-сервер в вашей среде, которому поможет доступ AI-агента
  • Изучите текущую архитектуру Amazon VPC, чтобы понять, какой режим — Managed VPC Resource или Self-Managed Lattice Resource — лучше соответствует вашим требованиям
  • Изучите документацию Amazon Bedrock AgentCore Gateway для дополнительных вариантов настройки
  • Изучите документацию Amazon VPC Lattice Resource Gateway для межаккаунтных сценариев
  • Чтобы познакомиться с дополнительными схемами интеграции и расширенными конфигурациями, см. примеры на GitHub.

Материал — перевод статьи с английского.

Оригинал: Configuring Amazon Bedrock AgentCore Gateway for secure access to private resources