OpenAI

Настройка EKM с OpenAI и AWS

Как настроить AWS и активировать корпоративное управление ключами (EKM).

Обновлено: 5 days ago

Обзор

Корпоративное управление ключами (EKM) позволяет OpenAI шифровать данные с помощью главного ключа, который контролируете вы. В этом документе описано, как настроить вашу учетную запись AWS, чтобы предоставить OpenAI ограниченные разрешения для доступа к вашей KMS.

AWS EKM integration flow between OpenAI EKM Service, your STS, your KMS, and your master KEK

Инструкции

1. Создайте новый ключ KMS

  1. Перейдите в раздел «KMS > Ключи, управляемые клиентом», затем нажмите «Создать ключ».

  2. Выберите алгоритм симметричного шифрования.

  3. После создания ключа запишите его ARN. Поддерживаемые форматы: arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-* или ...:alias/<alias_name>.

AWS KMS customer managed key details page with key ID and ARN for test-kms

2. Создайте пользовательскую политику для ограниченного доступа к ключу KMS

  1. Перейдите в раздел «IAM > Политики», затем выберите «Создать политику».

  2. На этапе «Укажите разрешения» выберите JSON и введите следующее, чтобы предоставить политике действия доступа к KMS. Убедитесь, что вы заменили параметр YOUR_KMS_ARN на ARN созданного вами ключа.

AWS IAM Create policy page with Specify permissions open and the JSON policy editor selected
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": "<YOUR_KMS_ARN>"
}
]
}

3. Создайте роль IAM, которую сможет принять OpenAI, и назначьте ей политику с ограниченным доступом к вашей KMS

OpenAI будет вызывать AssumeRole из аккаунта AWS, принадлежащего OpenAI. На этом этапе основной объект AWS OpenAI может принять ограниченную роль для доступа к вашей KMS.

  1. Перейдите в раздел «IAM > Роли», затем выберите «Создать роль».

  2. На этапе «Выбор доверенного субъекта» выберите «Пользовательская политика доверия».

AWS IAM Select trusted entity screen with Custom trust policy selected

Далее введите следующее в пользовательской политике доверия, чтобы разрешить доступ главному субъекту AWS OpenAI.

  • Главным субъектом является субъект AWS компании OpenAI: arn:aws:iam::790389265272:role/EnterpriseKeyManagement.

  • Укажите, какой ExternalId OpenAI должен передавать в процессе AssumeRole.

    • Для ChatGPT или API используйте ID организации (org-xxx), связанный с вашей рабочей областью: настройки организации.

    • Для API можно указать конкретный ID проекта API для большей детализации.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::790389265272:role/EnterpriseKeyManagement"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": [
"<YOUR_OPENAI_ORGANIZATION_ID>"
]
}
}
}
]
}

Далее на этапе «Добавьте разрешения» найдите название политики IAM, которую вы создали на предыдущем этапе. Установите флажок рядом с названием политики, затем нажмите «Далее».

AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected

Наконец, в разделе «Имя, проверка и создание» выберите любое название роли.

4. Примените любые дополнительные ограничения в соответствии с вашими собственными методами обеспечения безопасности

Выше приведена минимально необходимая информация, которая требуется OpenAI для настройки EKM. Вы можете применять дополнительные политики управления ключами или ограничения в соответствии с вашими внутренними практиками обеспечения безопасности, при условии, что OpenAI сможет выполнять операции шифрования и дешифрования в вашей KMS. При вызове вами конечной точки регистрации ключа в OpenAI (см. ниже) мы проверим ваши настройки.

После выполнения инструкций выше

ChatGPT Enterprise

Свяжитесь с вашим контактным лицом в OpenAI и поделитесь следующими параметрами:

  • "role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>"

    • Роль ARN, которую OpenAI будет использовать в вашем облаке.

  • "kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"

    • ARN системы управления ключами для главного ключа, которым вы управляете.

Мы включим EKM для вашей организации/рабочей области ChatGPT.

API

Регистрация собственного внешнего ключа в OpenAI

Следуйте инструкциям в этом руководстве по API: «Внешние ключи в API управления».

  1. Сначала зарегистрируйте свой внешний ключ на уровне организации OpenAI: в результате будет создан ID внешнего ключа.

  2. На этом этапе мы проверим, что введенные вами данные корректны и что мы сможем пройти аутентификацию в вашей KMS.

  3. Пока что система EKM еще не будет добавлена в ваш проект OpenAI.

curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "aws",
"name": "AWS EKM Config",
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>",
"external_id": "<your org id or project id>"
}'

Затем создайте проект OpenAI, связанный с внешним ключом. После этого система EKM будет активирована в вашем проекте. Тело ответа этого API-запроса будет содержать ID проекта (proj_xxx).

curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Some Project",
"external_key_id": "extkey_xxxx"
}'

Была ли эта статья полезной?