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

שלבים
1. צרו מפתח KMS חדש
עברו אל KMS -> מפתחות בניהול הלקוח, ולאחר מכן לחצו על יצירת מפתח.
בחרו אלגוריתם הצפנה סימטרי.
לאחר יצירת המפתח, רשמו את ה-ARN שלו. הפורמטים הנתמכים כוללים
arn:aws:kms:<region>:<account_number>:key/<uuid>,...:key/mrk-*או...:alias/<alias_name>.

2. צרו מדיניות מותאמת אישית לגישה מוגבלת למפתח KMS
עברו אל IAM -> מדיניות, ולאחר מכן לחצו על יצירת מדיניות.
בשלב הגדרת הרשאות, בחרו JSON והזינו את הקוד הבא כדי להוסיף למדיניות הרשאות לביצוע פעולות ב-KMS. הקפידו להחליף את YOUR_KMS_ARN ב-ARN של המפתח שיצרתם.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": <YOUR_KMS_ARN>
}
]
}3. צרו תפקיד IAM ש-OpenAI תוכל ליטול, וצרפו אליו את המדיניות שמאפשרת גישה מוגבלת ל-KMS שלכם
OpenAI תקרא ל-AssumeRole מחשבון AWS שבבעלותה. שלב זה מאפשר לישות ה-AWS של OpenAI ליטול את התפקיד המוגבל לצורך גישה ל-KMS שלכם.
עברו אל IAM -> תפקידים, ולאחר מכן לחצו על יצירת תפקיד.
בשלב בחירת ישות מהימנה, בחרו מדיניות אמון מותאמת אישית.

לאחר מכן, הזינו את הקוד הבא במדיניות אמון מותאמת אישית כדי לאפשר גישה לישות ה-AWS של OpenAI.
הישות היא ישות ה-AWS של OpenAI:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement.ציינו איזה ExternalId על OpenAI להעביר במהלך תהליך
AssumeRole.עבור ChatGPT או ה-API, השתמשו במספר הזהות הארגוני (org-xxx) המשויך ל-workspace שלכם: https://platform.api.openai.org/settings/organization/general.
עבור ה-API, ניתן להשתמש במזהה של פרויקט API מסוים לשליטה פרטנית יותר.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::790389265272:role/EnterpriseKeyManagement"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": [
<YOUR_OPENAI_ORGANIZATION_ID>,
]
}
}
}
]
}לאחר מכן, בשלב הוספת הרשאות, חפשו את שמה של מדיניות ה-IAM שיצרתם בשלב הקודם. סמנו את תיבת הסימון לצד שם המדיניות, ולאחר מכן לחצו על הבא.

לבסוף, במקטע מתן שם, סקירה ויצירה, בחרו שם כלשהו לתפקיד.
4. החילו הגבלות נוספות בהתאם לנוהלי האבטחה שלכם
המידע שלעיל הוא המידע המינימלי הנדרש ל-OpenAI לצורך הגדרת EKM. ניתן להחיל מדיניות מפתחות או הגבלות נוספות בהתאם לנוהלי האבטחה הפנימיים שלכם, כל עוד OpenAI יכולה להפעיל פעולות הצפנה ופענוח ב-KMS שלכם. כשתקראו ל-endpoint של OpenAI לרישום מפתחות, המתואר בהמשך, נבדוק שההגדרות שלכם תקינות.
לאחר השלמת השלבים שלעיל
ChatGPT Enterprise
פנו לאיש הקשר שלכם ב-OpenAI ושתפו את הפרטים הבאים:
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>"ה-ARN של התפקיד ש-OpenAI תיטול בענן שלכם.
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"ה-ARN במערכת ניהול המפתחות של המפתח הראשי שאתם מנהלים.
נפעיל EKM עבור הארגון או ה-workspace שלכם ב-ChatGPT.
API
רשמו את המפתח החיצוני שלכם ב-OpenAI
פעלו לפי ההוראות בתיעוד ה-API הבא: מפתחות חיצוניים ב-API לניהול.
תחילה, רשמו את המפתח החיצוני שלכם ברמת הארגון ב-OpenAI. פעולה זו תיצור מזהה למפתח החיצוני.
בשלב זה נוודא שהקלט שלכם תקין ושבאפשרותנו להזדהות מול ה-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": "aws",
"name": "AWS EKM Config",
"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": <your org id or project id>
}'לאחר מכן, צרו פרויקט ב-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"
}'