Общ преглед
Enterprise Key Management (EKM) позволява на OpenAI да шифрова данни с помощта на главен ключ, който контролирате. Този документ показва как да настроите своя AWS акаунт, за да дадете на OpenAI ограничени разрешения във вашия KMS.

Стъпки
1. Създайте нов KMS ключ
Отидете на KMS -> Customer managed keys, след което щракнете върху Create Key.
Изберете симетричен алгоритъм за шифроване.
След като ключът ви бъде създаден, запишете неговия ARN. Поддържаните формати включват
arn:aws:kms:<region>:<account_number>:key/<uuid>,...:key/mrk-*или...:alias/<alias_name>.

2. Създайте персонализирана политика за ограничен достъп до KMS ключа
Отидете на IAM -> Policies, след което щракнете върху Create Policy.
В стъпката Specify permissions изберете 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 -> Roles, след което щракнете върху Create Role.
В стъпката Select trusted entity изберете Custom trust policy.

След това въведете следното в Custom trust policy, за да разрешите достъп до AWS принципала на OpenAI.
Принципалът е AWS принципалът на OpenAI:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement.Посочете кой ExternalId трябва да предава OpenAI по време на процеса
AssumeRole.За ChatGPT или API използвайте идентификатора на организацията (org-xxx), свързан с вашето работно пространство: https://platform.api.openai.org/settings/organization/general.
За API можете да използвате конкретен идентификатор на 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>,
]
}
}
}
]
}След това в стъпката Add permissions потърсете името на политиката на IAM, която създадохте в предишната стъпка. Щракнете върху квадратчето за отметка до името на политиката, след което щракнете върху Next.

Накрая, в секцията Name, review, and create, изберете произволно име на роля.
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 на Key Management System за главния ключ, който управлявате.
Ще активираме EKM за вашата ChatGPT организация/работно пространство.
API
Регистрирайте външния си ключ в OpenAI
Следвайте инструкциите в тази справка за API: Външни ключове в Management API.
Първо регистрирайте външния си ключ на ниво организация в OpenAI, което ще генерира идентификатор на външен ключ.
В тази стъпка ще потвърдим, че въведените от вас данни са валидни и че можем да се удостоверим във вашия 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 конфигурация",
"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 извикване ще ви даде идентификатора на проекта (proj_xxx).
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Някакъв проект",
"external_key_id": "extkey_xxxx"
}'