Prezentare generală
Enterprise Key Management (EKM) permite OpenAI să cripteze datele folosind o cheie principală pe care o controlați. Acest document arată cum să vă configurați contul AWS pentru a acorda OpenAI permisiuni limitate pe KMS-ul dvs.

Pași
1. Creați o cheie KMS nouă
Accesați KMS -> Customer managed keys, apoi faceți clic pe Create Key
Selectați un algoritm de criptare simetric
După ce cheia este creată, notați ARN-ul ei. Formatele acceptate includ arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, sau ...:alias/<alias_name>

2. Creați o politică personalizată pentru acces limitat la cheia KMS
Accesați IAM -> Policies, apoi faceți clic pe Create Policy
La pasul Specify permissions, selectați JSON și introduceți următoarele pentru a acorda politicii acțiuni de acces KMS. Asigurați-vă că înlocuiți YOUR_KMS_ARN cu ARN-ul cheii pe care ați creat-o.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": <YOUR_KMS_ARN>
}
]
}
3. Creați un rol IAM pe care OpenAI să și-l poată asuma și atribuiți-l politicii cu acces limitat la KMS-ul dvs.
OpenAI va apela AssumeRole dintr-un cont AWS deținut de OpenAI. Acest pas recunoaște că principalul AWS al OpenAI poate asuma rolul limitat pentru accesarea KMS-ului dvs.
Accesați IAM -> Roles, apoi faceți clic pe Create Role
La pasul Select trusted entity, selectați Custom trust policy

Introduceți următoarele în Custom trust policy pentru a permite accesul principalului AWS al OpenAI.
Principalul este principalul AWS al OpenAI - arn:aws:iam::790389265272:role/EnterpriseKeyManagement
Indicați ce Externald ar trebui să transmită OpenAI în timpul procesului AssumeRole.
Pentru ChatGPT sau API, puteți folosi id-ul organizației (org-xxx) asociat cu spațiul dvs. de lucru - https://platform.api.openai.org/settings/organization/general
Pentru API, puteți introduce un ID de proiect API specific pentru mai multă granularitate
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::790389265272:role/EnterpriseKeyManagement"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": [
<ID_UL_ORGANIZAȚIEI_DVS_OPENAI>,
]
}
}
}
]
}
La pasul Add permissions, căutați numele politicii IAM pe care ați creat-o la pasul anterior. Faceți clic pe caseta de selectare de lângă numele politicii, apoi faceți clic pe Next.

În secțiunea Name, review, and create, selectați orice nume pentru rol.
4. Aplicați orice restricții suplimentare în conformitate cu propriile practici de securitate
Mai sus sunt informațiile minime necesare de care OpenAI are nevoie pentru a configura EKM. Sunteți liber să aplicați politici sau restricții suplimentare pentru chei, în conformitate cu propriile practici interne de securitate, atât timp cât OpenAI poate apela operațiunile de criptare și decriptare pe KMS-ul dvs. Când apelați punctul final de înregistrare a cheii cu OpenAI descris mai jos, vă vom valida configurarea.
După finalizarea pașilor de mai sus
ChatGPT Enterprise
Vă rugăm să luați legătura cu persoana dvs. de contact de la OpenAI și să transmiteți următoarele:
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
ARN-ul rolului pe care OpenAI îl va asuma în cloudul dvs.
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"
ARN-ul Key Management System pentru cheia principală pe care o gestionați
Vom activa EKM pentru organizația/spațiul dvs. de lucru ChatGPT.
API
Înregistrați cheia externă la OpenAI
Urmați instrucțiunile din această referință API Chei externe în Management API
Mai întâi, înregistrați cheia externă la nivelul organizației OpenAI, ceea ce va genera un ID de cheie externă.
La acest pas, vom valida că datele introduse sunt valide și că ne putem autentifica la KMS-ul dvs.
Acest lucru nu va adăuga încă EKM la proiectul dvs. 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": "Config 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": <id-ul organizației sau id-ul proiectului>
}'Apoi, creați un proiect OpenAI asociat cu cheia externă. După aceasta, EKM este activat pentru proiectul dvs.
Corpul răspunsului acestui apel API vă va oferi ID-ul proiectului (proj_xxx)
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Un proiect oarecare",
"external_key_id": "extkey_xxxx"
}'
