Pangkalahatang-ideya
Ang Enterprise Key Management (EKM) ay nagbibigay-daan sa iyong i-encrypt ang nilalaman ng customer mo sa OpenAI gamit ang mga key na pinamamahalaan ng sarili mong external Key Management System (KMS), na available para sa parehong ChatGPT Enterprise at API.
Sinusuportahan ng OpenAI ang Bring Your Own Key (BYOK) encryption gamit ang mga external account sa AWS KMS, Google Cloud (GCP), at Azure Key Vault.
Sa kasalukuyan, limitado ang implementasyon ng EKM sa mga Enterprise at Edu workspace na may nakatalagang OpenAI account representative.
Paano gumagana ang OpenAI EKM encryption
Daloy sa Mataas na Antas
Gumagawa kami ng Data Encryption Key (DEK) para sa iyong cloud provider.
Pinamamahalaan ng cloud KMS mo ang master Key Encryption Key (KEK), na nakaimbak man sa loob ng iyong cloud o sa labas nito. Ikaw ang bahala sa implementasyon.
Humihiling kami ng encryption ng DEK mula sa iyong cloud, para makakuha ng encrypted DEK (eDEK). Kung nakaimbak sa labas ang iyong KEK, ang cloud mo ay gagawa lang ng karagdagang hop sa iyong external store, sa hakbang na hindi nakikita ng OpenAI.
Encryption
Sa pag-encrypt, ang iyong data ay ine-encrypt gamit ang DEK at ang eDEK ay iniimbak bilang metadata sa file.

Decryption
Sa pagde-decrypt, hinihiling naming i-decrypt ng cloud KMS mo ang eDEK tungo sa DEK, at dini-decrypt namin ang data gamit ang DEK.

Mahahalagang Terminong
Data Encryption Key (DEK) - ang key na nag-e-encrypt sa iyong data.
Encrypted Data Encryption Key (eDEK) - ang naka-encrypt na DEK, na binubuo ng iyong KMS
Key Encryption Key (KEK) - ang master key na pinamamahalaan mo na nag-e-encrypt ng DEK -> eDEK at nagde-decrypt ng eDEK -> DEK. Ang key na ito ay laging nananatili sa labas ng mga system ng OpenAI.
Mga high-level na kinakailangan para sa implementasyon
Sa iyong cloud provider
Gumawa ng bagong key sa iyong cloud KMS (Azure, AWS, o GCP)
Gumawa ng custom, limitadong policy na may mga pahintulot na Encrypt/Decrypt sa KMS
Gumawa ng trust policy (AWS), workload identity (GCP) o service principal (para sa Azure) para sa OpenAI
Magtalaga sa OpenAI ng role na may limitadong policy para ma-access ang iyong KMS
Sa mga platform ng OpenAI
ChatGPT Enterprise
Gumawa ng sandbox na ChatGPT workspace para sa testing.
API
Sa iyong OpenAI dashboard, gumawa ng bagong project kung saan ilalapat ang encryption.
Mga function na partikular sa provider
Para sa AWS, ang OpenAI ay:
Tatawag ng AssumeRole gamit ang ExternalID
Para sa GCP, ang OpenAI ay:
Tatawag sa iyong STS endpoint mula sa isang OpenAI GCP account
Gagamitin ang GCP access token para tawagin ang encrypt/decrypt sa iyong KMS.
Para sa Azure, ang OpenAI ay:
Hihiling ng access token para sa vault ng iyong Azure tenant
Gagamitin ang access token na iyon para tawagin ang encrypt/decrypt sa iyong Key Vault.
Impormasyong kailangan mo mula sa OpenAI
Authentication
Kakailanganin mong kilalanin ang mga federated identity token ng OpenAI para sa AWS at GCP. Para sa Azure, kakailanganin mong kilalanin ang application id ng OpenAI para sa app registration nito.
Buod ng mga parameter sa authentication
| OpenAI AWS principal | arn:aws:iam::790389265272:role/EnterpriseKeyManagement |
| OpenAI GCP service account id | 105900137572174660365 |
| OpenAI Azure application id | 20a14814-5ab7-4612-a671-1382b412bf93 |
Kinakailangang impormasyon habang ipinapatupad batay sa iyong cloud provider
Para sa AWS, dapat kang mag-set up ng trust policy na kumikilala sa:
Principal ng OpenAI (account number + role)
Isang ExternalID na iyong OpenAI project id
Para sa GCP, dapat kang mag-set up ng workload identity na kumikilala sa:
Service account ID ng OpenAI
Isang audience na iyong OpenAI project id
Para sa Azure, dapat kang gumawa ng service principal sa iyong Azure tenant para sa app registration ng OpenAI
Gumawa ng isa para sa application client id ng OpenAI: 20a14814-5ab7-4612-a671-1382b412bf9
Magagawa mo ito sa pamamagitan ng pag-post sa https://graph.microsoft.com/v1.0/servicePrincipals endpoint.
Authorization
Kakailanganin mong gumawa ng policy na nagpapahintulot sa identity ng OpenAI na magkaroon ng limitadong access sa iyong KMS.
| AWS | GCP | Azure |
| kms:Decryptkms:Encrypt | cloudkms.cryptoKeyVersions.useToDecryptcloudkms.cryptoKeyVersions.useToEncrypt | Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action |
Iba pa
Sa Azure, para sa Key type (key encryption algorithm), piliin ang RSA, hindi EC.
Impormasyong kailangan ng OpenAI mula sa iyo
Sundin ang mga tagubilin sa doc na ito upang irehistro ang iyong KMS sa OpenAI. Narito ang buod ng mga parameter na kailangan mong ibigay.
Kaugnay ng auth
AWS
IAM Role ARN - role na gagamitin ng OpenAI (halimbawa: arn:aws:iam::123456789:role/role-name)
ExternalID - ang ID ng iyong organisasyon sa OpenAI
GCP
Workload Identity Project Number (halimbawa: 123456789)
Workload Identity Pool ID
Workload Identity Provider ID
Pinapayagang audience: ang ID ng iyong organisasyon sa OpenAI
Azure
Tenant ID
| AWS | GCP | Azure | |
| Kaugnay ng auth | Tenant ID | ||
| Kaugnay ng KMS | KMS ARN - (halimbawa: arn:aws:kms:REGION:ACCOUNT_NUMBER:key:KEY_UUID) | KMS Project ID (halimbawa: adjective-noun-12345)Pangalan ng KMS key ringPangalan ng KMS keyLokasyon ng KMS key (halimbawa: us-east1) | Vault URI (halimbawa: https://your-vault-name.vault.azure.net/)Pangalan ng Key |
Pagkatapos mong irehistro ang iyong KMS sa OpenAI, patuloy na sundin ang mga tagubilin sa doc upang i-activate ang iyong EKM config sa isang API project. Gumawa ng bagong OpenAI API project para sa mga layunin ng pagsubok.
Mga gabay sa pagpapatupad na partikular sa provider
Para sa sunod-sunod na gabay, tingnan ang mga kaukulang link sa ibaba. Pakitandaan na nakatuon ang mga ito sa mga kinakailangan sa integrasyon sa OpenAI, at hindi nilalayong magsilbing komprehensibong gabay sa iyong buong environment
Mga hindi suportadong feature kapag naka-enable ang EKM
Sa paunang release na ito, hindi available ang mga sumusunod na feature kapag naka-enable ang EKM:
Apps na may sync
Mga feature na hindi Generally Available (ibig sabihin, anumang nasa beta/alpha pa)
