共用方式為


建立 Azure 數據總管的受控私人端點

必須有受控私人端點,才能連線到受到高度保護的 Azure 資源。 它們是單向私人連線,可讓 Azure 數據總管連線到其他受保護的服務。 在本文中,您將瞭解如何建立受控私人端點,並將其聯機至您的數據源。

必要條件

使用 Azure 入口網站 建立受控私人端點

您可以使用入口網站建立受控私人端點,讓叢集在存取記憶體時使用。

  1. 在 Azure 入口網站中,瀏覽至您的叢集,然後選取 [網路]。

  2. 選取 [受控私人端點],然後選取 [ 新增]。

    網路頁面的螢幕快照,其中顯示建立受控私人端點的第一個步驟。

  3. 在 [ 新增受控私人端點 ] 窗格中,以下列資訊填寫資源詳細數據,然後選取 [ 下一步]。

    網路頁面的螢幕快照,其中顯示建立受控私人端點的第二個步驟。

    設定 建議的值 欄位描述
    名稱 mpeToStorage 受控私人端點的名稱
    訂用帳戶 您的訂用帳戶 選取您要用於叢集的 Azure 訂用帳戶
    資源類型 Microsoft.Storage/storageAccounts 選取數據源所需的相關資源類型。
    資源名稱 共用 選擇應該作為新 Azure 私人端點目的地的叢集
    目標子資源 Blob 選取數據源的相關目標。
  4. 選取 [建立 ] 以建立受控私人端點資源。

使用 REST API 建立受控私人端點

建立受控私人端點需要對 Kusto 資源提供者進行單一 API 呼叫。 您可以建立下列資源類型的受控私人端點:

  • Microsoft.Storage/storageAccounts (子資源可以是 “blob” 或 “dfs”)
  • Microsoft.EventHub/namespaces (子資源 “namespace”)
  • Microsoft.Devices/IoTHubs (子資源 “iotHub”)
  • Microsoft.KeyVault/vaults (子資源 “vault”)
  • Microsoft.Sql/servers (子資源 “sqlServer”)
  • Microsoft.Kusto/clusters (子資源 “cluster”)
  • Microsoft.DigitalTwins/digitalTwinsInstance (sub-resource “digitaltwinsinstance”)

在此範例中,您將使用 PowerShell中的ARMclient ,使用REST API建立受控私人端點。

注意

線上到記憶體帳戶「dfs」資源需要額外的受控私人端點至「Blob」子資源。

使用 REST API 的必要條件

  1. 安裝 choco

  2. 安裝 ARMClient

    choco install armclient
    
  3. 使用 ARMClient 登入

    armclient login
    

建立受控私人端點以 Azure 事件中樞

使用下列 REST API 呼叫來啟用事件中樞服務的受控私人端點:

  1. 執行下列命令,以建立事件中樞服務的受控私人端點:

    # 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 儲存體 帳戶的受控私人端點

使用下列 REST API 呼叫,將受控私人端點啟用至 Azure 儲存體 Blob:

  1. 執行下列命令以建立事件中樞的受控私人端點:

    #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"
      }
    }
    

核准受控私人端點

無論您用來建立受控私人端點的方法,都必須在目標資源上核准其建立。 若要核准事件中樞服務的受控私人端點:

  1. 在 Azure 入口網站 中,流覽至事件中樞服務,然後選取 [網络]。

  2. 選取 [私人端點連線],選取您所建立的受控私人端點,然後選取 [ 核准]。

    網路頁面的螢幕快照,其中顯示事件中樞服務的受控私人端點核准。

  3. 在 [ 連線狀態 ] 數據行中,確認受控私人端點已核准。

    網路頁面的螢幕快照,其中顯示事件中樞服務的已核准受控私人端點。

您的叢集現在可以使用受控私人端點聯機來連線到資源。

建立多個受控私人端點

您可以使用 ARM 範本和 Terraform 建立多個受控私人端點。 下列範例可確保在記憶體帳戶之前,先建立事件中樞命名空間的受控私人端點。

下列範例會使用ARM範例在 Azure 數據總管叢集中建立兩個受控私人端點。 第一個端點會連線到事件中樞命名空間。 第二個端點會連線到記憶體帳戶,並具有確保先建立事件中樞端點的相依性。

{
    "$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"
            }
        }
    ]
}

自動核准

如果要求身分識別具有Microsoft,您可以自動核准受控私人端點。<Managed 私人端點目標資源的 Provider>/ResourceType>/privateEndpointConnectionsApproval/action< 許可權。