আপনার VPN নিজে থেকে Cosmos DB-কে প্রাইভেট করে না
একটি VPN আপনার ল্যাপটপকে নেটওয়ার্কে নেয়, ডেটাবেসের ভিতরে নয়। প্রাইভেট এন্ডপয়েন্ট, DNS জোন, সংযোগ মোড ও অ্যাকাউন্ট অ্যাক্সেসকে কী করতে হবে তা দেখুন।
আপনি VPN-এর মাধ্যমে ল্যাপটপটিকে VNet-এ সংযোগ করেন, Cosmos DB অ্যাকাউন্টের URL খোলেন, তবুও অনুরোধটি পাবলিক ইন্টারনেট দিয়েই বেরিয়ে যায়। টানেল তার কাজ করেছে। যা করেনি তা হলো একটি প্রাইভেট এন্ডপয়েন্ট তৈরি করা, প্রাইভেট DNS রেকর্ড প্রকাশ করা বা পাবলিক অ্যাক্সেস বন্ধ করা, কারণ এগুলি অ্যাকাউন্টের তিনটি আলাদা পরিবর্তন, আপনার নেটওয়ার্ক সংযোগের বৈশিষ্ট্য নয়। এই উদাহরণে NoSQL-এর জন্য Azure Cosmos DB, একটি VNet-এ প্রাইভেট এন্ডপয়েন্ট এবং VPN দিয়ে সেই VNet-এ সংযুক্ত একটি ল্যাপটপ ব্যবহার করা হয়েছে, এবং এটি অ্যাপ্লিকেশনের ঠিকানা অপরিবর্তিত রাখে।
মিথ: VPN-এ থাকলেই ডেটাবেস প্রাইভেট হয়ে যায়
VNet-এ থাকার অর্থ শুধু এই যে আপনার প্যাকেটগুলি সেই VNet-এর প্রাইভেট ঠিকানায় পৌঁছাতে পারে। এটি অ্যাকাউন্টের নাম কোথায় রিজলভ হয় সে সম্পর্কে কিছুই বলে না, এবং অ্যাকাউন্টটি এখনও পাবলিক ট্রাফিক গ্রহণ করে কি না সে সম্পর্কেও কিছুই বলে না।
প্রাইভেট এন্ডপয়েন্ট হলো নিজস্ব ঠিকানা, নিজস্ব অনুমোদন ধাপ ও নিজস্ব DNS ওয়্যারিংসহ একটি আলাদা রিসোর্স। এটি বিদ্যমান ও অনুমোদিত না হওয়া পর্যন্ত নামটি পাবলিক এন্ডপয়েন্টে রিজলভ হয় এবং টানেল নির্বিশেষে আপনার ট্রাফিক সেখানেই যায়।
আসলে কী নামটিকে প্রাইভেটভাবে রিজলভ করায়
SDK-এর স্বাভাবিক অ্যাকাউন্ট এন্ডপয়েন্ট রাখুন, যেমন https://ACCOUNT.documents.azure.com। প্রাইভেট DNS সেই নামটি Private Link চেইনের মাধ্যমে এন্ডপয়েন্টের প্রাইভেট ঠিকানায় রিজলভ করবে। এটিকে সাংখ্যিক URL দিয়ে প্রতিস্থাপন করে সার্টিফিকেট যাচাই বন্ধ করবেন না, কারণ তাতে DNS সমস্যার বদলে নিরাপত্তা সমস্যা তৈরি হয়।
| Example choice | Value |
|---|---|
| Cosmos API | NoSQL |
| Private endpoint subresource | Sql |
| Private DNS zone | privatelink.documents.azure.com |
| SDK connection mode | Gateway |
এই মানগুলি NoSQL API-এর জন্য নির্দিষ্ট। অন্যান্য Cosmos API একই উদাহরণে বিনিময়যোগ্য এন্ট্রি নয়, এবং ভিন্ন API থেকে সাবরিসোর্সের নাম কপি করলে এমন এন্ডপয়েন্ট তৈরি হয় যা কখনও রিজলভ হয় না।
অনুমোদিত Azure ওয়ার্কফ্লোর মাধ্যমে এন্ডপয়েন্টটি তৈরি ও অনুমোদন করুন, তারপর এর প্রাইভেট DNS জোন-গ্রুপ ইন্টিগ্রেশন ব্যবহার করুন। ল্যাপটপটির প্রয়োজন এমন একটি রিজলভার যা সেই জোনের উত্তর দিতে পারে, সরাসরি বা অনুমোদিত ফরওয়ার্ডিংয়ের মাধ্যমে, এবং প্রতিটি প্রাসঙ্গিক এন্ডপয়েন্ট ঠিকানার জন্য একটি VPN ক্লায়েন্ট রুট।
একটি প্রাইভেট এন্ডপয়েন্টে একাধিক ঠিকানা থাকতে পারে, যার মধ্যে গ্লোবাল ও আঞ্চলিক এন্ট্রি অন্তর্ভুক্ত। অ্যাকাউন্টের অঞ্চল পরিবর্তিত হলে DNS ইন্টিগ্রেশন বজায় রাখুন, hosts ফাইলে একটি ঠিকানা পিন করবেন না, এবং মনে রাখুন যে অসংলগ্ন পাবলিক রিজলভারের উত্তর প্রাইভেট পথ সম্পর্কে কিছুই প্রমাণ করে না। আপনি যদি হাবের মাধ্যমে DNS ফরওয়ার্ড করেন, ক্লায়েন্ট ডিবাগ করার আগে ফরওয়ার্ডারটি উত্তর দেয় কি না নিশ্চিত করুন। পুরনো ফরওয়ার্ডার পাবলিক উত্তরটি ফেরত দেয়, যা হুবহু অনুপস্থিত এন্ডপয়েন্টের মতো দেখায়।
Gateway মোড ও Direct মোড বিনিময়যোগ্য নয়
Gateway মোড TCP 443-এ HTTPS-এর মাধ্যমে পরিষেবা অনুরোধ পাঠায়। এজন্যই কেবল 443-এর জন্য লেখা ফায়ারওয়াল নীতি এতে কাজ করে এবং এজন্যই এই উদাহরণটি সেটি সচেতনভাবে বেছে নেয়।
Private Link-এর মাধ্যমে Direct মোডের সংযোগের প্রয়োজনীয়তা ভিন্ন, যার মধ্যে অ্যাকাউন্ট ডকুমেন্টেশনে তালিকাভুক্ত আরও বিস্তৃত TCP পোর্ট পরিসর অন্তর্ভুক্ত। Gateway মোডের জন্য লেখা নীতি Direct মোডের ক্লায়েন্টের জন্য নীরবে পুনরায় ব্যবহার করা যাবে না, নইলে SDK সংযোগ করবে এবং তারপর প্রথম ডেটা অপারেশনে আটকে যাবে।
একটি মোড বেছে নিন, অ্যাকাউন্টের সাথে তা লিখে রাখুন এবং নেটওয়ার্ক নীতি সেটির সাথে মিলিয়ে দিন। সমস্যা সমাধানের সময় মোড বদলানো দলগুলি সাধারণত এমন ফায়ারওয়াল নিয়মের সেট নিয়ে শেষ করে যা কোনোটিকেই সন্তুষ্ট করে না।
পাবলিক অ্যাক্সেস বন্ধ করা একটি আলাদা সুইচ
অ্যাকাউন্টটি যদি কেবল প্রাইভেট হওয়া উচিত, তবে অ্যাকাউন্টের সমর্থিত সেটিংসের মাধ্যমে পাবলিক নেটওয়ার্ক অ্যাক্সেস বন্ধ করুন এবং ফলাফল যাচাই করুন। প্রাইভেট এন্ডপয়েন্টের অস্তিত্বকে সম্পূর্ণ অ্যাক্সেস সিদ্ধান্ত হিসেবে ধরবেন না, কারণ প্রাইভেট এন্ডপয়েন্ট ও পাবলিক অ্যাক্সেস চালু থাকা অ্যাকাউন্ট ইন্টারনেটে উত্তর দিতে থাকে।
VPN-এর বাইরে থেকেও যাচাই করুন, ভিতর থেকেও। যে নেটওয়ার্ক বাদ দেওয়া উচিত সেখান থেকে একটি অনুরোধই প্রমাণ করে সেটিংস কার্যকর হয়েছে, এবং এটিই সেই পরীক্ষা যা বেশিরভাগ পরিবর্তন উইন্ডো এড়িয়ে যায়।
পৌঁছানোযোগ্যতা অনুমতি নয়
VPN ল্যাপটপ থেকে অনুমোদিত SDK অপারেশনই গ্রহণযোগ্যতার পরীক্ষা, স্বাভাবিক অ্যাকাউন্ট URL ও উদ্দিষ্ট পরিচয় ব্যবহার করে। VPN পৌঁছানোযোগ্যতা Cosmos ডেটা অনুমতি দেয় না; ডেটা প্লেন নিজের ভূমিকা বা কী যাচাই করে।
তারপর প্রত্যাখ্যানগুলি চালান: একটি ভিন্ন পরিচয়, এবং এমন একটি নেটওয়ার্ক পথ যা আর অ্যাকাউন্টে পৌঁছানো উচিত নয়। এর যেকোনোটি সফল হলে, আপনি যে সীমানা নথিভুক্ত করেছেন তা আপনার তৈরি করা সীমানা নয়।
শেষে চারটি তথ্য লিখে রাখুন: এন্ডপয়েন্টের প্রাইভেট ঠিকানা, অ্যাকাউন্টের নামের জন্য উত্তর দেওয়া DNS জোন, পোর্টের প্রয়োজনীয়তাসহ সংযোগ মোড, এবং পাবলিক অ্যাক্সেস বন্ধ আছে কি না। এই চারটি পরবর্তী ব্যক্তিকে সেটআপটি ব্যাখ্যা করে, এবং প্রতিটি স্বাধীনভাবে ব্যর্থ হতে পারে।