Используйте AWS PrivateLink для настройки приватного доступа к Amazon Bedrock.
Максимизируйте безопасность с помощью AWS PrivateLink настройте приватный доступ к Amazon Bedrock
Amazon Bedrock – это полностью управляемый сервис, предоставляемый AWS, который предоставляет разработчикам доступ к моделям фундамента (ФМ) и инструментам для их настройки для конкретных приложений. Он позволяет разработчикам создавать и масштабировать приложения искусственного интеллекта, используя ФМ через API, без управления инфраструктурой. Вы можете выбрать из различных ФМ от Amazon и ведущих стартапов искусственного интеллекта, таких как AI21 Labs, Anthropic, Cohere и Stability AI, чтобы найти модель, наилучшим образом подходящую для вашего случая использования. С помощью бессерверного опыта Amazon Bedrock вы можете быстро начать работу, легко экспериментировать с ФМ, настроить их собственными данными и без проблем интегрировать и развертывать их в ваши приложения с использованием инструментов и возможностей AWS.
Клиенты создают инновационные приложения искусственного интеллекта, используя API Amazon Bedrock с использованием своих собственных собственных данных. При доступе к API Amazon Bedrock клиенты ищут механизм для настройки периметра данных без раскрытия своих данных в Интернете, чтобы минимизировать потенциальные угрозы от подверженности открытости Интернета. Расположенный в виртуальной частной сети (VPC) и работающий на основе AWS PrivateLink сервис Amazon Bedrock VPC позволяет установить частное соединение между VPC в вашей учетной записи и учетной записью сервиса Amazon Bedrock. Это позволяет экземплярам VPC общаться с ресурсами сервиса без необходимости использования публичных IP-адресов.
В этой статье мы покажем, как настроить частный доступ в вашей учетной записи AWS для доступа к API Amazon Bedrock через VPC-точки доступа на основе PrivateLink, чтобы помочь вам безопасно создавать приложения искусственного интеллекта с использованием ваших собственных данных.
Обзор решения
Вы можете использовать искусственный интеллект генеративного типа для создания разнообразного набора приложений, таких как резюмирование текста, модерация контента и другие возможности. При создании таких генеративных приложений с использованием ФМ или базовых моделей клиенты хотят создать ответ без передачи через публичный интернет или на основе своих собственных данных, которые могут находиться в их корпоративных базах данных.
- Обработка текста для подготовки к машинному обучению в Python — Обработка естественного языка
- Разверните и настройте базовые модели в Amazon SageMaker JumpStart всего лишь двумя строками кода
- Инструмент клиента синтеза речи Text-to-Speech от Xenova устойчивая и гибкая искусственно интеллектуальная платформа для создания естественно звучащей синтетической речи.
На следующей диаграмме мы изображаем архитектуру для настройки вашей инфраструктуры для чтения ваших собственных данных, размещенных в Amazon Relational Database Service (Amazon RDS), и расширения запроса API Amazon Bedrock информацией о продукте при ответе на запросы, связанные с продуктом, в вашем генеративном приложении искусственного интеллекта. Несмотря на то, что для иллюстрации мы используем Amazon RDS в этой диаграмме, вы можете протестировать частный доступ к API Amazon Bedrock от начала до конца с помощью предоставленных в этой статье инструкций.
Шаги рабочего процесса следующие:
- AWS Lambda, работающий в вашей частной подсети VPC, получает запрос от генеративного приложения искусственного интеллекта.
- Lambda выполняет вызов собственной базы данных RDS, расширяет контекст запроса (например, добавляет информацию о продукте) и вызывает API сервиса Amazon Bedrock с расширенным запросом.
- Вызов API направляется на VPC-точку доступа Amazon Bedrock, связанную с политикой VPC-точки доступа, разрешающей доступ к API Amazon Bedrock.
- API-точка доступа сервиса Amazon Bedrock получает API-запрос через PrivateLink без прохождения через публичный интернет.
- Вы можете изменить политику VPC-точки доступа Amazon Bedrock, запретив доступ, чтобы убедиться, что вызовы API Amazon Bedrock отклоняются.
- Вы также можете получать доступ к API Amazon Bedrock через VPC-точку доступа из вашей корпоративной сети через шлюз AWS Direct Connect.
Предварительные требования
Перед началом работы убедитесь, что у вас есть следующие предварительные требования:
- Учетная запись AWS
- Федеративная роль (IAM) Identity and Access Management (IAM) с доступом для выполнения следующих действий:
- Создание, редактирование, просмотр и удаление ресурсов сети VPC
- Создание, редактирование, просмотр и удаление функций Lambda
- Создание, редактирование, просмотр и удаление ролей и политик IAM
- Перечисление основных моделей и вызов основной модели Amazon Bedrock
- В этой статье мы используем регион
us-east-1
- Запросите доступ к основной модели через консоль Amazon Bedrock
Настройка инфраструктуры для приватного доступа
В этом разделе мы настраиваем инфраструктуру, такую как VPC, приватные подсети, группы безопасности и функцию Lambda с использованием шаблона AWS CloudFormation.
Используйте следующий шаблон, чтобы создать стек инфраструктуры Bedrock-GenAI-Stack
в вашей учетной записи AWS.
Шаблон CloudFormation создает следующие ресурсы от вашего имени:
- VPC с двумя приватными подсетями на отдельных зонах доступности
- Группы безопасности и таблицы маршрутизации
- Роль и политики IAM для использования Lambda, Amazon Bedrock и Amazon Elastic Compute Cloud (Amazon EC2)
Настройка конечной точки VPC для Amazon Bedrock
В этом разделе мы используем Amazon Virtual Private Cloud (Amazon VPC), чтобы настроить конечную точку VPC для Amazon Bedrock и обеспечить приватное подключение от вашей VPC к Amazon Bedrock.
- На консоли Amazon VPC, в разделе Virtual private cloud в панели навигации, выберите Endpoints.
- Выберите Create endpoint.
- Для Name tag введите
bedrock-vpce
. - В разделе Services найдите bedrock-runtime и выберите
com.amazonaws.<region>.bedrock-runtime
. - Для VPC укажите VPC
Bedrock-GenAI-Project-vpc
, созданную через стек CloudFormation в предыдущем разделе. - В разделе Subnets выберите зоны доступности и выберите соответствующие идентификаторы подсетей из выпадающего меню.
- Для Security groups выберите группу безопасности с именем
Bedrock-GenAI-Stack-VPCEndpointSecurityGroup-
и описаниемAllow TLS for VPC Endpoint
.
Группа безопасности действует как виртуальный брандмауэр для вашего экземпляра, контролируя входящий и исходящий трафик. Обратите внимание, что эта группа безопасности VPC-конечной точки разрешает только трафик, исходящий из группы безопасности, присоединенной к приватным подсетям вашей VPC, что обеспечивает дополнительный уровень защиты.
-
Выберите Создать конечную точку.
-
В разделе Политика выберите Пользовательская и введите следующую политику наименьших привилегий, чтобы гарантировать, что разрешены только определенные действия над указанным ресурсом модели основания
arn:aws:bedrock:*::foundation-model/anthropic.claude-instant-v1
для определенного принципала (например, роли IAM функции Lambda).{ "Version": "2012-10-17", "Statement": [ { "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/anthropic.claude-instant-v1" ], "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<accountid>:role/GenAIStack-Bedrock" } } ]}
Может понадобиться до 2 минут для создания конечной точки интерфейса и изменения ее статуса на Доступно. Вы можете обновить страницу, чтобы проверить последний статус.
Настройка функции Lambda на приватных подсетях VPC
Выполните следующие шаги для настройки функции Lambda:
- На консоли Lambda выберите Функции в области навигации.
- Выберите функцию
gen-ai-lambda-stack-BedrockTestLambdaFunction-XXXXXXXXXXXX
. - На вкладке Конфигурация выберите Разрешения в левой панели.
- В разделе Роль выполнения выберите ссылку для роли
gen-ai-lambda-stack-BedrockTestLambdaFunctionRole-XXXXXXXXXXXX
.
Вы будете перенаправлены на консоль IAM.
-
В разделе Права разрешений выберите Добавить разрешения и выберите Создать инлайн-политику.
-
На вкладке JSON измените политику следующим образом:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "eniperms", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:*VpcEndpoint*" ], "Resource": "*" } ]}
-
Выберите Далее.
-
Для Имени политики введите
enivpce-policy
. -
Выберите Создать политику.
-
Добавьте следующую инлайновую политику (указывайте свои исходные конечные точки VPC), чтобы ограничить доступ к Lambda только к API Amazon Bedrock через конечные точки VPC:
{ "Id": "lambda-bedrock-sourcevpce-access-only", "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:ListFoundationModels", "bedrock:InvokeModel" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:sourceVpce": [ "vpce-<bedrock-runtime-vpce>" ] } } } ]}
-
На странице функции Lambda на вкладке Конфигурация выберите VPC в левой панели, а затем выберите Изменить.
-
Для VPC выберите
Bedrock-GenAI-Project-vpc
. -
Для Подсетей выберите приватные подсети.
-
Для Групп безопасности выберите
gen-ai-lambda-stack-SecurityGroup-
(группа безопасности для рабочей нагрузки Amazon Bedrock на приватных подсетях). -
Выберите Сохранить.
Тестирование частных контролов доступа
Теперь вы можете протестировать частные контролы доступа (API Amazon Bedrock через конечные точки VPC).
- На консоли Lambda выберите Функции в панели навигации.
- Выберите функцию
gen-ai-lambda-stack-BedrockTestLambdaFunction-XXXXXXXXXXXX
. - На вкладке Код выберите Тестирование.
Вы должны увидеть следующий ответ от вызова API Amazon Bedrock (Статус: Успешно).
- Чтобы запретить доступ к API Amazon Bedrock через конечные точки VPC, перейдите в консоль Amazon VPC.
- В панели навигации выберите Виртуальная частная облако, а затем Конечные точки.
- Выберите вашу политику и перейдите на вкладку Политика.
В настоящее время политика конечной точки VPC установлена на Разрешение
.
- Чтобы запретить доступ, выберите Изменить политику.
- Измените
Разрешение
наЗапрет
и выберите Сохранить.
Обновление политики для конечной точки VPC может занять до 2 минут.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/anthropic.claude-instant-v1" ], "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::<accountid>:role/GenAIStack-Bedrock" } } ]}
- Вернитесь на страницу функции Lambda и на вкладке Код выберите Тестирование.
Как показано на следующем скриншоте, запрос на доступ к Amazon Bedrock через конечную точку VPC был отклонен (Статус: Ошибка).
В процессе этого тестирования мы показали, как трафик от вашей VPC к конечной точке API Amazon Bedrock проходит через соединение PrivateLink, а не через интернет-соединение.
Очистка
Следуйте этим шагам, чтобы избежать дальнейших расходов:
Заключение
В этой статье мы продемонстрировали, как настроить и операционализировать частное соединение между генеративной рабочей нагрузкой ИИ, развернутой в вашей клиентской VPC, и Amazon Bedrock с использованием интерфейса VPC-конечной точки, обеспечиваемой PrivateLink. При использовании архитектуры, обсуждаемой в этой статье, трафик между вашей клиентской VPC и Amazon Bedrock не будет покидать сеть Amazon, что гарантирует, что ваши данные не будут доступны публичному интернету и таким образом поможет вам соблюдать требования по соответствию.
В качестве следующего шага, попробуйте эту решение в вашей учетной записи и поделитесь своим отзывом.