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 choiceValue
Cosmos APINoSQL
Private endpoint subresourceSql
Private DNS zoneprivatelink.documents.azure.com
SDK connection modeGateway

이 값은 NoSQL API 에 고유합니다. 다른 Cosmos API 는 같은 예제에서 교환 가능한 항목이 아니며, 다른 API 에서 하위 리소스 이름을 복사하면 절대 확인되지 않는 엔드포인트가 만들어집니다.

권한이 부여된 Azure 워크플로를 통해 엔드포인트를 만들고 승인한 다음, 프라이빗 DNS 영역 그룹 통합을 사용하세요. 노트북에는 해당 영역에 응답할 수 있는 확인자 가 직접 또는 승인된 전달을 통해 필요하고, 관련된 각 엔드포인트 주소로 가는 VPN 클라이언트 경로도 필요합니다.

프라이빗 엔드포인트는 전역 및 지역 항목을 포함해 하나 이상의 주소를 가질 수 있습니다. 계정의 지역이 변경되면 hosts 파일에 단일 주소를 고정하는 대신 DNS 통합을 유지하고, 관련 없는 공용 확인자의 응답은 프라이빗 경로에 대해 아무것도 증명하지 않는다는 점을 기억하세요. 허브를 통해 DNS 를 전달하는 경우 클라이언트를 디버그하기 전에 전달자가 응답하는지 확인하세요. 오래된 전달자는 공용 응답을 반환하며, 이는 누락된 엔드포인트와 정확히 똑같이 보입니다.

Gateway 모드와 Direct 모드는 교환할 수 없습니다

Gateway 모드는 TCP 443 의 HTTPS 를 통해 서비스 요청을 보냅니다. 그래서 443 만 허용하는 방화벽 정책이 작동하며 이 예제가 이를 의도적으로 선택합니다.

Private Link 를 통한 Direct 모드는 계정 설명서에 나열된 더 넓은 TCP 포트 범위를 포함해 다른 연결 요구 사항이 있습니다. Gateway 모드용으로 작성된 정책을 Direct 모드 클라이언트에 조용히 재사용해서는 안 되며, 그렇지 않으면 SDK 가 연결한 후 첫 데이터 작업에서 멈춥니다.

모드 하나를 선택해 계정과 함께 기록하고 네트워크 정책을 그에 맞추세요. 문제 해결 중 모드를 바꾸는 팀은 보통 둘 다 만족하지 못하는 방화벽 규칙 집합으로 끝납니다.

공용 액세스 해제는 별도의 스위치입니다

계정이 프라이빗 전용이어야 한다면 계정의 지원되는 설정을 통해 공용 네트워크 액세스를 비활성화하고 결과를 확인하세요. 프라이빗 엔드포인트가 있고 공용 액세스가 활성화된 계정은 여전히 인터넷에서 응답하므로 그 존재를 완전한 액세스 결정으로 취급하지 마세요.

VPN 외부와 내부 모두에서 확인하세요. 제외되어야 하는 네트워크에서 오는 요청이 설정이 적용되었음을 증명하는 테스트이며, 대부분의 변경 창이 건너뛰는 테스트입니다.

도달 가능성은 권한이 아닙니다

VPN 노트북에서 허용된 SDK 작업이 승인 테스트이며, 일반 계정 URL 과 의도된 ID 를 사용합니다. VPN 도달 가능성은 Cosmos 데이터 권한을 부여하지 않으며, 데이터 평면은 자체 역할이나 키를 확인합니다.

그런 다음 다른 ID 와 더 이상 계정에 도달해서는 안 되는 네트워크 경로로 거부를 실행하세요. 둘 중 하나라도 성공하면 문서화한 경계는 구축한 경계가 아닙니다.

완료할 때 엔드포인트의 프라이빗 주소, 계정 이름에 응답하는 DNS 영역, 포트 요구 사항이 포함된 연결 모드, 공용 액세스가 비활성화되었는지 여부라는 네 가지 사실을 적으세요. 이 네 가지가 다음 사람에게 구성을 설명하며 각각 독립적으로 실패합니다.

관련 글