Вашата VPN сама по себе си не прави Cosmos DB частна
VPN ви качва лаптопа в мрежата, а не вътре в базата данни. Вижте какво трябва да направят частната крайна точка, DNS зоната, режимът на свързване и достъпът до акаунта.
Свързвате лаптопа към VNet чрез VPN, отваряте URL адреса на акаунта в Cosmos DB и заявката все още излиза през публичния интернет. Тунелът свърши своята работа. Това, което не направи, е да създаде частна крайна точка, да публикува частния DNS запис или да изключи публичния достъп, защото това са три отделни промени по акаунта, а не свойства на мрежовата ви връзка. Този пример използва Azure Cosmos DB за NoSQL, частна крайна точка във VNet и лаптоп, свързан към този VNet чрез VPN, и запазва адреса на приложението непроменен.
Митът: присъствието във 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 изпраща заявки към услугата през HTTPS на TCP 443. Ето защо политика на защитната стена само за 443 работи за него и ето защо този пример го избира умишлено.
Режимът Direct през Private Link има различни изисквания за свързване, включително по-широк диапазон от TCP портове, който документацията на акаунта изброява. Политика, написана за режим Gateway, не трябва тихо да се използва повторно за клиент в режим Direct, иначе SDK ще се свърже и след това ще зацикли при първата операция с данни.
Изберете един режим, запишете го заедно с акаунта и накарайте мрежовата политика да съответства. Екипите, които сменят режимите по време на отстраняване на проблеми, обикновено завършват с набор от правила на защитната стена, който не удовлетворява нито един от двата.
Изключването на публичния достъп е отделен превключвател
Ако акаунтът трябва да бъде само частен, изключете публичния мрежов достъп чрез поддържаната настройка на акаунта и проверете резултата. Не приемайте съществуването на частна крайна точка като пълното решение за достъпа, защото акаунт с частна крайна точка и включен публичен достъп все още отговаря в интернет.
Проверете отвън VPN, както и отвътре. Заявка от мрежа, която трябва да бъде изключена, е тестът, който доказва, че настройката е влязла в сила, и това е тестът, който повечето прозорци за промени пропускат.
Достъпността не е разрешение
Разрешена операция на SDK от лаптопа във VPN е приемният тест, с нормалния URL на акаунта и предвидената идентичност. Достъпността през VPN не дава разрешения за данни на Cosmos; равнището на данните проверява собствените си роли или ключове.
След това изпълнете отказите: различна идентичност и мрежов път, който вече не трябва да достига акаунта. Ако някое от двете успее, границата, която сте документирали, не е границата, която сте изградили.
Запишете четири факта накрая: частните адреси на крайната точка, DNS зоната, която отговаря за името на акаунта, режимът на свързване с изискванията му за портове и дали публичният достъп е изключен. Тези четири обясняват настройката на следващия човек и всяко от тях се проваля независимо.