OpenAI

إرشادات تكامل OpenAI / AWS EKM

إرشادات تفصيلية خطوة بخطوة لتوفير خطوة AWS وتفعيل نظام EKM

تم التحديث: 21 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. وتأكد من إدخال معرّف ARN الخاص بالمفتاح الذي أنشأته بدلًا من YOUR_KMS_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 مملوك لـ OpenAI. تتيح هذه الخطوة للمُعرّف الرئيسي لـ 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) المرتبط بمساحة عملك: 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 لديك. عند استدعاء نقطة نهاية تسجيل المفتاح في 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 لمنظمة/مساحة عمل ChatGPT الخاصة بك.

API

سجّل مفتاح API الخارجي لدى OpenAI

اتبع الإرشادات الواردة في مرجع API هذا المفاتيح الخارجية في واجهة Management 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"
}'

هل كانت هذه المقالة مفيدة؟