OpenAI
הדף הזה תורגם באופן אוטומטי. לצפייה במאמר המקורי באנגלית.

הוראות לשילוב EKM בין OpenAI ל-AWS

הוראות שלב אחר שלב להגדרת משאבי AWS ולהפעלת EKM

עודכן: 5 days ago

סקירה כללית

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

AWS EKM integration flow between OpenAI EKM Service, your STS, your KMS, and your master KEK

שלבים

1. צרו מפתח KMS חדש

  1. עברו אל KMS -> מפתחות בניהול הלקוח, ולאחר מכן לחצו על יצירת מפתח.

  2. בחרו אלגוריתם הצפנה סימטרי.

  3. לאחר יצירת המפתח, רשמו את ה-ARN שלו. הפורמטים הנתמכים כוללים arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-* או ...:alias/<alias_name>.

AWS KMS customer managed key details page with key ID and ARN for test-kms

2. צרו מדיניות מותאמת אישית לגישה מוגבלת למפתח KMS

  1. עברו אל IAM -> מדיניות, ולאחר מכן לחצו על יצירת מדיניות.

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

AWS IAM Create policy page with Specify permissions open and the JSON policy editor selected
{
    "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 שלכם.

  1. עברו אל IAM -> תפקידים, ולאחר מכן לחצו על יצירת תפקיד.

  2. בשלב בחירת ישות מהימנה, בחרו מדיניות אמון מותאמת אישית.

AWS IAM Select trusted entity screen with Custom trust policy selected

לאחר מכן, הזינו את הקוד הבא במדיניות אמון מותאמת אישית כדי לאפשר גישה לישות ה-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 שיצרתם בשלב הקודם. סמנו את תיבת הסימון לצד שם המדיניות, ולאחר מכן לחצו על הבא.

AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected

לבסוף, במקטע מתן שם, סקירה ויצירה, בחרו שם כלשהו לתפקיד.

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 לניהול.

  1. תחילה, רשמו את המפתח החיצוני שלכם ברמת הארגון ב-OpenAI. פעולה זו תיצור מזהה למפתח החיצוני.

  2. בשלב זה נוודא שהקלט שלכם תקין ושבאפשרותנו להזדהות מול ה-KMS שלכם.

  3. פעולה זו עדיין לא תוסיף 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"
}'

האם המאמר הזה היה מועיל?