ภาพรวม
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_ID2. สร้าง 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. สร้าง custom role สำหรับการเข้าถึง KMS แบบจำกัด
ไปที่ Subscriptions -> Access Control (IAM)
ใต้เมนูแบบเลื่อนลง + Add ให้เลือก Add custom role
ไปที่แท็บ JSON คลิก Edit และเพิ่มข้อมูลต่อไปนี้
ตั้งชื่อ role ใดก็ได้ - โปรดจำชื่อที่คุณเลือกไว้
สิทธิ์ต่อไปนี้ใน dataActions
Microsoft.KeyVault/vaults/keys/encrypt/action
Microsoft.KeyVault/vaults/keys/decrypt/action
Microsoft.KeyVault/vaults/keys/read

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

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

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

5. ใช้ข้อจำกัดเพิ่มเติมตามแนวทางความปลอดภัยของคุณเอง
ข้อมูลข้างต้นคือข้อมูลขั้นต่ำที่ OpenAI ต้องใช้ในการตั้งค่า EKM คุณสามารถใช้ policy ของคีย์หรือข้อจำกัดเพิ่มเติมให้สอดคล้องกับแนวทางความปลอดภัยภายในของคุณได้ ตราบใดที่ OpenAI ยังสามารถเรียกใช้การดำเนินการเข้ารหัสและถอดรหัสบน KMS ของคุณได้ เมื่อคุณเรียก endpoint สำหรับลงทะเบียนคีย์กับ OpenAI ตามที่อธิบายไว้ด้านล่าง เราจะตรวจสอบการตั้งค่าของคุณ
หลังจากทำตามขั้นตอนข้างต้นเสร็จแล้ว
ChatGPT Enterprise
โปรดติดต่อผู้ประสานงาน OpenAI ของคุณและแชร์ข้อมูลต่อไปนี้:
"tenant_id": "<YOUR_AZURE_TENANT_UUID>"
UUID tenant ของ Azure ของคุณ
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
URI ของ Azure vault ที่มีคีย์หลักที่คุณจัดการ
"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 นี้ External Keys in the Management API
ก่อนอื่น ให้ลงทะเบียนคีย์ภายนอกของคุณในระดับองค์กร OpenAI ซึ่งจะสร้าง external key id ในรูปแบบ extkey_xxx
ในขั้นตอนนี้ เราจะตรวจสอบว่าข้อมูลที่คุณป้อนถูกต้องและเราสามารถยืนยันตัวตนกับ KMS ของคุณได้
การดำเนินการนี้จะยังไม่เพิ่ม EKM ให้กับโปรเจกต์ OpenAI ของคุณในตอนนี้
# คำสั่งนี้จะสร้าง external key ID ในรูปแบบ 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 ที่เชื่อมโยงกับ external key หลังจากนี้ EKM จะถูกเปิดใช้งานบนโปรเจกต์ของคุณ
response body ของการเรียก API นี้จะให้ ID โปรเจกต์แก่คุณ (proj_xxx)
คำแนะนำการผสานรวม OpenAI / Azure EKM - สร้างโปรเจกต์
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"
}'