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

Инструкции
1. Создайте новый ключ KMS
Перейдите в раздел «KMS -> Ключи, управляемые клиентом», затем нажмите «Создать ключ».
Выберите алгоритм симметричного шифрования.
После создания ключа запишите его ARN. Поддерживаемые форматы:
arn:aws:kms:<region>:<account_number>:key/<uuid>,...:key/mrk-*или...:alias/<alias_name>.

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

{
"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.
Перейдите в раздел «IAM -> Роли», затем нажмите «Создать роль».
На этапе «Выбор доверенного субъекта» выберите «Пользовательская политика доверия».

Далее введите следующее в пользовательской политике доверия, чтобы разрешить доступ главному субъекту AWS OpenAI.
Главным субъектом является субъект AWS компании OpenAI:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement.Укажите, какой ExternalId OpenAI должен передавать в процессе
AssumeRole.Для ChatGPT или API используйте ID организации (org-xxx), связанный с вашей рабочей областью: https://platform.api.openai.org/settings/organization/general.
Для 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, которую вы создали на предыдущем этапе. Нажмите на флажок рядом с названием политики, затем нажмите «Далее».

Наконец, в разделе «Имя, проверка и создание» выберите любое название роли.
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 управления».
Сначала зарегистрируйте свой внешний ключ на уровне организации OpenAI: в результате будет создан ID внешнего ключа.
На этом этапе мы проверим, что введенные вами данные корректны и что мы сможем пройти аутентификацию в вашей KMS.
Пока что система 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"
}'