Azure Cosmos DB for MongoDB vCore에서 프라이빗 액세스 사용

적용 대상: MongoDB vCore

Azure Private Link는 사용자가 지정된 프라이빗 엔드포인트를 통해 Azure Cosmos DB for MongoDB vCore에 연결할 수 있는 강력한 서비스입니다. 이 프라이빗 엔드포인트는 사용자 고유의 가상 네트워크 내 서브넷에 있는 개인 IP 주소로 구성됩니다. 엔드포인트를 사용하면 전용 IP를 통해서만 가능하도록 Azure Cosmos DB for MongoDB vCore 제품에 대한 액세스를 제한할 수 있습니다. Private Link를 엄격한 NSG 정책과 통합하면 데이터 반출 위험이 크게 줄어듭니다. 프라이빗 엔드포인트에 대한 자세한 내용은 Azure Private Link란?을 확인하세요.

참고 항목

Private Link는 연결을 보호하지만, Azure Cosmos DB 엔드포인트가 공용 DNS에 의해 확인되는 것을 막지는 않습니다. 들어오는 요청의 여과는 전송 또는 네트워크 수준이 아닌 애플리케이션 수준에서 처리됩니다.

Private Link는 가상 네트워크 내에서 또는 연결된 피어 가상 네트워크에서 Azure Cosmos DB for MongoDB vCore에 액세스할 수 있는 유연성을 제공합니다. 또한 Private Link에 연결된 리소스는 VPN 또는 Azure ExpressRoute를 통해 프라이빗 피어링으로 온-프레미스에서 액세스할 수 있습니다.

연결을 설정하기 위해 Private Link를 사용하는 Azure Cosmos DB for MongoDB vCore는 자동 및 수동 승인 방법을 모두 지원합니다. 자세한 내용은 Azure Cosmos DB의 프라이빗 엔드포인트를 참조하세요.

필수 조건

Azure Portal을 사용하여 프라이빗 엔드포인트가 있는 클러스터 만들기

다음 단계에 따라 Azure Portal을 사용하여 프라이빗 엔드포인트가 있는 새 Azure Cosmos DB for MongoDB vCore 클러스터를 만듭니다.

  1. Azure Portal에 로그인한 다음, 왼쪽 위 모서리에서 리소스 만들기를 선택합니다.

  2. 리소스 만들기 페이지에서 데이터베이스를 선택한 다음 Azure Cosmos DB를 선택합니다.

  3. API 옵션 선택 페이지의 MongoDB 타일에서 만들기를 선택합니다.

  4. vCore 클러스터 리소스 유형을 선택합니다.

  5. Azure Cosmos DB for MongoDB vCore 클러스터 만들기 페이지에서 리소스 그룹을 선택하거나 만들고 클러스터 이름 및 위치를 입력하고 관리자 암호를 입력하고 확인합니다.

  6. 다음: 네트워킹을 선택합니다.

  7. 네트워킹 탭에서 연결 방법으로 프라이빗 액세스를 선택합니다.

  8. 프라이빗 엔드포인트 만들기 화면에서 다음에 대해 적절한 값을 입력하거나 선택합니다.

    설정
    Resource group 리소스 그룹을 선택합니다.
    이름 프라이빗 엔드포인트의 이름을 입력합니다. 이 이름을 사용하는 경우 고유한 이름을 만듭니다.
    네트워크 인터페이스 이름 네트워크 인터페이스의 이름을 입력합니다. 이 이름을 사용하는 경우 고유한 이름을 만듭니다.
    위치 Private Link를 배포하려는 지역을 선택합니다. 가상 네트워크가 있는 위치와 동일한 위치에 프라이빗 엔드포인트를 만듭니다.
    리소스 종류 Microsoft.DocumentDB/mongoClusters를 선택합니다.
    대상 리소스 만든 Azure Cosmos DB for MongoDB vCore 리소스를 선택합니다.
    대상 하위 리소스 이전에 선택한 리소스에 대한 하위 리소스 유형을 선택합니다. 프라이빗 엔드포인트에 액세스 권한이 있어야 합니다.
    가상 네트워크 가상 네트워크를 선택합니다.
    서브넷 서브넷을 선택합니다.
    프라이빗 DNS 영역과 통합 를 선택합니다. 프라이빗 엔드포인트와 비공개로 연결하려면 DNS 레코드가 필요합니다. 프라이빗 엔드포인트를 프라이빗 DNS 영역과 통합하는 것이 좋습니다. 자체 DNS 서버를 활용하거나 가상 머신의 호스트 파일을 사용하여 DNS 레코드를 만들 수도 있습니다. 이 옵션에 대해 예를 선택하면 프라이빗 DNS 영역 그룹도 생성됩니다. DNS 영역 그룹은 프라이빗 DNS 영역과 프라이빗 엔드포인트 간의 링크입니다. 이 링크를 사용하면 프라이빗 엔드포인트에 대한 업데이트가 있을 때 프라이빗 DNS 영역을 자동으로 업데이트할 수 있습니다. 예를 들어 지역을 추가하거나 제거하면 프라이빗 DNS 영역이 자동으로 업데이트됩니다.
    구성 이름 구독 및 리소스 그룹을 선택합니다. 프라이빗 DNS 영역은 자동으로 결정됩니다. Azure Portal을 사용하여 변경할 수 없습니다.
  9. 확인을 선택합니다.

  10. 다음: 태그>검토 + 만들기를 차례로 선택합니다. 검토 + 만들기 페이지에서 만들기를 선택합니다.

기존 클러스터에서 프라이빗 액세스 사용

기존 클러스터의 노드에 대한 프라이빗 엔드포인트를 만들려면 클러스터의 네트워킹 페이지를 엽니다.

  1. 프라이빗 엔드포인트 추가를 선택합니다.

    네트워킹 화면에서 프라이빗 엔드포인트 추가를 선택하는 스크린샷.

  2. 프라이빗 엔드포인트 만들기 화면의 기본 탭에서 구독, 리소스 그룹지역을 확인합니다. 엔드포인트의 이름(예: my-cluster-1) 및 네트워크 인터페이스 이름(예: my-cluster-1-nic)을 입력합니다.

    참고 항목

    달리 선택해야 하는 합당한 이유가 없는 한 클러스터와 일치하는 구독 및 지역을 선택하는 것이 좋습니다. 양식 필드의 기본값이 올바르지 않을 수 있습니다. 확인하고 필요한 경우 업데이트합니다.

  3. 다음: 리소스를 선택합니다. 리소스 종류로 "Microsoft.DocumentDB/mongoClusters"를 선택하고, 리소스로 대상 클러스터를 선택합니다. 대상 하위 리소스에 대해 "MongoCluster"를 선택합니다.

  4. 다음: Virtual Network를 선택합니다. 원하는 가상 네트워크서브넷을 선택합니다. 개인 IP 구성에서 정적 IP 주소 할당을 선택하거나 기본값인 동적 IP 주소 할당을 유지합니다.

  5. 다음: DNS를 선택합니다.

  6. 프라이빗 DNS 통합에서 프라이빗 DNS 영역과 통합에 대해 기본값인 를 유지하거나 아니요를 선택합니다.

  7. 다음: 태그를 선택하고 원하는 태그를 추가합니다.

  8. 검토 + 만들기를 선택합니다. 설정을 검토하고 만족하면 만들기를 선택합니다.

Azure CLI를 사용하여 프라이빗 엔드포인트 만들기

다음 Azure CLI 스크립트를 실행하여 기존 Azure Cosmos DB 계정에 대한 myPrivateEndpoint라는 프라이빗 엔드포인트를 만듭니다. 변수 값을 환경에 맞는 정보로 바꿉니다.

# Resource group where the Azure Cosmos DB account and virtual network resources are located  
ResourceGroupName="myResourceGroup" 

# Name of the existing Azure Cosmos DB account  
MongovCoreClusterName="myMongoCluster" 

# Subscription ID where the Azure Cosmos DB account and virtual network resources are located  
SubscriptionId="<your Azure subscription ID>"  

# API type of your Azure Cosmos DB account: Sql, SqlDedicated, MongoCluster, Cassandra, Gremlin, or Table 
CosmosDbSubResourceType="MongoCluster"  

# Name of the virtual network to create  
VNetName="myVnet"  

# Name of the subnet to create  
SubnetName="mySubnet"  

# Name of the private endpoint to create  
PrivateEndpointName="myPrivateEndpoint"  

# Name of the private endpoint connection to create 
PrivateConnectionName="myConnection" 

az network vnet create \
  --name $VNetName \
  --resource-group $ResourceGroupName \
  --subnet-name $SubnetName 

az network vnet subnet update \
  --name <name> \
  --resource-group $ResourceGroupName \
  --vnet-name $VNetName \
  --disable-private-endpoint-network-policies true 

az network private-endpoint create \
  --name $PrivateEndpointName \
  --resource-group $ResourceGroupName \
  --vnet-name $VNetName \
  --subnet $SubnetName \
  --private-connection-resource-id "/subscriptions/$SubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.DocumentDB/mongoClusters/$MongovCoreClusterName" \
  --group-ids MongoCluster --connection-name $PrivateConnectionName 

프라이빗 엔드포인트를 프라이빗 DNS 영역과 통합

프라이빗 엔드포인트를 만든 후에는 다음 Azure CLI 스크립트를 사용하여 프라이빗 DNS 영역과 통합할 수 있습니다.

#Zone name differs based on the API type and group ID you are using. 
zoneName="privatelink.mongocluster.cosmos.azure.com" 

az network private-dns zone create \
  --resource-group $ResourceGroupName \
  --name $zoneName 

az network private-dns link vnet create --resource-group $ResourceGroupName \
  --zone-name $zoneName \
  --name <dns-link-name> \
  --virtual-network $VNetName \
  --registration-enabled false 

#Create a DNS zone group
az network private-endpoint dns-zone-group create \
  --resource-group $ResourceGroupName \
  --endpoint-name <pe-name> \
  --name <zone-group-name> \
  --private-dns-zone $zoneName \
  --zone-name mongocluster 
az network private-link-resource list \
  -g <rg-name> \
  -n <resource-name> \
  --type Microsoft.DocumentDB/mongoClusters 

다음 단계