مرور کلی
مدیریت کلید سازمانی (EKM) به OpenAI امکان میدهد دادهها را با استفاده از یک کلید اصلی که شما کنترل میکنید رمزگذاری کند. برای اینکه OpenAI بتواند عملیات رمزگذاری/رمزگشایی را روی Key Vault شما فراخوانی کند، لازم است به ما دسترسی داده شود. این سند نشان میدهد چگونه حساب Azure خود را تنظیم کنید تا OpenAI بتواند نقشی با مجوزهای Key Vault را بر عهده بگیرد.

مراحل
۱. یک سرویس پرینسیپال برای OpenAI در حساب خود ایجاد کنید
یک توکن دسترسی دریافت کنید
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_IDسرویس پرینسیپال را ایجاد کنید؛ appId در درخواست زیر، شناسه کلاینت برنامه OpenAI است. این کار یک پرینسیپال با نام نمایشی «EKM - OpenAI Azure» ایجاد میکند؛ این نام را برای مراحل بعد به خاطر بسپارید.
دستورالعملهای یکپارچهسازی OpenAI / Azure EKM - ایجاد سرویس پرینسیپال
curl -X POST https://graph.microsoft.com/v1.0/servicePrincipals \
-H "Authorization: Bearer $TOKEN_FROM_ABOVE" \
-H "Content-Type: application/json" \
–d '{"appId": "20a14814-5ab7-4612-a671-1382b412bf93"}'۲. یک نقش سفارشی برای دسترسی محدود به KMS ایجاد کنید
به Subscriptions -> Access Control (IAM) بروید
در منوی کشویی + Add، گزینه Add custom role را انتخاب کنید
به زبانه JSON بروید، روی Edit کلیک کنید و موارد زیر را اضافه کنید:
هر نام نقشی؛ نامی را که انتخاب کردهاید به خاطر بسپارید
مجوزهای زیر در dataActions:
Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/actionMicrosoft.KeyVault/vaults/keys/read

۳. یک Key Vault + کلید ایجاد کنید
اگر از قبل ندارید، یک Key Vault جدید در همان اشتراکی ایجاد کنید که همین حالا نقش سفارشی خود را در آن ایجاد کردهاید.
در آن Key Vault، یک کلید جدید ایجاد کنید:
به Key Vault -> Objects -> Keys بروید، سپس روی Generate/Import کلیک کنید
در بخش Options گزینه Generate را انتخاب کنید

برای الگوریتم رمزگذاری، RSA را انتخاب کنید.
میتوانید هر اندازه کلید RSA را انتخاب کنید
یک نام کلید با قالب زیر ارائه کنید:
<org-xxx>--<any_name>که در آنorg-xxxشناسه سازمان OpenAI شماست و میتوانید آن را در https://platform.openai.com/settings/organization/general پیدا کنید

اگر نمیتوانید کلیدی را مشاهده یا ایجاد کنید، مطمئن شوید که نقش Key Vault Administrator را دارید. این مورد حتی اگر نقش Owner را داشته باشید نیز لازم است. برای اختصاص یافتن نقش:
به Key Vault -> Access Control (IAM) بروید
روی Add -> Add role assignment کلیک کنید

۴. یک انتساب نقش برای سرویس پرینسیپال OpenAI + KMS سفارشی جدید + کلید جدید ایجاد کنید
به Key Vault -> Objects -> Keys بروید، سپس روی ردیف کلیدی که ایجاد کردهاید کلیک کنید
به Access control (IAM) برای کلیدی که همین حالا روی آن کلیک کردید بروید (نه Key Vault شما).
در منوی کشویی + Add، گزینه Add role assignment را انتخاب کنید

در زبانه Role، نام نقش سفارشیای را که همین حالا ایجاد کردید انتخاب کنید.

در زبانه Members:
روی «+ Select members» کلیک کنید
در نوار جستوجو «ekm -» را تایپ کنید؛ سپس سرویس پرینسیپال OpenAI که در مرحله ۱ ایجاد کردهاید باید بارگذاری شود

۵. هرگونه محدودیت اضافی را مطابق با رویههای امنیتی خود اعمال کنید
موارد بالا حداقل اطلاعات موردنیاز OpenAI برای راهاندازی EKM است. تا زمانی که OpenAI بتواند عملیات رمزگذاری و رمزگشایی را روی KMS شما فراخوانی کند، میتوانید سیاستها یا محدودیتهای اضافی کلید را مطابق با رویههای امنیتی داخلی خود اعمال کنید. وقتی نقطه پایان ثبت کلید با OpenAI را که در ادامه توضیح داده شده فراخوانی میکنید، ما تنظیمات شما را اعتبارسنجی خواهیم کرد.
پس از تکمیل مراحل بالا
ChatGPT Enterprise
لطفاً با مخاطب خود در OpenAI تماس بگیرید و موارد زیر را به اشتراک بگذارید:
"tenant_id": "<YOUR_AZURE_TENANT_UUID>"
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
"key_name": "<YOUR_KEY_NAME>"
نام کلید اصلی Azure Key Vault که شما مدیریت میکنید
نام کلید باید به شکل <org-xxx>--<any_name> باشد، که در آن org-xxx شناسه سازمان OpenAI شماست که میتوانید آن را در https://platform.openai.com/settings/organization/general پیدا کنید
ما EKM را برای سازمان/فضای کاری ChatGPT شما فعال خواهیم کرد.
API
کلید خارجی خود را در OpenAI ثبت کنید
دستورالعملهای این مرجع API را دنبال کنید: کلیدهای خارجی در Management API
ابتدا، کلید خارجی خود را در سطح سازمان OpenAI ثبت کنید؛ این کار یک شناسه کلید خارجی به شکل extkey_xxx تولید میکند
در این مرحله، اعتبار ورودی شما و اینکه بتوانیم در KMS شما احراز هویت کنیم را بررسی میکنیم.
این کار هنوز EKM را به پروژه OpenAI شما اضافه نمیکند.
# This generates an external key ID of the form extkey_xxx
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "azure",
"name": "<ANY_FRIENDLY_NAME>",
"tenant_id": "<YOUR_AZURE_TENANT_UUID>",
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/",
"key_name": "<YOUR_KEY_NAME>"
}'سپس، یک پروژه 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"
}'