محیط آزمایشی تولید نیست: مرز دسترسی خودش را به آن بدهید
برچسب آزمایشی تعیین نمیکند چه کسی به برنامه میرسد یا به چه چیزی دست میزند. پیش از انتشار، مخاطب، دادهها، اعتبارنامهها و سطوح مدیریت را مرور کنید.
محیط آزمایشی تا زمانی که پایگاه داده تولید کپیشده، اعتبارنامه زنده ایمیل و کلید پرداخت را در محیطش نبینید، مانند یک سیستم تست به نظر میرسد. در آن نقطه برچسب روی زبانه بیاهمیت میشود و پرسش واقعی این است که این استقرار به چه چیزی میرسد و چه کسی به آن میرسد. یک VPN در درِ ورودی به این پرسش پاسخ نمیدهد، چون یک مسیر به سیستم را محدود میکند و درباره آنچه سیستم در مسیر خروج میتواند بکند چیزی نمیگوید. از مخاطب شروع کنید و به بیرون حرکت کنید.
با مخاطب شروع کنید، نه با URL
سه مخاطب سه طراحی متفاوت میسازند. محیط مهندسی خصوصی به هویت و مسیر نیاز دارد؛ آزمون پذیرش مشتری به حسابهایی نیاز دارد که نماینده مشتریان باشند؛ نمایش عمومی به افشای عامدانه با کنترلهای خودش نیاز دارد. نوشتن مخاطب در ابتدا از رانش معمول جلوگیری میکند، جایی که یک URL پیشنمایش بیصدا دائمی میشود. هر چیز دیگری در مرور به آن پاسخ وابسته است.
اگر هیچکس نمیتواند مخاطب را نام ببرد، آن را نخستین یافته بدانید نه خلأ مستندسازی.
درِ ورودی و سطوح پشت آن را بگردید
پیش از اعتماد به URLی که به شما داده شده، نامها را حل کنید و سپس مسیرهای مدیریتی را مستقیم بخواهید.
dig +short staging.example.com
curl -sS -o /dev/null -w "%{http_code}\n" https://staging.example.com/
curl -sS -o /dev/null -w "%{http_code}\n" https://staging.example.com/adminرکوردهای اضافی اغلب نشانی مبدأ مستقیمی را آشکار میکنند که CDN یا ورودی VPN را دور میزند و کنترل مورد نظر را اختیاری میکند. یک تغییرمسیر به شما میگوید برنامه کجا فکر میکند زندگی میکند و یک طرح یا نام میزبان غیرمنتظره نیازمند پیگیری است. بررسی یک مسیر مدیریتی محتمل باید رد شدن تولید کند، نه یک صفحه. پاسخ 200 روی یک مسیر مدیریتی احرازنشده همان یافتهای است که کل مرور دنبالش بود.
بررسی کنید محیط چه میتواند بکند، نه فقط چه نشان میدهد
صفحهای که ورود میخواهد هنوز با اختیار بکاند ارسال میشود. بپرسید بار کاری با چه هویتی اجرا میشود و سپس سیاستهای پیوست آن را بخوانید.
aws sts get-caller-identityآن فراخوان حساب و اصل اصلیای را گزارش میکند که محیط واقعاً استفاده میکند و این نقطه شروع هر پرسش بعدی درباره مجوزهاست. از آنجا بررسی کنید آیا هویت میتواند ایمیل بفرستد، پول جابهجا کند، اسرار تولید را بخواند یا داده تولید بنویسد. اعتبارنامههای مشترک تولید را با هویتهای آزمایشی محدود جایگزین کنید و جعبههای شنی فروشنده را در جایی که وجود دارند ترجیح دهید. حساب آزمایشیای که میتواند کارت واقعی را شارژ کند، یک سیستم تولید با نام میزبان دیگر است.
مرز را پس از پایان مرور نگه دارید
محیط با یک حسابرسی ایمن نمیشود؛ با مالکیتی ایمن میشود که از تغییر کارکنان جان سالم به در میبرد. تعیین کنید چه کسی دسترسی را حذف میکند، دادههای آزمایشی را بازنشانی میکند و استقرار را بازنشسته میکند، و به پیشنمایش انقضایی بدهید که کسی باید تمدیدش کند. جداسازی فقط تا زمانی کمک میکند که چیز جداشده نگهداری شود. همان مسیرها را پس از انتشار بعدی دوباره بررسی کنید، چون یک پرچم ویژگی یا یکپارچهسازی جدید دقیقاً همان راهی است که یک مسیر ردشده به مسیری باز تبدیل میشود.
طراحی را با یک گردش کار مجاز و یک گردش کار ردشده بپذیرید. اگر هر دو همانگونه که مستند شده رفتار کنند، مرز وجود دارد؛ اگر فقط مسیر خوش عمل آزمایش شده باشد، امیدی بیش نیست.