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

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

۲. یک سیاست سفارشی برای دسترسی محدود به کلید KMS ایجاد کنید
به IAM -> Policies بروید، سپس روی ایجاد سیاست کلیک کنید.
در مرحله تعیین مجوزها، 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 متعلق به OpenAI، AssumeRole را فراخوانی خواهد کرد. این مرحله به principal مربوط به AWS متعلق به OpenAI اجازه میدهد نقش محدود را برای دسترسی به KMS شما به عهده بگیرد.
به IAM -> Roles بروید، سپس روی ایجاد نقش کلیک کنید.
در مرحله انتخاب موجودیت مورد اعتماد، سیاست اعتماد سفارشی را انتخاب کنید.

سپس، برای اجازه دادن به دسترسی به 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ی را که در مرحله قبل ایجاد کردهاید جستوجو کنید. روی کادر انتخاب کنار نام سیاست کلیک کنید، سپس روی بعدی کلیک کنید.

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