Home Машинное обучение Используйте AWS PrivateLink для настройки частного доступа к Amazon Bedrock. | DeepTech

Используйте AWS PrivateLink для настройки частного доступа к Amazon Bedrock. | DeepTech

0
Используйте AWS PrivateLink для настройки частного доступа к Amazon Bedrock.
 | DeepTech

Amazon Bedrock — это полностью управляемый сервис, предоставляемый AWS, который предлагает разработчикам доступ к базовым моделям (FM) и инструментам для их настройки для конкретных приложений. Это позволяет разработчикам создавать и масштабировать генеративные приложения искусственного интеллекта с использованием FM через API без управления инфраструктурой. Вы можете выбирать из различных FM от Amazon и ведущих стартапов в области искусственного интеллекта, таких как AI21 Labs, Anthropic, Cohere и Stability AI, чтобы найти модель, которая лучше всего подходит для вашего случая использования. Благодаря бессерверному использованию Amazon Bedrock вы можете быстро приступить к работе, легко экспериментировать с FM, конфиденциально настраивать их с использованием собственных данных, а также легко интегрировать и развертывать их в своих приложениях с помощью инструментов и возможностей AWS.

Клиенты создают инновационные генеративные приложения искусственного интеллекта с использованием API-интерфейсов Amazon Bedrock и собственных данных. При доступе к API-интерфейсам Amazon Bedrock клиенты ищут механизм для настройки периметра данных, не раскрывая свои данные в Интернете, чтобы они могли снизить потенциальные векторы угроз от воздействия Интернета. Конечная точка Amazon Bedrock VPC на базе AWS PrivateLink позволяет вам установить частное соединение между VPC в вашей учетной записи и учетной записью службы Amazon Bedrock. Это позволяет экземплярам VPC взаимодействовать с ресурсами службы без необходимости использования общедоступных IP-адресов.

В этом посте мы покажем, как настроить частный доступ к вашей учетной записи AWS для доступа к API-интерфейсам Amazon Bedrock через конечные точки VPC на базе PrivateLink, чтобы помочь вам безопасно создавать генеративные приложения искусственного интеллекта с использованием ваших собственных данных.

Обзор решения

Вы можете использовать генеративный искусственный интеллект для разработки широкого спектра приложений, таких как суммирование текста, модерация контента и другие возможности. При создании таких генеративных приложений искусственного интеллекта с использованием FM или базовых моделей клиенты хотят генерировать ответ, не обращаясь к общедоступному Интернету или на основе своих собственных данных, которые могут находиться в их корпоративных базах данных.

На следующей диаграмме мы изображаем архитектуру для настройки вашей инфраструктуры для чтения ваших собственных данных, находящихся в Amazon Relational Database Service (Amazon RDS), и дополнения запроса API Amazon Bedrock информацией о продукте при ответе на запросы, связанные с продуктом, из вашего генеративного приложения искусственного интеллекта. . Хотя на этой диаграмме мы используем Amazon RDS в целях иллюстрации, вы можете протестировать частный доступ к API-интерфейсам Amazon Bedrock, используя инструкции, представленные в этом посте.

Этапы рабочего процесса следующие:

  1. AWS Lambda, работающая в вашей частной подсети VPC, получает быстрый запрос от генеративного приложения искусственного интеллекта.
  2. Lambda обращается к собственной базе данных RDS, дополняет контекст запроса (например, добавляет информацию о продукте) и вызывает API Amazon Bedrock с расширенным запросом.
  3. Вызов API направляется на конечную точку Amazon Bedrock VPC, которая связана с политикой конечных точек VPC с разрешениями «Разрешить доступ к API Amazon Bedrock».
  4. Конечная точка API сервиса Amazon Bedrock получает запрос API через PrivateLink, не проходя через общедоступный Интернет.
  5. Вы можете изменить политику конечных точек Amazon Bedrock VPC на «Запретить разрешения», чтобы убедиться, что вызовы API Amazon Bedrock запрещены.
  6. Вы также можете получить частный доступ к API-интерфейсам Amazon Bedrock через конечную точку VPC из своей корпоративной сети через шлюз AWS Direct Connect.

Предварительные условия

Прежде чем приступить к работе, убедитесь, что у вас есть следующие предварительные условия:

  • Аккаунт AWS
  • Роль федерации AWS 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 (Amazon VPC) для настройки конечной точки VPC для Amazon Bedrock, чтобы облегчить частное подключение между вашим VPC и Amazon Bedrock.

  1. На консоли Amazon VPC в разделе Виртуальное частное облако в области навигации выберите Конечные точки.
  2. Выбирать Создать конечную точку.
  3. Для Именная меткавходить bedrock-vpce.
  4. Под Услугинайдите Bedrock-runtime и выберите com.amazonaws.<region>.bedrock-runtime.
  5. Для ВККукажите VPC Bedrock-GenAI-Project-vpc который вы создали с помощью стека CloudFormation в предыдущем разделе.
  6. в Подсети раздел, выберите Зоны доступности и выберите соответствующие идентификаторы подсети в раскрывающемся меню.
  7. Для Группы безопасностивыберите группу безопасности с именем группы Bedrock-GenAI-Stack-VPCEndpointSecurityGroup- и описание Allow TLS for VPC Endpoint.

Группа безопасности действует как виртуальный брандмауэр для вашего экземпляра и контролирует входящий и исходящий трафик. Обратите внимание, что эта группа безопасности конечных точек VPC разрешает только трафик, исходящий из группы безопасности, прикрепленной к вашим частным подсетям VPC, что добавляет уровень защиты.

  1. Выбирать Создать конечную точку.
  2. в Политика раздел, выберите Обычай и введите следующую политику наименьших привилегий, чтобы гарантировать, что с указанным ресурсом базовой модели разрешены только определенные действия: arn:aws:bedrock:*::foundation-model/anthropic.claude-instant-v1 для данного принципала (например, роль IAM лямбда-функции).
    {
    	"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:

  1. На консоли Lambda выберите Функции в панели навигации.
  2. Выберите функцию gen-ai-lambda-stack-BedrockTestLambdaFunction-XXXXXXXXXXXX.
  3. На Конфигурация вкладка, выбрать Разрешения на левой панели.
  4. Под Роль исполнения¸ выберите ссылку на роль gen-ai-lambda-stack-BedrockTestLambdaFunctionRole-XXXXXXXXXXXX.

Вы будете перенаправлены на консоль IAM.

  1. в Политики разрешений раздел, выберите Добавить разрешения и выбери Создать встроенную политику.
  2. На JSON вкладке измените политику следующим образом:
    {
        "Version": "2012-10-17",
        "Statement": (
            {
                "Sid": "eniperms",
                "Effect": "Allow",
                "Action": (
                    "ec2:CreateNetworkInterface",
                    "ec2:DescribeNetworkInterfaces",
                    "ec2:DeleteNetworkInterface",
                    "ec2:*VpcEndpoint*"
                ),
                "Resource": "*"
            }
        )
    }

  3. Выбирать Следующий.
  4. Для Название политикивходить enivpce-policy.
  5. Выбирать Создать политику.
  6. Добавьте следующую встроенную политику (укажите исходные конечные точки 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>"
                        )
                    }
                }
            }
        )
    } 

  7. На странице функции Лямбда на вкладке Конфигурация вкладка, выбрать ВКК на левой панели, затем выберите Редактировать.
  8. Для ВККвыбирать Bedrock-GenAI-Project-vpc.
  9. Для Подсетивыберите частные подсети.
  10. Для Группы безопасностивыбирать gen-ai-lambda-stack-SecurityGroup- (группа безопасности для рабочей нагрузки Amazon Bedrock в частных подсетях).
  11. Выбирать Сохранять.

Протестируйте средства контроля частного доступа

Теперь вы можете протестировать элементы управления частным доступом (API Amazon Bedrock через конечные точки VPC).

  1. На консоли Lambda выберите Функции в панели навигации.
  2. Выберите функцию gen-ai-lambda-stack-BedrockTestLambdaFunction-XXXXXXXXXXXX.
  3. На Код вкладка, выбрать Тест.

Вы должны увидеть следующий ответ на вызов API Amazon Bedrock (статус: успешно).

  1. Чтобы запретить доступ к API-интерфейсам Amazon Bedrock через конечные точки VPC, перейдите в консоль Amazon VPC.
  2. Под Виртуальное частное облако в области навигации выберите Конечные точки.
  3. Выберите свою политику и перейдите к Вкладка «Политика».

В настоящее время для политики конечных точек VPC установлено значение Allow.

  1. Чтобы запретить доступ, выберите Изменить политику.
  2. Изменять Allow к Deny и выбери Сохранять.

Обновление политики для конечной точки 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"
            }
		}
	)
}

  1. Вернитесь на страницу функции Lambda и на Код вкладка, выбрать Тест.

Как показано на следующем снимке экрана, запрос на доступ к Amazon Bedrock через конечную точку VPC был отклонен (статус: сбой).

В ходе этого процесса тестирования мы продемонстрировали, как трафик от вашего VPC к конечной точке API Amazon Bedrock проходит через соединение PrivateLink, а не через подключение к Интернету.

Очистить

Выполните следующие действия, чтобы избежать будущих расходов:

  1. Очистите конечные точки VPC.
  2. Очистите VPC.
  3. Удалите стек CloudFormation.

Заключение

В этом посте мы продемонстрировали, как настроить и ввести в действие частное соединение между генеративной рабочей нагрузкой ИИ, развернутой на VPC вашего клиента, и Amazon Bedrock, используя конечную точку интерфейса VPC на базе PrivateLink. При использовании архитектуры, обсуждаемой в этом посте, трафик между вашим клиентским VPC и Amazon Bedrock не будет покидать сеть Amazon, что гарантирует, что ваши данные не попадут в общедоступный Интернет, и тем самым поможет вам выполнить требования соответствия.

В качестве следующего шага опробуйте решение в своей учетной записи и поделитесь своим мнением.


Об авторах

Рам Виттал — главный архитектор решений машинного обучения в AWS. Он имеет более чем трехлетний опыт проектирования и создания распределенных, гибридных и облачных приложений. Он увлечен созданием безопасных и масштабируемых решений AI/ML и больших данных, которые помогут корпоративным клиентам в их внедрении и оптимизации облака для улучшения результатов их бизнеса. В свободное время он катается на мотоцикле и гуляет со своим трехлетним овчаркой!

Рэй Хорсанди — специалист по искусственному интеллекту и машинному обучению в AWS, поддерживающий стратегических клиентов с помощью передовых методов искусственного интеллекта и машинного обучения. Имея степень магистра наук и доктор философии. Получив степень доктора электротехники и компьютерных наук, он руководит предприятиями по созданию безопасных, масштабируемых решений AI/ML и больших данных для оптимизации внедрения облачных технологий. Его увлечения включают компьютерное зрение, НЛП, генеративный искусственный интеллект и MLOps. Рэй любит играть в футбол и проводить время с семьей.

Майкл Дэниэлс — специалист по AI/ML в AWS. Его опыт заключается в создании и внедрении решений AI/ML и генеративного искусственного интеллекта для решения сложных бизнес-задач, который подкрепляется его докторской степенью. из унив. Техаса и его степень магистра наук. Получил степень бакалавра компьютерных наук по специальности «Машинное обучение» в Технологическом институте Джорджии. Он преуспевает в применении передовых облачных технологий для инноваций, вдохновения и преобразования ведущих отраслевых организаций, а также в эффективном общении с заинтересованными сторонами на любом уровне и в любом масштабе. В свободное время вы можете застать Майкла катающимся на лыжах или сноуборде в горах.

LEAVE A REPLY

Please enter your comment!
Please enter your name here