Свързвате лаптопа към 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 choiceValue
Cosmos APINoSQL
Private endpoint subresourceSql
Private DNS zoneprivatelink.documents.azure.com
SDK connection modeGateway

Тези стойности са специфични за 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 зоната, която отговаря за името на акаунта, режимът на свързване с изискванията му за портове и дали публичният достъп е изключен. Тези четири обясняват настройката на следващия човек и всяко от тях се проваля независимо.

Подобни статии