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

שלבים
1. צרו זהות מאוחדת עבור OpenAI
OpenAI תנפיק אסימון זהות מחשבון GCP שבבעלותה. האסימון ייראה בערך כך.
הערכים של azp ושל sub הם מזהה חשבון השירות של OpenAI ב-GCP
הערך של aud הוא מספר הזהות הארגוני שלכם ב-OpenAI. אפשר גם לבחור קהל יעד אחר, כמו מזהה הפרויקט שלכם ב-OpenAI — ראו את ההוראות בהמשך
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}שלב זה מגדיר הכרה בטענות שבאסימון הזהות, ומאפשר לשירות STS שלכם ב-GCP להנפיק אסימון גישה כאשר אסימון הזהות הזה מוצג לו.
עברו אל IAM וניהול -> איחוד זהויות של עומסי עבודה ולחצו על יצירת מאגר

בשלב יצירת מאגר זהויות, הזינו שם כלשהו בשדה שם המאגר.
בשלב הוספת ספק למאגר:
תחת בחירת ספק, בחרו OpenID Connect (OIDC)
הזינו שם כלשהו בשדה שם הספק.
בקטע מנפיק (כתובת URL), הזינו https://accounts.google.com
בקטע קהלי יעד
בחרו קהלי יעד מורשים
הזינו את קהל היעד שעל OpenAI לציין כשנעביר לכם אסימון.
עבור ChatGPT או API: אפשר להזין את מספר הזהות הארגוני ב-API של OpenAI (org-xxx)
עבור API: אפשר להזין מזהה של פרויקט API מסוים כדי להגדיר קהל יעד ממוקד יותר.

בקטע מיפוי מאפיינים
עבור google.subject, הזינו assertion.sub

בקטע תנאים למאפיינים
כעת מאגר הזהויות של עומסי העבודה וספק הזהויות של עומסי העבודה שלכם אמורים להופיע בדף https://console.cloud.google.com/iam-admin/workload-identity-pools
מזהה מאגר הזהויות של עומסי העבודה

מזהה ספק הזהויות של עומסי העבודה

2. ודאו ש-KMS מופעל
עברו אל https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview כדי להפעיל את KMS. אין חובה ליצור את ה-KMS באותו פרויקט GCP שבו הגדרתם הכרה בזהות המאוחדת של OpenAI. עם זאת, אם מדובר בפרויקטים שונים, שירות KMS חייב לכל הפחות להיות מופעל בשניהם.
3. צרו מפתח KMS חדש
עברו אל אבטחה -> הגנה על נתונים > ניהול מפתחות
בכרטיסייה סקירה כללית, לחצו על יצירת צרור מפתחות
בחרו שם כלשהו לצרור המפתחות שלכם
תחת מטרה ואלגוריתם, בחרו הצפנה ופענוח סימטריים

לאחר יצירת צרור המפתחות, הוא אמור להופיע בכרטיסייה צרורות מפתחות. לחצו על צרור המפתחות.
בפרטי צרור המפתחות, לחצו על יצירת מפתח
בחרו שם כלשהו למפתח שלכם
4. צרו תפקיד עם הרשאות מוגבלות לפעולות הצפנה ופענוח ב-KMS
עברו אל IAM וניהול -> תפקידים -> יצירת תפקיד
הזינו כותרת ומזהה כלשהם לתפקיד
לחצו על הוספת הרשאות, ואז הוסיפו את ההרשאות הבאות
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. שייכו את הזהות המאוחדת של OpenAI לתפקיד ה-KMS בעל ההרשאות המוגבלות לפעולות הצפנה ופענוח
עברו אל אבטחה -> הגנה על נתונים > ניהול מפתחות
לחצו על שם צרור המפתחות שלכם, ואז על שם המפתח כדי לעבור לדף פרטי המפתח.
לחצו על הכרטיסייה הרשאות, ואז על הכפתור הענקת גישה

שייכו את הזהות המאוחדת של OpenAI לתפקיד המותאם אישית שיצרתם קודם
בקטע הוספת ישויות אבטחה, הזינו principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
בקטע הקצאת תפקידים, בחרו בתפקיד המותאם אישית שיצרתם בשלב הקודם עבור הרשאות EKM מוגבלות
6. החילו הגבלות נוספות בהתאם לנוהלי האבטחה שלכם
המידע שלעיל הוא המידע המינימלי הנדרש ל-OpenAI לצורך הגדרת EKM. אפשר להחיל כללי מדיניות או הגבלות נוספים על המפתחות בהתאם לנוהלי האבטחה הפנימיים שלכם, כל עוד OpenAI יכולה להפעיל פעולות הצפנה ופענוח ב-KMS שלכם. כשתשלחו בקשה ל-endpoint לרישום מפתחות ב-OpenAI המתואר בהמשך, נאמת את ההגדרות שלכם.
לאחר השלמת השלבים שלעיל
ChatGPT Enterprise
פנו לאיש הקשר שלכם ב-OpenAI ושתפו את הפרטים הבאים:
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"kms_project_id": "adjective-noun-12345",
"kms_key_name": "openai-kms-key",
"kms_key_ring_name": "openai-kms-key-ring",
"kms_key_location": "us-east1"
האזור שבו נמצא המפתח הראשי של מערכת ניהול המפתחות שלכם
נפעיל EKM עבור הארגון או ה-workspace שלכם ב-ChatGPT.
API
רשמו את המפתח החיצוני שלכם ב-OpenAI
פעלו לפי ההוראות בתיעוד ה-API: מפתחות חיצוניים ב-API לניהול
תחילה, רשמו את המפתח החיצוני שלכם ברמת הארגון ב-OpenAI. פעולה זו תיצור מזהה מפתח חיצוני.
בשלב זה, נאמת את ההגדרות שלכם ב-GCP על ידי בדיקה שאנחנו יכולים לבצע אימות מול ה-KMS שלכם.
פעולה זו עדיין לא תוסיף EKM לפרויקט שלכם ב-OpenAI.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "gcp",
"name": "GCP EKM Config",
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <your org id or project id>,
"kms_project_id": "adjective-noun-12345",
"kms_key_name": "openai-kms-key",
"kms_key_ring_name": "openai-kms-key-ring",
"kms_key_location": "us-east1"
}'לאחר מכן, צרו פרויקט ב-OpenAI המשויך למפתח החיצוני. לאחר שלב זה, 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"
}'