۱. همیشه برای هر یک از اعضای تیم در حسابتان از یک کلید API منحصربهفرد استفاده کنید.
کلید API کدی منحصربهفرد است که درخواستهای شما به API را شناسایی میکند. کلید API شما فقط برای استفادهٔ خودتان است. بهاشتراکگذاری کلیدهای API برخلاف شرایط استفاده است.
وقتی شروع به آزمایش API میکنید، ممکن است بخواهید دسترسی به آن را در اختیار تیمتان هم قرار دهید. OpenAI از بهاشتراکگذاری کلیدهای API پشتیبانی نمیکند. لطفاً اعضای جدید را از صفحهٔ اعضا به حسابتان دعوت کنید تا پس از ورود، بهسرعت کلید منحصربهفرد خود را دریافت کنند. همچنین میتوانید برای هر کلید API مجوزهای جداگانه تعیین کنید.
۲. کلیدهای API را با تاریخ انقضا بسازید و فرایندی برای تعویض دورهای آنها تعریف کنید
میتوانید برای کلیدهای پروژه هنگام ساخت، تاریخ انقضا تعیین کنید؛ پس از آن تاریخ، هر درخواستی که از این کلیدها استفاده کند رد میشود. اکیداً توصیه میکنیم کلیدها را با تاریخ انقضا بسازید و فرایندی منظم برای تعویض دورهای آنها تعریف کنید. پیش از انقضای هر کلید، کلید جایگزینی بسازید و برنامههایتان را برای استفاده از آن بهروزرسانی کنید. پس از اطمینان از کارکرد درست کلید جایگزین، کلید قدیمی را باطل کنید. این اقدامات میتوانند پیامدهای افشای کلیدهای API را تا حد زیادی کاهش دهند.
مدیران میتوانند در تنظیمات پلتفرم، حداکثر مدت اعتبار کلیدهای API را در سطح سازمان یا پروژه تعیین و اعمال کنند. کلیدهای جدید باید در محدودهٔ مجاز تنظیم شوند تا نتوانند بهطور نامحدود معتبر بمانند. سقف مدت اعتبار در پروژهها نمیتواند از سقف سازمان بیشتر باشد.
برای بارهای کاری پشتیبانیشده، بهجای ذخیرهٔ کلید API OpenAI با اعتبار بلندمدت، از فدراسیون هویت بار کاری استفاده کنید. بار کاری شما با ارائهٔ هویتی از یک ارائهدهندهٔ مورداعتماد، توکن دسترسی کوتاهمدت OpenAI دریافت میکند. یک حساب سرویس اختصاصی تنظیم کنید که فقط مجوزهای موردنیاز بار کاری را داشته باشد.
۳. هرگز کلید خود را در محیطهای سمت کاربر، مانند مرورگرها یا برنامههای موبایل، قرار ندهید.
قرار دادن کلید API OpenAI در محیطهای سمت کاربر، مانند مرورگرها یا برنامههای موبایل، به کاربران مخرب امکان میدهد کلید را بردارند و از طرف شما درخواست ارسال کنند؛ این کار ممکن است به هزینههای غیرمنتظره یا به خطر افتادن برخی دادههای حساب منجر شود. درخواستها باید همیشه از طریق سرور بکاند خودتان ارسال شوند؛ جایی که میتوانید کلید API را امن نگه دارید.
۴. هرگز کلید خود را در محل نگهداری کد ثبت نکنید
ثبت کلید API در کد منبع یکی از راههای رایج افشای اطلاعات ورود است. اگر محل نگهداری کد شما عمومی باشد، ممکن است از این طریق ناآگاهانه کلیدتان را در اینترنت منتشر کنید. محلهای نگهداری خصوصی امنترند، اما رخنه داده میتواند کلیدهای شما را در آنها نیز افشا کند. به همین دلایل، اکیداً توصیه میکنیم برای حفاظت پیشگیرانه از کلیدها از متغیرهای محیطی استفاده کنید.
۵. بهجای درج مستقیم کلید API، از متغیرهای محیطی استفاده کنید
راهاندازی در ویندوز
متغیر محیطی متغیری است که بهجای داخل برنامه، در سیستمعامل شما تنظیم میشود. این متغیر از یک نام و یک مقدار تشکیل میشود. توصیه میکنیم نام متغیر را OPENAI_API_KEY بگذارید. با استفاده از همین نام متغیر در سراسر تیم، میتوانید کد خود را بدون خطر افشای کلید API کامیت کنید و به اشتراک بگذارید.
روش ۱: متغیر محیطی «OPENAI_API_KEY» را از طریق خط فرمان cmd تنظیم کنید
دستور زیر را در خط فرمان cmd اجرا کنید و بهجای <yourkey>، کلید API خود را قرار دهید:
setx OPENAI_API_KEY "<yourkey>"این تنظیم در پنجرههای بعدی خط فرمان cmd اعمال میشود؛ بنابراین برای استفاده از آن متغیر با curl باید پنجره جدیدی باز کنید. برای اطمینان از تنظیم شدن این متغیر، پنجره جدیدی از خط فرمان cmd باز کنید و عبارت زیر را وارد کنید
echo %OPENAI_API_KEY%روش ۲: متغیر محیطی «OPENAI_API_KEY» را از طریق کنترل پنل تنظیم کنید
پنجرهٔ ویژگیهای سیستم را باز کنید و تنظیمات پیشرفتهٔ سیستم را انتخاب کنید
متغیرهای محیطی... را انتخاب کنید
در بخش متغیرهای کاربر (بالا)، جدید… را انتخاب کنید. نام متغیر و مقدار کلید را وارد کنید و بهجای <yourkey>، کلید API خود را قرار دهید.
نام متغیر: OPENAI_API_KEY
مقدار متغیر: <yourkey>راهاندازی در لینوکس و macOS
روش ۱: متغیر محیطی «OPENAI_API_KEY» را با استفاده از zsh تنظیم کنید
دستور زیر را در ترمینال اجرا کنید و بهجای yourkey، کلید API خود را قرار دهید.
echo "export OPENAI_API_KEY='yourkey'" >> ~/.zshrcپوسته را با متغیر جدید بهروزرسانی کنید:
source ~/.zshrcبا استفاده از فرمان زیر تأیید کنید که متغیر محیطی خود را تنظیم کردهاید.
echo $OPENAI_API_KEYمقدار کلید API شما خروجی حاصل خواهد بود.
گزینهٔ ۲: متغیر محیطی «OPENAI_API_KEY» را با استفاده از bash تنظیم کنید
دستورالعملهای گزینهٔ ۱ را دنبال کنید و .zshrc را با .bash_profile. جایگزین کنید
همهچیز آماده است! اکنون میتوانید در curl به کلید ارجاع دهید یا آن را در Python خود بارگذاری کنید:
import os
import openai
openai.api_key = os.environ["OPENAI_API_KEY"]۶. از سرویس مدیریت کلید استفاده کنید
محصولات متنوعی برای مدیریت امن کلیدهای محرمانهٔ API وجود دارد. این ابزارها به شما امکان میدهند دسترسی به کلیدهایتان را کنترل کنید و امنیت کلی دادههایتان را بهبود دهید. در صورت نشت داده از برنامهٔ شما، کلیدهایتان افشا نمیشوند، زیرا در محلی کاملاً جداگانه رمزگذاری و مدیریت میشوند.
به تیمهایی که برنامههای خود را در محیط عملیاتی مستقر میکنند، توصیه میکنیم استفاده از یکی از این سرویسها را در نظر بگیرند.
۷. میزان مصرف حسابتان را پایش کنید و در صورت نیاز کلیدهای خود را تعویض کنید
برای سازمان یا پروژههای خود سقف هزینهٔ ماهانه تعیین کنید و اعمال قطعی این سقف را فعال کنید تا هزینههای غیرمنتظرهٔ ناشی از افشای کلید محدود شود. هشدارهای هزینه بهتنهایی ترافیک API را متوقف نمیکنند. اعمال قطعی سقف هزینه ممکن است درخواستهای مجاز را هم مسدود کند. همچنین، چون این محدودیت بهصورت آنی اعمال نمیشود، ممکن است هزینه کمی از سقف تعیینشده فراتر برود.
اگر کلید API شما به دست شخص دیگری بیفتد، او میتواند بدون رضایت شما از سهمیهٔ حسابتان استفاده کند. این اتفاق میتواند باعث از دست رفتن دادهها، هزینههای غیرمنتظره، تمام شدن سهمیهٔ ماهانه و قطع دسترسی شما به API شود.
میتوانید میزان مصرف تیمهایتان را در صفحهٔ مصرف پیگیری کنید. اگر نگران سوءاستفاده هستید، میتوانید برای محافظت از حسابتان این کارها را انجام دهید:
میزان مصرف خود را بررسی کنید و ببینید آیا با فعالیت تیمتان مطابقت دارد یا نه. برای کاربرانی که عضو چند سازمان هستند (مثلاً سازمان شرکتی و شخصی)، مطمئن شوید کاربر قابلیت پیگیری مصرف را فعال کرده و سازمان پیشفرض خود را برای استفاده و پیگیری مصرف تعیین کرده است.
اگر فکر میکنید کلیدتان افشا شده است، فوراً آن را از صفحهٔ کلیدهای API تعویض کنید. اگر برنامههای شما در محیط عملیاتی اجرا میشوند، باید مقادیر کلید را در آنها نیز بهروز کنید.
برای بررسی بیشتر، از طریق help.openai.com با ما تماس بگیرید.
۸. با کنترلهای شبکه از دسترسی به API محافظت کنید
با تعریف فهرست IPهای مجاز میتوانید دسترسی به API خود در OpenAI را به نشانیهای IP مشخصی محدود کنید. وقتی این قابلیت فعال باشد، فقط درخواستهایی از نشانیها یا محدودههای IP تعیینشده پذیرفته میشوند و بقیه رد میشوند؛ حتی اگر کلید API معتبری داشته باشند.
این کار یک لایهٔ حفاظتی دیگر اضافه میکند تا دسترسی به API شما فقط از زیرساختهای مورد اعتماد، مانند سرورهای بکاند یا محیط ابری شما، امکانپذیر باشد.
برای اطلاعات بیشتر، به مقالهٔ فهرست IPهای مجاز برای API OpenAI مراجعه کنید.
Private Link گزینهٔ دیگری برای سازمانهایی است که به دسترسی از طریق شبکهٔ خصوصی نیاز دارند. این قابلیت به بارهای کاری Azure امکان میدهد از طریق Azure Private Link به نقاط پایانی منطقهای API OpenAI متصل شوند. برای درخواست دسترسی، با نمایندهٔ OpenAI خود یا تیم فروش تماس بگیرید. احراز هویت API همچنان الزامی است و Private Link با فهرست IPهای مجاز یا TLS دوطرفه (mTLS) سازگار نیست. برای جزئیات راهاندازی، به راهنمای Private Link مراجعه کنید.
