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

مراحل
۱. یک کلید KMS جدید ایجاد کنید
به KMS > کلیدهای مدیریتشده توسط مشتری بروید، سپس ایجاد کلید را انتخاب کنید.
یک الگوریتم رمزگذاری متقارن انتخاب کنید.
پس از ایجاد کلید، ARN آن را یادداشت کنید. قالبهای پشتیبانیشده عبارتاند از
arn:aws:kms:<region>:<account_number>:key/<uuid>،...:key/mrk-*یا...:alias/<alias_name>.

۲. یک خطمشی سفارشی برای دسترسی محدود به کلید KMS ایجاد کنید
به IAM > خطمشیها بروید، سپس ایجاد خطمشی را انتخاب کنید.
در مرحلهٔ تعیین مجوزها، JSON را انتخاب کنید و متن زیر را وارد کنید تا مجوز عملیات دسترسی به KMS در خطمشی تعریف شود. حتماً YOUR_KMS_ARN را با ARN کلیدی که ایجاد کردهاید جایگزین کنید.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": "<YOUR_KMS_ARN>"
}
]
}۳. یک نقش IAM برای استفادهٔ OpenAI ایجاد کنید و خطمشی دسترسی محدود به KMS خود را به آن اختصاص دهید
OpenAI از یک حساب AWS متعلق به خود، AssumeRole را فراخوانی میکند. این مرحله به هویت AWS متعلق به OpenAI اجازه میدهد برای دسترسی به KMS شما، نقش دارای مجوزهای محدود را بر عهده بگیرد.
به IAM > نقشها بروید، سپس ایجاد نقش را انتخاب کنید.
در مرحلهٔ انتخاب موجودیت مورد اعتماد، خطمشی اعتماد سفارشی را انتخاب کنید.

سپس متن زیر را در خطمشی اعتماد سفارشی وارد کنید تا به هویت AWS متعلق به OpenAI اجازهٔ دسترسی بدهید.
هویت موردنظر، هویت AWS متعلق به OpenAI است:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement.مشخص کنید OpenAI باید کدام ExternalId را طی فرایند
AssumeRoleارسال کند.برای ChatGPT یا API، از شناسهٔ سازمان (org-xxx) مرتبط با فضای کاری خود استفاده کنید: تنظیمات سازمان.
برای 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 را که در مرحلهٔ قبل ایجاد کردهاید جستوجو کنید. کادر انتخاب کنار نام خطمشی را علامت بزنید، سپس بعدی را انتخاب کنید.

در پایان، در بخش نامگذاری، بازبینی و ایجاد، نام دلخواهی برای نقش انتخاب کنید.
۴. هر محدودیت اضافی را مطابق با رویههای امنیتی خود اعمال کنید
موارد بالا حداقل اطلاعات موردنیاز برای راهاندازی 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 را دنبال کنید: کلیدهای خارجی در API مدیریت.
ابتدا کلید خارجی خود را در سطح سازمان OpenAI ثبت کنید؛ با این کار یک شناسهٔ کلید خارجی تولید میشود.
در این مرحله، بررسی میکنیم که اطلاعات ورودی شما معتبر باشد و بتوانیم نزد KMS شما احراز هویت کنیم.
این کار هنوز 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"
}'