ภาพรวม
Enterprise Key Management (EKM) ช่วยให้ OpenAI เข้ารหัสข้อมูลโดยใช้มาสเตอร์คีย์ที่คุณควบคุม เพื่อให้ OpenAI เรียกใช้การดำเนินการเข้ารหัส/ถอดรหัสบน Key Vault ของคุณได้ เราจะต้องได้รับสิทธิ์การเข้าถึง เอกสารนี้แสดงวิธีตั้งค่าบัญชี Azure ของคุณ เพื่อให้ OpenAI สามารถรับบทบาทที่มีสิทธิ์ Key Vault ได้

ขั้นตอน
1. สร้าง service principal สำหรับ OpenAI ในบัญชีของคุณ
รับ access token
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_IDสร้าง service principal - appId ในคำขอด้านล่างคือ application client id ของ OpenAI การดำเนินการนี้จะสร้าง principal ที่มีชื่อที่แสดงว่า “EKM - OpenAI Azure” - โปรดจำชื่อนี้ไว้สำหรับขั้นตอนถัดไป
คำแนะนำการผสานรวม OpenAI / Azure EKM - สร้าง service principal
curl -X POST https://graph.microsoft.com/v1.0/servicePrincipals \
-H "Authorization: Bearer $TOKEN_FROM_ABOVE" \
-H "Content-Type: application/json" \
–d '{"appId": "20a14814-5ab7-4612-a671-1382b412bf93"}'2. สร้างบทบาทแบบกำหนดเองสำหรับการเข้าถึง KMS แบบจำกัด
ไปที่ Subscriptions -> Access Control (IAM)
ในดรอปดาวน์ + Add ให้เลือก Add custom role
ไปที่แท็บ JSON คลิก Edit แล้วเพิ่มรายการต่อไปนี้:
ชื่อบทบาทใดก็ได้ - โปรดจำชื่อที่คุณเลือกไว้
สิทธิ์ต่อไปนี้ใน dataActions:
Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/actionMicrosoft.KeyVault/vaults/keys/read

3. สร้าง Key Vault + คีย์
หากคุณยังไม่มี ให้สร้าง Key Vault ใหม่ ในการสมัครใช้งานเดียวกันกับที่คุณเพิ่งสร้างบทบาทแบบกำหนดเอง
ใน Key Vault นั้น ให้สร้างคีย์ใหม่:
ไปที่ Key Vault -> Objects -> Keys แล้วคลิก Generate/Import
ภายใต้ Options ให้เลือก Generate

เลือก RSA สำหรับอัลกอริทึมการเข้ารหัส
คุณสามารถเลือกขนาดคีย์ RSA ใดก็ได้
ระบุชื่อคีย์ในรูปแบบต่อไปนี้:
<org-xxx>--<any_name>โดยorg-xxxคือ ID องค์กร OpenAI ของคุณ ซึ่งดูได้ที่ https://platform.openai.com/settings/organization/general

หากคุณไม่สามารถดูหรือสร้างคีย์ได้ โปรดตรวจสอบว่าคุณมีบทบาท Key Vault Administrator สิ่งนี้จำเป็นแม้ว่าคุณจะมีบทบาท Owner อยู่แล้วก็ตาม หากต้องการรับการกำหนดบทบาท:
ไปที่ Key Vault -> Access Control (IAM)
คลิก Add -> Add role assignment

4. สร้างการกำหนดบทบาทสำหรับ OpenAI service principal + KMS แบบกำหนดเองใหม่ + คีย์ใหม่
ไปที่ Key Vault -> Objects -> Keys แล้วคลิกแถวของคีย์ที่คุณสร้างไว้
ไปที่ Access control (IAM) สำหรับคีย์ที่คุณเพิ่งคลิก (ไม่ใช่ key vault ของคุณ)
ในดรอปดาวน์ + Add ให้เลือก Add role assignment

ในแท็บ Role ให้เลือกชื่อบทบาทแบบกำหนดเองที่คุณเพิ่งสร้าง

ในแท็บ Members:
คลิก “+ Select members”
พิมพ์ “ekm -” ในแถบค้นหา จากนั้น OpenAI service principal ที่คุณสร้างในขั้นตอนที่ 1 ควรโหลดขึ้นมา

5. ใช้ข้อจำกัดเพิ่มเติมใดๆ ตามแนวทางปฏิบัติด้านความปลอดภัยของคุณเอง
ข้อมูลข้างต้นคือข้อมูลขั้นต่ำที่ OpenAI ต้องใช้ในการตั้งค่า EKM คุณสามารถใช้นโยบายคีย์หรือข้อจำกัดเพิ่มเติมตามแนวทางปฏิบัติด้านความปลอดภัยภายในของคุณเองได้ ตราบใดที่ OpenAI สามารถเรียกใช้การดำเนินการเข้ารหัสและถอดรหัสบน KMS ของคุณได้ เมื่อคุณเรียก endpoint การลงทะเบียนคีย์กับ OpenAI ที่อธิบายไว้ด้านล่าง เราจะตรวจสอบการตั้งค่าของคุณ
หลังจากทำขั้นตอนข้างต้นเสร็จแล้ว
ChatGPT Enterprise
โปรดติดต่อผู้ติดต่อ OpenAI ของคุณและแชร์ข้อมูลต่อไปนี้:
"tenant_id": "<YOUR_AZURE_TENANT_UUID>"
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
"key_name": "<YOUR_KEY_NAME>"
ชื่อของมาสเตอร์คีย์ Azure Key Vault ที่คุณจัดการ
ชื่อคีย์ต้องอยู่ในรูปแบบ <org-xxx>--<any_name> โดย org-xxx คือ ID องค์กร OpenAI ของคุณ ซึ่งดูได้ที่ https://platform.openai.com/settings/organization/general
เราจะเปิดใช้งาน EKM สำหรับองค์กร/เวิร์กสเปซ ChatGPT ของคุณ
API
ลงทะเบียนคีย์ภายนอกของคุณกับ OpenAI
ทำตามคำแนะนำในข้อมูลอ้างอิง API นี้ คีย์ภายนอกใน Management API
ขั้นแรก ลงทะเบียนคีย์ภายนอกของคุณในระดับองค์กร OpenAI ซึ่งจะสร้าง ID คีย์ภายนอกในรูปแบบ extkey_xxx
ในขั้นตอนนี้ เราจะตรวจสอบว่าอินพุตของคุณถูกต้องและเราสามารถยืนยันตัวตนกับ KMS ของคุณได้
ขั้นตอนนี้จะยังไม่เพิ่ม EKM ลงในโปรเจกต์ OpenAI ของคุณ
# This generates an external key ID of the form extkey_xxx
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "azure",
"name": "<ANY_FRIENDLY_NAME>",
"tenant_id": "<YOUR_AZURE_TENANT_UUID>",
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/",
"key_name": "<YOUR_KEY_NAME>"
}'จากนั้นสร้างโปรเจกต์ 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"
}'