OpenAI
این صفحه به‌صورت ماشینی ترجمه شده است. مقاله اصلی انگلیسی را مشاهده کنید.

دستورالعمل‌های یکپارچه‌سازی OpenAI / AWS EKM

دستورالعمل‌های گام‌به‌گام برای راه‌اندازی AWS و فعال‌سازی EKM

به‌روزرسانی: 11 days ago

نمای کلی

مدیریت کلید سازمانی (EKM) به OpenAI امکان می‌دهد داده‌ها را با استفاده از کلید اصلی‌ای که شما کنترل می‌کنید رمزگذاری کند. این سند نشان می‌دهد چگونه حساب AWS خود را تنظیم کنید تا به OpenAI مجوزهای محدودی روی KMS خود بدهید.

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

مراحل

۱. یک کلید KMS جدید ایجاد کنید

  1. به KMS -> Customer managed keys بروید، سپس روی ایجاد کلید کلیک کنید.

  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

۲. یک سیاست سفارشی برای دسترسی محدود به کلید KMS ایجاد کنید

  1. به IAM -> Policies بروید، سپس روی ایجاد سیاست کلیک کنید.

  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>
        }
    ]
}

۳. یک نقش IAM ایجاد کنید تا OpenAI آن را به عهده بگیرد، و آن را به سیاستی با دسترسی محدود به KMS خود اختصاص دهید

OpenAI از یک حساب AWS متعلق به OpenAI، AssumeRole را فراخوانی خواهد کرد. این مرحله به principal مربوط به AWS متعلق به OpenAI اجازه می‌دهد نقش محدود را برای دسترسی به KMS شما به عهده بگیرد.

  1. به IAM -> Roles بروید، سپس روی ایجاد نقش کلیک کنید.

  2. در مرحله انتخاب موجودیت مورد اعتماد، سیاست اعتماد سفارشی را انتخاب کنید.

AWS IAM Select trusted entity screen with Custom trust policy selected

سپس، برای اجازه دادن به دسترسی به principal مربوط به AWS متعلق به OpenAI، موارد زیر را در سیاست اعتماد سفارشی وارد کنید.

  • این principal همان principal مربوط به AWS متعلق به OpenAI است: arn:aws:iam::790389265272:role/EnterpriseKeyManagement.

  • مشخص کنید OpenAI در فرایند AssumeRole کدام ExternalId را باید ارسال کند.

    • برای 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

در پایان، در بخش نام‌گذاری، بررسی و ایجاد، هر نام نقشی را که می‌خواهید انتخاب کنید.

۴. هر محدودیت اضافی را مطابق با رویه‌های امنیتی خود اعمال کنید

موارد بالا حداقل اطلاعات موردنیاز برای راه‌اندازی EKM توسط OpenAI است. شما آزادید سیاست‌ها یا محدودیت‌های اضافی کلید را مطابق با رویه‌های امنیتی داخلی خود اعمال کنید، به شرطی که 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

کلید خارجی خود را در 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"
}'

آیا این مقاله مفید بود؟