VPN-en din gjør ikke Cosmos DB privat av seg selv
En VPN får den bærbare datamaskinen på nettverket, ikke inn i databasen. Se hva det private endepunktet, DNS-sonen, tilkoblingsmodusen og kontotilgangen må gjøre.
Du kobler den bærbare datamaskinen til VNet via en VPN, åpner URL-en til Cosmos DB-kontoen, og forespørselen går fortsatt ut over det offentlige internettet. Tunnelen gjorde jobben sin. Det den ikke gjorde, var å opprette et privat endepunkt, publisere den private DNS-posten eller slå av offentlig tilgang, fordi det er tre separate endringer på kontoen og ikke egenskaper ved nettverkstilkoblingen din. Dette eksempelet bruker Azure Cosmos DB for NoSQL, et privat endepunkt i et VNet og en bærbar datamaskin koblet til det VNet-et via VPN, og det holder adressen til applikasjonen uendret.
Myten: å være på VPN gjør databasen privat
Å være på VNet betyr bare at pakkene dine kan nå private adresser i det VNet-et. Det sier ingenting om hvor kontonavnet løses opp, og det sier ingenting om hvorvidt kontoen fortsatt godtar offentlig trafikk.
Et privat endepunkt er en separat ressurs med sin egen adresse, sitt eget godkjenningstrinn og sin egen DNS-kabling. Inntil det eksisterer og er godkjent, løses navnet opp til det offentlige endepunktet, og trafikken din går dit uansett tunnel.
Hva som faktisk får navnet til å løses opp privat
Behold SDK-ens vanlige kontoendepunkt, noe som https://ACCOUNT.documents.azure.com. Privat DNS bør løse opp det navnet gjennom Private Link-kjeden til endepunktets private adresser. Ikke erstatt det med en numerisk URL og slå ikke av sertifikatkontroller, fordi det bytter et DNS-problem mot et sikkerhetsproblem.
| Example choice | Value |
|---|---|
| Cosmos API | NoSQL |
| Private endpoint subresource | Sql |
| Private DNS zone | privatelink.documents.azure.com |
| SDK connection mode | Gateway |
Disse verdiene er spesifikke for NoSQL-API-en. Andre Cosmos-API-er er ikke utskiftbare oppføringer i samme eksempel, og kopiering av underressursnavnet fra en annen API gir et endepunkt som aldri løses opp.
Opprett og godkjenn endepunktet gjennom den autoriserte Azure-arbeidsflyten, og bruk deretter integrasjonen med private DNS-sonegrupper. Den bærbare datamaskinen trenger en resolver som kan svare for den sonen, enten direkte eller gjennom godkjent videresending, og en VPN-klientrute til hver relevante endepunktadresse.
Et privat endepunkt kan ha mer enn én adresse, inkludert globale og regionale oppføringer. Vedlikehold DNS-integrasjonen når kontoens regioner endres, i stedet for å feste én adresse i en hosts-fil, og husk at et svar fra en urelatert offentlig resolver ikke beviser noe om den private veien. Hvis du videresender DNS gjennom et hub, må du bekrefte at videresenderen svarer før du feilsøker klienten. En utdatert videresender returnerer det offentlige svaret, som ser nøyaktig ut som et manglende endepunkt.
Gateway-modus og Direct-modus er ikke utskiftbare
Gateway-modus sender tjenesteforespørsler over HTTPS på TCP 443. Det er derfor en brannmurpolicy bare for 443 fungerer for den, og derfor velger dette eksempelet den bevisst.
Direct-modus over Private Link har andre tilkoblingskrav, inkludert et bredere TCP-portområde som kontodokumentasjonen lister opp. En policy skrevet for Gateway-modus må ikke gjenbrukes i stillhet for en Direct-modus-klient, ellers kobler SDK-en til og henger deretter på den første dataoperasjonen.
Velg én modus, skriv den ned sammen med kontoen, og få nettverkspolicyen til å samsvare. Team som bytter modus under feilsøking, ender vanligvis opp med et brannmurregelsett som ikke tilfredsstiller noen av dem.
Å slå av offentlig tilgang er en egen bryter
Hvis kontoen skal være bare privat, slår du av offentlig nettverkstilgang gjennom kontoens støttede innstilling og bekrefter resultatet. Ikke behandle eksistensen av et privat endepunkt som den fullstendige tilgangsbeslutningen, fordi en konto med et privat endepunkt og offentlig tilgang aktivert fortsatt svarer på internettet.
Bekreft fra utsiden av VPN-en så vel som fra innsiden. En forespørsel fra et nettverk som bør utelukkes, er testen som beviser at innstillingen trådte i kraft, og det er testen de fleste endringsvinduer hopper over.
Tilgjengelighet er ikke tillatelse
En tillatt SDK-operasjon fra VPN-datamaskinen er aksepttesten, med den vanlige konto-URL-en og den tiltenkte identiteten. VPN-tilgjengelighet gir ikke Cosmos-datatillatelser; dataplanet kontrollerer sine egne roller eller nøkler.
Kjør deretter avvisningene: en annen identitet, og en nettverksvei som ikke lenger skal nå kontoen. Hvis en av dem lykkes, er grensen du dokumenterte ikke grensen du bygde.
Skriv ned fire fakta når du er ferdig: endepunktets private adresser, DNS-sonen som svarer for kontonavnet, tilkoblingsmodusen med portkravene sine, og om offentlig tilgang er slått av. Disse fire forklarer oppsettet for neste person, og hver av dem feiler uavhengig.