Pangkalahatang-ideya
Pinapayagan ng Enterprise Key Management (EKM) ang OpenAI na i-encrypt ang data gamit ang master key na kinokontrol mo. Ipinapakita ng dokumentong ito kung paano i-set up ang iyong AWS account upang bigyan ang OpenAI ng limitadong mga pahintulot sa iyong KMS.

Mga hakbang
1. Gumawa ng bagong KMS key
Pumunta sa KMS -> Mga key na pinamamahalaan ng customer, pagkatapos ay i-click ang Gumawa ng Key.
Pumili ng symmetric na encryption algorithm.
Pagkatapos magawa ang iyong key, tandaan ang ARN nito. Kasama sa mga sinusuportahang format ang
arn:aws:kms:<region>:<account_number>:key/<uuid>,...:key/mrk-*, o...:alias/<alias_name>.

2. Gumawa ng custom na patakaran para sa limitadong access sa KMS key
Pumunta sa IAM -> Policies, pagkatapos ay i-click ang Gumawa ng Patakaran.
Sa hakbang na Tukuyin ang mga pahintulot, piliin ang JSON at ilagay ang sumusunod upang bigyan ang patakaran ng mga aksyon sa access sa KMS. Tiyaking palitan ang YOUR_KMS_ARN ng ARN ng Key na ginawa mo.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": <YOUR_KMS_ARN>
}
]
}3. Gumawa ng IAM Role na ia-assume ng OpenAI, at italaga ito sa patakarang may limitadong access sa iyong KMS
Tatawag ang OpenAI ng AssumeRole mula sa AWS account na pagmamay-ari ng OpenAI. Hinahayaan ng hakbang na ito ang AWS principal ng OpenAI na i-assume ang limitadong role para ma-access ang iyong KMS.
Pumunta sa IAM -> Roles, pagkatapos ay i-click ang Gumawa ng Role.
Sa hakbang na Pumili ng pinagkakatiwalaang entity, piliin ang Custom na trust policy.

Susunod, ilagay ang sumusunod sa Custom na trust policy upang payagan ang access sa AWS principal ng OpenAI.
Ang principal ay ang AWS principal ng OpenAI:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement.Isaad kung aling ExternalId ang dapat ipasa ng OpenAI habang ginagawa ang prosesong
AssumeRole.Para sa ChatGPT o API, gamitin ang ID ng organisasyon (org-xxx) na nauugnay sa iyong workspace: https://platform.api.openai.org/settings/organization/general.
Para sa API, maaari kang gumamit ng partikular na API project ID para sa mas mataas na granularity.
{
"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>,
]
}
}
}
]
}Pagkatapos, sa hakbang na Magdagdag ng mga pahintulot, hanapin ang pangalan ng patakaran ng IAM policy na ginawa mo sa nakaraang hakbang. I-click ang checkbox sa tabi ng pangalan ng patakaran, pagkatapos ay i-click ang Susunod.

Panghuli, sa seksyong Pangalanan, suriin, at gumawa, pumili ng anumang pangalan ng role.
4. Maglapat ng anumang karagdagang paghihigpit alinsunod sa sarili mong mga kasanayan sa seguridad
Nasa itaas ang minimum na kinakailangang impormasyon na kailangan ng OpenAI para i-set up ang EKM. Malaya kang maglapat ng karagdagang mga key policy o paghihigpit alinsunod sa sarili mong mga panloob na kasanayan sa seguridad, hangga't magawa ng OpenAI na tawagin ang mga operasyong encrypt at decrypt sa iyong KMS. Kapag tinawag mo ang endpoint ng pagpaparehistro ng key sa OpenAI na inilalarawan sa ibaba, iva-validate namin ang iyong setup.
Pagkatapos makumpleto ang mga hakbang sa itaas
ChatGPT Enterprise
Mangyaring makipag-ugnayan sa iyong contact sa OpenAI at ibahagi ang sumusunod:
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>"Ang Role ARN na ia-assume ng OpenAI sa iyong cloud.
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"Ang ARN ng Key Management System para sa master key na pinamamahalaan mo.
Ie-enable namin ang EKM para sa iyong organisasyon/workspace sa ChatGPT.
API
Irehistro ang iyong external key sa OpenAI
Sundin ang mga tagubilin sa API reference na ito: Mga External Key sa Management API.
Una, irehistro ang iyong external key sa antas ng organisasyon ng OpenAI, na bubuo ng external key ID.
Sa hakbang na ito, iva-validate namin na valid ang iyong input at makakapag-authenticate kami sa iyong KMS.
Hindi pa nito idaragdag ang EKM sa iyong proyekto sa 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": <iyong org id o project id>
}'Pagkatapos, gumawa ng proyekto sa OpenAI na nauugnay sa external key. Pagkatapos nito, na-activate ang EKM sa iyong proyekto. Ibibigay sa iyo ng response body ng API call na ito ang project ID (proj_xxx).
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Ilang Project",
"external_key_id": "extkey_xxxx"
}'