একটি সীমিত প্রকল্পের জন্য কনট্রাক্টরের একটি প্রাইভেট রিপোজিটরি দরকার, আর অনুরোধটি আসে দুই রকমে: «রিপোটি পাবলিক করে দিন» বা «তাকে VPN অ্যাক্সেস দিন»। দুটি উত্তরই আসল প্রশ্নটি এড়িয়ে যায়। রিপোজিটরি অনুমোদন এবং নেটওয়ার্ক প্রবেশ আলাদা স্তর, আর যে অনুমতি গুরুত্বপূর্ণ তা হলো সেই ব্যক্তিকে ওই একটি রিপোজিটরিতে পড়তে বা push করতে দেওয়া অনুমতি। দুই বান্ডলের বাকি সবকিছু অতিরিক্ত ঝুঁকি। আগে অনুমোদন স্তরটি ডিজাইন করুন, তারপর ঠিক করুন এর কতটা কম নেটওয়ার্ক পথ দরকার।

একটি উদাহরণ এটিকে স্পষ্ট করে: একজন বাইরের ডেভেলপার, একটি রিপোজিটরি, কোনো প্রোডাকশন হোস্ট নেই, কোনো প্রশাসনিক ইন্টারফেস নেই। প্রবেশগুলি তুলনা করার সময় এই পরিসর স্থির রাখুন।

দুটি প্রবেশ, দুটি আলাদা সীমানা

পাবলিকভাবে পৌঁছানো যায় এমন রিপোজিটরি সেবা এখনও HTTPS বা SSH প্রমাণীকরণ এবং অ্যাপ্লিকেশন অনুমোদন প্রয়োগ করে। পাবলিক পৌঁছানোযোগ্যতা মানে বেনামি পঠনযোগ্যতা নয়। খরচ হলো একটি লিসেনার যা আপনাকে রক্ষণাবেক্ষণ, পর্যবেক্ষণ ও প্যাচ করতে হবে।

VPN প্রবেশ সেই লিসেনারকে পাবলিক পথের বাইরে রাখতে পারে, কিন্তু একটি বিস্তৃত VPN অ্যাকাউন্ট অসম্পর্কিত সেবা প্রকাশ করতে পারে। রয়ে যাওয়া পাবলিক হোস্টনেম, একটি SSH লিসেনার বা ভুলে যাওয়া কোনো ঠিকানা পরিবার আপনার ধারণা করা শুধু-VPN সীমানা ভেঙে দিতে পারে। এজন্যই শুধু-VPN ডিজাইনের শুধু ফায়ারওয়াল নিয়ম নয়, লিসেনারদের তালিকা দরকার।

লেবেল নয়, অনুমোদিত পথগুলি তুলনা করুন। যেভাবেই হোক, অ্যাপ্লিকেশন প্রমাণীকরণ এবং স্বাভাবিক সার্ভার-পরিচয় যাচাই চালু রাখুন।

রিপোজিটরি রোলই অনুমতির একক

কনট্রাক্টরকে কাজটি সম্পূর্ণ করার সবচেয়ে ছোট রোলসহ একটি ব্যক্তিগত পরিচয় দিন। দেখা, push করা, রক্ষণাবেক্ষণ করা ও প্রশাসন করা আলাদা রোল, আর যে গ্রুপ প্রতিটি অভ্যন্তরীণ প্রকল্প দেয় তা একটি রিপোজিটরির অ্যাক্সেসের সমান নয়। গ্রুপের নাম একটি রোলে মাপে ধরে নেওয়ার বদলে আপনার প্ল্যাটফর্মে প্রকৃত রোলের নামগুলি যাচাই করুন।

কাজটির সত্যিই যে যে অপারেশন দরকার সব তালিকাভুক্ত করুন। ব্রাউজার অ্যাক্সেস ও Git পরিবহন ভিন্ন ক্রেডেনশিয়াল বা লিসেনার ব্যবহার করতে পারে। স্বয়ংক্রিয় বিল্ড, প্যাকেজ ডাউনলোড ও webhook নিজেদের ডেলিভারি পথসহ আলাদা পরিচয় হিসেবে চলতে পারে, আর ল্যাপটপের VPN সেগুলিকে সংযুক্ত করে না।

রিপোজিটরির বিষয়বস্তু রক্ষা করা আলাদা কাজ। প্রবেশ পথ বদলালে ইতিহাসে থাকা গোপন তথ্য মুছে যায় না, অনুমোদিত ক্লোন সীমিত হয় না, বা কোনো অবদানকারীর ওয়ার্কস্টেশন সুরক্ষিত হয় না।

যে ক্রেডেনশিয়াল ব্যক্তির চেয়ে বেশি বাঁচে

অফবোর্ডিং হলো যেখানে রিপোজিটরি অ্যাক্সেস ও নেটওয়ার্ক অ্যাক্সেস আবার আলাদা হয়ে যায়। সংশ্লিষ্ট মালিকদের মাধ্যমে রিপোজিটরি অনুমোদন ও VPN অধিকার সরান, তারপর ব্যক্তিগত টোকেন, SSH কী, অটোমেশন ক্রেডেনশিয়াল ও সক্রিয় সেশন যাচাই করুন। ডিপ্লয় কী হলো চিরাচরিত টিকে থাকা: ব্যক্তি প্রতিষ্ঠান ছাড়ার পরেও এটি তার কনফিগার করা পড়া বা লেখার অ্যাক্সেস ধরে রাখতে পারে। সদস্য তালিকা থেকে সরানোই সম্পূর্ণ অফবোর্ডিং নয়।

কাজ শেষ হওয়ার পরে নয়, আগেই মালিক ও উদ্দেশ্য অনুযায়ী মেশিন ক্রেডেনশিয়ালের তালিকা করুন। এক সপ্তাহের বিল্ডের জন্য তৈরি একটি টোকেন, কেন এটি আছে কেউ না লিখলে প্রকল্পকে এক বছর পেরিয়ে যেতে পারে।

অপারেশন, প্রত্যাখ্যান ও অফবোর্ডিং যাচাই করুন

হস্তান্তরের আগে তিনটি জিনিস পরীক্ষা করুন: অনুমোদিত রিপোজিটরি অপারেশন সফল হয়, অসম্পর্কিত রিপোজিটরি প্রত্যাখ্যাত হয়, এবং অবসরপ্রাপ্ত পরিচয় ব্যর্থ হয়। ডিজাইন শুধু-VPN হলে নিশ্চিত করুন পুরোনো সরাসরি পাবলিক রুট আর অপারেশনটি করতে পারে না।

কোড ও পর্যালোচনার রেকর্ড রাখুন, কিন্তু ভুলে যাওয়া অ্যাক্সেসকে পুনরুদ্ধার পরিকল্পনা হতে দেবেন না। পরিচয়, রোল ও মেয়াদ শেষের তারিখের লিখিত তালিকাই পরবর্তী কনট্রাক্টর অনুরোধকে পুনরাবৃত্তিযোগ্য প্রক্রিয়া করে।

সম্পর্কিত নিবন্ধ