نمای کلی
مدیریت کلید سازمانی (EKM) به شما امکان میدهد محتوای مشتریان خود را در OpenAI با کلیدهایی که توسط سامانه مدیریت کلید (KMS) خارجی خودتان مدیریت میشوند رمزگذاری کنید؛ این قابلیت هم برای ChatGPT Enterprise و هم برای API در دسترس است.
OpenAI از رمزگذاری Bring Your Own Key (BYOK) با حسابهای خارجی در AWS KMS، Google Cloud (GCP) و Azure Key Vault پشتیبانی میکند.
در حال حاضر، پیادهسازی EKM به فضاهای کاری Enterprise و Edu که نماینده حساب مشخصی در OpenAI دارند محدود است.
نحوه کار رمزگذاری EKM در OpenAI
جریان کلی
ما یک Data Encryption Key (DEK) برای ارائهدهنده ابر شما تولید میکنیم.
KMS ابری شما یک Key Encryption Key (KEK) اصلی را مدیریت میکند که یا در ابر شما ذخیره شده یا بهصورت خارجی نگهداری میشود. نحوه پیادهسازی به انتخاب شماست.
ما از ابر شما درخواست میکنیم DEK را رمزگذاری کند تا یک encrypted DEK (eDEK) به دست آید. اگر KEK شما بهصورت خارجی ذخیره شده باشد، ابر شما فقط یک پرش اضافه به مخزن خارجیتان انجام میدهد؛ مرحلهای که برای OpenAI شفاف نیست.
رمزگذاری
هنگام رمزگذاری، دادههای شما با DEK رمزگذاری میشوند و eDEK بهعنوان فراداده روی فایل ذخیره میشود.

رمزگشایی
هنگام رمزگشایی، درخواست میکنیم eDEK توسط KMS ابری شما به DEK رمزگشایی شود، و سپس دادهها را با DEK رمزگشایی میکنیم.

اصطلاحات کلیدی
Data Encryption Key (DEK) - کلیدی که دادههای شما را رمزگذاری میکند.
Encrypted Data Encryption Key (eDEK) - DEK رمزگذاریشده که توسط KMS شما تولید میشود
Key Encryption Key (KEK) - کلید اصلیای که شما مدیریت میکنید و DEK را به eDEK رمزگذاری و eDEK را به DEK رمزگشایی میکند. این کلید همیشه خارج از سامانههای OpenAI باقی میماند.
الزامات کلی پیادهسازی
در ارائهدهنده ابر شما
یک کلید جدید در KMS ابری خود (Azure، AWS یا GCP) ایجاد کنید
یک policy سفارشی و محدود با مجوزهای Encrypt/Decrypt روی KMS ایجاد کنید
برای OpenAI یک trust policy (AWS)، یک workload identity (GCP) یا یک service principal (برای Azure) ایجاد کنید
برای دسترسی به KMS خود، یک role با policy محدود به OpenAI اختصاص دهید
در پلتفرمهای OpenAI
ChatGPT Enterprise
برای اهداف آزمایشی، یک فضای کاری sandbox در ChatGPT ایجاد کنید.
API
در داشبورد OpenAI خود، یک پروژه جدید ایجاد کنید که رمزگذاری در آن اعمال خواهد شد.
عملکردهای مخصوص ارائهدهنده
برای AWS، OpenAI این کار را انجام میدهد:
AssumeRole را با یک ExternalID فراخوانی میکند
برای GCP، OpenAI این کار را انجام میدهد:
نقطه پایان STS شما را از یک حساب GCP متعلق به OpenAI فراخوانی میکند
از توکن دسترسی GCP برای فراخوانی encrypt/decrypt روی KMS شما استفاده میکند.
برای Azure، OpenAI این کار را انجام میدهد:
برای vault مستاجر Azure شما یک توکن دسترسی درخواست میکند
از آن توکن دسترسی برای فراخوانی encrypt/decrypt روی Key Vault شما استفاده میکند.
اطلاعاتی که از OpenAI نیاز دارید
احراز هویت
برای AWS و GCP باید توکنهای هویت فدرهشده OpenAI را شناسایی کنید. برای Azure، باید شناسه برنامه OpenAI را برای ثبت برنامه آن شناسایی کنید.
خلاصه پارامترهای احراز هویت
| اصل AWS در OpenAI | arn:aws:iam::790389265272:role/EnterpriseKeyManagement |
| شناسه حساب سرویس GCP در OpenAI | 105900137572174660365 |
| شناسه برنامه Azure در OpenAI | 20a14814-5ab7-4612-a671-1382b412bf93 |
اطلاعات لازم در طول پیادهسازی بر اساس ارائهدهنده ابری شما
برای AWS، باید یک سیاست اعتماد تنظیم کنید که موارد زیر را تشخیص دهد:
principal متعلق به OpenAI (شماره حساب + نقش)
یک ExternalID که همان شناسه پروژه OpenAI شماست
برای GCP باید یک workload identity تنظیم کنید که موارد زیر را تشخیص دهد:
شناسه حساب سرویس OpenAI
یک audience که همان شناسه پروژه OpenAI شماست
برای Azure باید برای ثبت برنامه OpenAI یک service principal در مستأجر Azure خود ایجاد کنید
برای شناسه کلاینت برنامه OpenAI یکی ایجاد کنید: 20a14814-5ab7-4612-a671-1382b412bf9
میتوانید این کار را با ارسال درخواست به نقطه پایان https://graph.microsoft.com/v1.0/servicePrincipals انجام دهید.
مجوزدهی
باید policyای ایجاد کنید که به هویت OpenAI اجازه دهد بهصورت محدود به KMS شما دسترسی پیدا کند.
| AWS | GCP | Azure |
| kms:Decryptkms:Encrypt | cloudkms.cryptoKeyVersions.useToDecryptcloudkms.cryptoKeyVersions.useToEncrypt | Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action |
سایر موارد
در Azure، برای نوع کلید (الگوریتم رمزگذاری کلید)، RSA را انتخاب کنید، نه EC.
اطلاعاتی که OpenAI از شما نیاز دارد
برای ثبت KMS خود در OpenAI، دستورالعملهای این سند را دنبال کنید. در اینجا خلاصهای از پارامترهایی که باید ارائه کنید آمده است.
مرتبط با احراز هویت
AWS
IAM Role ARN - نقشی که OpenAI بر عهده میگیرد (مثال: arn:aws:iam::123456789:role/role-name)
ExternalID - شناسه سازمان OpenAI شما
GCP
شماره پروژه Workload Identity (مثال: 123456789)
شناسه Workload Identity Pool
شناسه Workload Identity Provider
مخاطب مجاز: شناسه سازمان OpenAI شما
Azure
شناسه مستأجر
| AWS | GCP | Azure | |
| مرتبط با احراز هویت | شناسه مستأجر | ||
| مرتبط با KMS | KMS ARN - (مثال: arn:aws:kms:REGION:ACCOUNT_NUMBER:key:KEY_UUID) | شناسه پروژه KMS (مثال: adjective-noun-12345)نام key ring در KMSنام کلید KMSمکان کلید KMS (مثال: us-east1) | URI خزانه (مثال: https://your-vault-name.vault.azure.net/)نام کلید |
پس از ثبت KMS خود در OpenAI، برای فعالسازی پیکربندی EKM در یک پروژه API، دستورالعملهای سند را ادامه دهید. برای اهداف آزمایشی، یک پروژه API جدید در OpenAI ایجاد کنید.
راهنماهای پیادهسازی ویژه هر ارائهدهنده
برای راهنمایی گامبهگام، پیوندهای مربوطه را در زیر ببینید. لطفاً توجه داشته باشید که این موارد بر الزامات یکپارچهسازی با OpenAI تمرکز دارند و قرار نیست راهنمای جامعی برای کل محیط شما باشند
ویژگیهای پشتیبانینشده در صورت فعال بودن EKM
در صورت فعال بودن EKM، ویژگیهای زیر در دسترس نیستند:
ویژگیهایی که بهطور عمومی در دسترس نیستند، از جمله ویژگیهای در نسخه بتا یا آلفا.
