다음을 통해 공유


Azure Data Explorer용 관리형 프라이빗 엔드포인트 만들기

고도로 보호되는 Azure 리소스에 연결하려면 관리형 프라이빗 엔드포인트가 필요합니다. Azure Data Explorer가 다른 보호된 서비스에 연결할 수 있도록 하는 단방향 프라이빗 연결입니다. 이 문서에서는 관리형 프라이빗 엔드포인트를 만들고 데이터 원본에 연결하는 방법을 알아봅니다.

필수 구성 요소

Azure Portal을 사용하여 관리형 프라이빗 엔드포인트 만들기

스토리지에 액세스할 때 사용할 클러스터용 포털을 사용하여 관리형 프라이빗 엔드포인트를 만들 수 있습니다.

  1. Azure Portal에서 클러스터로 이동한 다음, 네트워킹을 선택합니다.

  2. 관리형 프라이빗 엔드포인트를 선택한 다음, + 추가를 선택합니다.

    관리형 프라이빗 엔드포인트 생성의 첫 번째 단계를 보여 주는 네트워킹 페이지의 스크린샷.

  3. 새 관리형 프라이빗 엔드포인트 창에서 다음 정보로 리소스 세부 정보를 입력한 후, 다음을 선택합니다.

    관리형 프라이빗 엔드포인트 생성의 두 번째 단계를 보여 주는 네트워킹 페이지의 스크린샷.

    설정 제안 값 필드 설명
    Name mpeToStorage 관리형 프라이빗 엔드포인트의 이름
    Subscription 사용자의 구독 클러스터에 사용할 Azure 구독 선택
    리소스 유형 Microsoft.Storage/storageAccounts 데이터 원본에 대해 원하는 관련 리소스 유형을 선택합니다.
    리소스 이름 share 새 Azure 프라이빗 엔드포인트의 대상으로 사용해야 하는 클러스터 선택
    대상 하위 리소스 blob 데이터 원본에 대한 관련 대상을 선택합니다.
  4. 만들기를 선택하여 관리형 프라이빗 엔드포인트 리소스를 만듭니다.

REST API를 사용하여 관리형 프라이빗 엔드포인트 만들기

관리형 프라이빗 엔드포인트를 만들려면 Kusto 리소스 공급자에 대한 단일 API 호출이 필요합니다. 다음 리소스 종류에 대한 관리형 프라이빗 엔드포인트를 설정할 수 있습니다.

  • Microsoft.Storage/storageAccounts(하위 리소스는 "Blob" 또는 "dfs"일 수 있습니다.)
  • Microsoft.EventHub/namespaces(하위 리소스 "네임스페이스")
  • Microsoft.Devices/IoTHubs(하위 리소스 "iotHub")
  • Microsoft.KeyVault/vaults(하위 리소스 "자격 증명 모음")
  • Microsoft.Sql/servers(하위 리소스 "sqlServer")
  • Microsoft. Kusto/clusters(하위 리소스 "클러스터")
  • Microsoft.DigitalTwins/digitalTwinsInstance(하위 리소스 "digitaltwinsinstance")

다음 이 예제에서는 PowerShell의 ARMclient를 통해 REST API를 사용하여 관리형 프라이빗 엔드포인트를 만듭니다.

참고

스토리지 계정에 "dfs" 리소스에 연결하려면 "blob" 하위 리소스에 대한 추가 관리 프라이빗 엔드포인트가 필요합니다.

REST API를 사용하기 위한 필수 구성 요소

  1. choco 설치

  2. ARMClient 설치

    choco install armclient
    
  3. ARMClient에 로그인

    armclient login
    

Azure Event Hubs에 대한 관리형 프라이빗 엔드포인트 만들기

다음 REST API 호출을 사용하여 Event Hubs 서비스에 대한 관리형 프라이빗 엔드포인트를 사용하도록 설정합니다.

  1. 다음 명령을 실행하여 Event Hubs 서비스에 대한 관리형 프라이빗 엔드포인트를 만듭니다.

    # Replace the <...> placeholders with the correct values
    armclient PUT /subscriptions/<subscriptionIdADX>/resourceGroups/<resourceGroupNameADX>/providers/Microsoft.Kusto/clusters/<clusterName>/managedPrivateEndpoints/<newMpeName>?api-version=2022-02-01 @"
    {
        'properties': {
            'privateLinkResourceId':'/subscriptions/<subscriptionIdEventHub>/resourceGroups/<resourceGroupNameEventHub>/providers/Microsoft.EventHub/namespaces/<EventHubNamespace>',
            'groupId':'namespace',
            'requestMessage':'Please Approve.'
        }
    }
    "@
    
  2. 응답을 확인합니다.

    {
      "id": "/subscriptions/<subscriptionIdADX>/resourceGroups/<resourceGroupNameADX>/providers/Microsoft.Kusto/Clusters/<clusterName>/ManagedPrivateEndpoints/<newMpeName>",
      "name": "<clusterName>/<newMpeName>",
      "type": "Microsoft.Kusto/Clusters/ManagedPrivateEndpoints",
      "location": "DummyLocation",
      "properties": {
        "privateLinkResourceId": "/subscriptions/<subscriptionIdEventHub>/resourceGroups/<resourceGroupNameEventHub>/providers/Microsoft.EventHub/namespaces/<EventHubNamespace>",
        "groupId": "namespace",
        "requestMessage": "Please Approve.",
        "provisioningState": "Creating"
      }
    }
    

Azure Storage 계정에 대한 관리형 프라이빗 엔드포인트 만들기

다음 REST API 호출을 사용하여 Azure Storage Blob에 대한 관리형 프라이빗 엔드포인트를 사용하도록 설정합니다.

  1. 다음 명령을 실행하여 Event Hubs에 대한 관리형 프라이빗 엔드포인트를 만듭니다.

    #replace the <...> placeholders with the correct values
    armclient PUT /subscriptions/<subscriptionIdADX>/resourceGroups/<resourceGroupNameADX>/providers/Microsoft.Kusto/clusters/<clusterName>/managedPrivateEndpoints/<newMpeName>?api-version=2022-02-01 @"
    {
        'properties': {
            'privateLinkResourceId':'/subscriptions/<subscriptionIdStorage>/resourceGroups/<resourceGroupNameStorage>/providers/Microsoft.Storage/storageAccounts/<storageAccountName>',
            'groupId':'blob',
            'requestMessage':'Please Approve.'
        }
    }
    "@
    
  2. 응답을 확인합니다.

    {
      "id": "/subscriptions/<subscriptionIdADX>/resourceGroups/<resourceGroupNameADX>/providers/Microsoft.Kusto/Clusters/<clusterName>/ManagedPrivateEndpoints/<newMpeName>",
      "name": "<clusterName>/<newMpeName>",
      "type": "Microsoft.Kusto/Clusters/ManagedPrivateEndpoints",
      "location": "DummyLocation",
      "properties": {
        "privateLinkResourceId": "/subscriptions/<subscriptionIdStorage>/resourceGroups/<resourceGroupNameStorage>/providers/Microsoft.Storage/storageAccounts/<storageAccountName>",
        "groupId": "blob",
        "requestMessage": "Please Approve.",
        "provisioningState": "Creating"
      }
    }
    

진행률을 확인하는 방법

관리형 프라이빗 엔드포인트 마이그레이션의 진행률을 확인하려면 다음 명령을 사용합니다.

  1. 다음 명령 실행:

    #replace the <...> placeholders with the correct values
    armclient GET /subscriptions/<subscriptionIdADX>/resourceGroups/<resourceGroupNameADX>/providers/Microsoft.Kusto/clusters/<clusterName>/managedPrivateEndpoints/<newMpeName>?api-version=2022-02-01
    
  2. 응답을 확인합니다.

    {
      "id": "/subscriptions/<subscriptionIdADX>/resourceGroups/<resourceGroupNameADX>/providers/Microsoft.Kusto/Clusters/<clusterName>/ManagedPrivateEndpoints/<newMpeName>",
      "name": "<clusterName>/<newMpeName>",
      "type": "Microsoft.Kusto/Clusters/ManagedPrivateEndpoints",
      "location": "DummyLocation",
      "properties": {
        "privateLinkResourceId": "/subscriptions/02de0e00-8c52-405c-9088-1342de78293d/resourceGroups/<resourceGroupNameADX>/providers/Microsoft.<service>/<...>/<name>",
        "groupId": "<groupId>",
        "requestMessage": "Please Approve.",
        "provisioningState": "Succeeded"
      },
      "systemData": {
        "createdBy": "<UserName>",
        "createdByType": "User",
        "createdAt": "2022-02-05T08:29:54.2912851Z",
        "lastModifiedBy": "chrisqpublic@contoso.com",
        "lastModifiedByType": "User",
        "lastModifiedAt": "2022-02-05T08:29:54.2912851Z"
      }
    }
    

관리형 프라이빗 엔드포인트 승인

관리되는 프라이빗 엔드포인트를 만드는 데 사용한 방법 중에서 대상 리소스에 대한 만들기를 승인해야 합니다. Event Hubs 서비스에 대한 관리형 프라이빗 엔드포인트를 승인하려면 다음을 수행합니다.

  1. Azure Portal에서 Event Hubs 서비스로 이동한 다음, 네트워킹을 선택합니다.

  2. 프라이빗 엔드포인트 연결을 선택하고 사용자가 만든 관리형 프라이빗 엔드포인트를 선택한 다음, 승인을 선택합니다.

    Event Hubs 서비스에 대한 관리형 프라이빗 엔드포인트 승인을 보여 주는 네트워킹 페이지의 스크린샷.

  3. 연결 상태 열에서 관리형 프라이빗 엔드포인트가 승인되었는지 확인합니다.

    Event Hubs 서비스에 대해 승인된 관리형 프라이빗 엔드포인트를 보여 주는 네트워킹 페이지의 스크린샷.

이제 클러스터가 관리형 프라이빗 엔드포인트 연결을 사용하여 리소스에 연결할 수 있습니다.

여러 관리형 프라이빗 엔드포인트 만들기

ARM 템플릿 및 Terraform을 사용하여 여러 관리형 프라이빗 엔드포인트를 만들 수 있습니다. 다음 예제에서는 Event Hubs 네임스페이스에 대한 관리되는 프라이빗 엔드포인트가 Storage 계정에 대한 엔드포인트 앞에 만들어지도록 합니다.

다음 예제에서는 ARM 템플릿을 사용하여 Azure Data Explorer 클러스터에 두 개의 관리형 프라이빗 엔드포인트를 만듭니다. 첫 번째 엔드포인트는 Event Hubs 네임스페이스에 연결됩니다. 두 번째 엔드포인트는 Event Hubs 엔드포인트가 먼저 생성되도록 하는 종속성을 사용하여 Storage 계정에 연결합니다.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "cluster_name": {
            "defaultValue": "<ADX cluster name>",
            "type": "String"
        },
        "eventhub_resource_id": {
            "defaultValue": "<Eventhub resource id>",
            "type": "String"
        },
        "storage_resource_id": {
            "defaultValue": "<Storage resource id>",
            "type": "String"
        },
        "managed_pe_eventhub_name": {
            "defaultValue": "<name of the managed private endpoint to Event Hub>",
            "type": "String"
        },
        "managed_pe_storage_name": {
            "defaultValue": "<name of the managed private endpoint to Storage>",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.Kusto/Clusters",
            "apiVersion": "2023-08-15",
            "name": "[parameters('cluster_name')]",
            "location": "<region of the cluster>",
            "sku": {...},
            "zones": {...}
            "properties": {...}
        },
        {
            "type": "Microsoft.Kusto/Clusters/ManagedPrivateEndpoints",
            "apiVersion": "2023-08-15",
            "name": "[concat(parameters('cluster_name'), '/', parameters('managed_pe_eventhub_name'))]",
            "dependsOn": [
                "[resourceId('Microsoft.Kusto/Clusters', parameters('cluster_name'))]"
            ],
            "properties": {
                "privateLinkResourceId": "[parameters('eventhub_resource_id')]",
                "groupId": "namespace",
                "requestMessage": "Please approve"
            }
        },
        {
            "type": "Microsoft.Kusto/Clusters/ManagedPrivateEndpoints",
            "apiVersion": "2023-08-15",
            "name": "[concat(parameters('cluster_name'), '/', parameters('managed_pe_storage_name'))]",
            "dependsOn": [
                "[resourceId('Microsoft.Kusto/Clusters', parameters('cluster_name'))]",
                "[resourceId('Microsoft.Kusto/Clusters/ManagedPrivateEndpoints', parameters('cluster_name'), parameters('managed_pe_eventhub_name'))]"
            ],
            "properties": {
                "privateLinkResourceId": "[parameters('storage_resource_id')]",
                "groupId": "blob",
                "requestMessage": "Please approve"
            }
        }
    ]
}

자동 승인

요청 ID에 Microsoft가 있는 경우 관리형 프라이빗 엔드포인트를 자동으로 승인수 있습니다.<관리되는 프라이빗 엔드포인트의 대상 리소스에 대한 Provider>/ResourceType>/privateEndpointConnectionsApproval/action 권한<입니다.