סקירה כללית
ניהול מפתחות ארגוני (EKM) מאפשר ל-OpenAI להצפין נתונים באמצעות מפתח ראשי שבשליטתכם. כדי ש-OpenAI תוכל לבצע פעולות הצפנה ופענוח בכספת המפתחות שלכם, יש להעניק לנו הרשאת גישה. מסמך זה מסביר כיצד להגדיר את חשבון Azure שלכם כך ש-OpenAI תוכל לפעול בתפקיד בעל הרשאות ל-Key Vault.

שלבים
1. צרו מנהל שירות עבור OpenAI בחשבון שלכם
קבלו אסימון גישה
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_IDצרו את מנהל השירות — appId בבקשה שלהלן הוא מזהה הלקוח של היישום של OpenAI. פעולה זו תיצור מנהל שירות בשם התצוגה ״EKM - OpenAI Azure״ — זכרו את השם להמשך.
הוראות לשילוב EKM בין OpenAI ל-Azure — יצירת מנהל שירות
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
עברו אל מינויים -> בקרת גישה (IAM)
בתפריט הנפתח + הוספה, בחרו הוספת תפקיד מותאם אישית
עברו לכרטיסייה JSON, לחצו על עריכה והוסיפו את הפרטים הבאים:
שם תפקיד לבחירתכם — זכרו את השם שבחרתם
ההרשאות הבאות תחת dataActions:
Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/actionMicrosoft.KeyVault/vaults/keys/read

3. צרו כספת מפתחות ומפתח
אם עדיין אין לכם כספת מפתחות, צרו כספת מפתחות חדשה באותו מינוי שבו יצרתם את התפקיד המותאם אישית.
צרו מפתח חדש בכספת המפתחות הזו:
עברו אל Key Vault -> אובייקטים -> מפתחות, ואז לחצו על יצירה/ייבוא
תחת אפשרויות, בחרו יצירה

בחרו RSA כאלגוריתם ההצפנה.
ניתן לבחור כל גודל של מפתח RSA
הזינו שם מפתח בתבנית הבאה:
<org-xxx>--<any_name>, כאשרorg-xxxהוא מספר הזהות הארגוני שלכם ב-OpenAI, שאותו ניתן למצוא בכתובת https://platform.openai.com/settings/organization/general

אם אינכם יכולים להציג או ליצור מפתח, ודאו שהוקצה לכם התפקיד מנהל כספת מפתחות. תפקיד זה נדרש גם אם יש לכם תפקיד בעלים. כדי להקצות לעצמכם את התפקיד:
עברו אל Key Vault -> בקרת גישה (IAM)
לחצו על הוספה -> הוספת הקצאת תפקיד

4. צרו הקצאת תפקיד עבור מנהל השירות של OpenAI, ה-KMS המותאם אישית החדש והמפתח החדש
עברו אל Key Vault -> אובייקטים -> מפתחות, ואז לחצו על השורה של המפתח שיצרתם
עברו אל בקרת גישה (IAM) של המפתח שעליו לחצתם (לא של כספת המפתחות).
בתפריט הנפתח + הוספה, בחרו הוספת הקצאת תפקיד

בכרטיסייה תפקיד, בחרו את שם התפקיד המותאם אישית שיצרתם.

בכרטיסייה חברים:
לחצו על ״+ בחירת חברים״
הקלידו ״ekm -״ בשורת החיפוש. מנהל השירות של OpenAI שיצרתם בשלב 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 הוא מספר הזהות הארגוני שלכם ב-OpenAI, שאותו ניתן למצוא בכתובת https://platform.openai.com/settings/organization/general
נפעיל EKM עבור הארגון או ה-workspace שלכם ב-ChatGPT.
API
רשמו את המפתח החיצוני שלכם ב-OpenAI
פעלו לפי ההוראות בתיעוד ה-API: מפתחות חיצוניים ב-API לניהול
תחילה, רשמו את המפתח החיצוני שלכם ברמת הארגון ב-OpenAI. הרישום ייצור מזהה מפתח חיצוני בתבנית 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 זו יכלול את מזהה הפרויקט (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"
}'