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

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

Вы можете использовать искусственный интеллект генеративного типа для создания разнообразного набора приложений, таких как резюмирование текста, модерация контента и другие возможности. При создании таких генеративных приложений с использованием ФМ или базовых моделей клиенты хотят создать ответ без передачи через публичный интернет или на основе своих собственных данных, которые могут находиться в их корпоративных базах данных.

На следующей диаграмме мы изображаем архитектуру для настройки вашей инфраструктуры для чтения ваших собственных данных, размещенных в 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 направляется на VPC-точку доступа Amazon Bedrock, связанную с политикой VPC-точки доступа, разрешающей доступ к API Amazon Bedrock.
  4. API-точка доступа сервиса Amazon Bedrock получает API-запрос через PrivateLink без прохождения через публичный интернет.
  5. Вы можете изменить политику VPC-точки доступа Amazon Bedrock, запретив доступ, чтобы убедиться, что вызовы API Amazon Bedrock отклоняются.
  6. Вы также можете получать доступ к 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.

  1. На консоли Amazon VPC, в разделе Virtual private cloud в панели навигации, выберите Endpoints.
  2. Выберите Create endpoint.
  3. Для Name tag введите bedrock-vpce.
  4. В разделе Services найдите bedrock-runtime и выберите com.amazonaws.<region>.bedrock-runtime.
  5. Для VPC укажите VPC Bedrock-GenAI-Project-vpc, созданную через стек CloudFormation в предыдущем разделе.
  6. В разделе Subnets выберите зоны доступности и выберите соответствующие идентификаторы подсетей из выпадающего меню.
  7. Для Security groups выберите группу безопасности с именем Bedrock-GenAI-Stack-VPCEndpointSecurityGroup- и описанием Allow TLS for VPC Endpoint.

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

  1. Выберите Создать конечную точку.

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

  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. На странице функции Lambda на вкладке Конфигурация выберите VPC в левой панели, а затем выберите Изменить.

  8. Для VPC выберите 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 установлена на Разрешение.

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

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

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