建立 Azure 數據總管的受控私人端點
必須有受控私人端點,才能連線到受到高度保護的 Azure 資源。 它們是單向私人連線,可讓 Azure 數據總管連線到其他受保護的服務。 在本文中,您將瞭解如何建立受控私人端點,並將其聯機至您的數據源。
必要條件
- Azure 訂用帳戶。 建立免費的 Azure 帳戶。
- 未插入虛擬網路的 Azure 數據總管叢集。
- 已向 Microsoft.Network 資源提供者註冊之訂用帳戶中的事件中樞或 Azure 儲存體 Blob。 如需詳細資訊,請參閱 註冊資源提供者的訂用帳戶。
使用 Azure 入口網站 建立受控私人端點
您可以使用入口網站建立受控私人端點,讓叢集在存取記憶體時使用。
在 Azure 入口網站中,瀏覽至您的叢集,然後選取 [網路]。
選取 [受控私人端點],然後選取 [ 新增]。
在 [ 新增受控私人端點 ] 窗格中,以下列資訊填寫資源詳細數據,然後選取 [ 下一步]。
設定 建議的值 欄位描述 名稱 mpeToStorage 受控私人端點的名稱 訂用帳戶 您的訂用帳戶 選取您要用於叢集的 Azure 訂用帳戶 資源類型 Microsoft.Storage/storageAccounts 選取數據源所需的相關資源類型。 資源名稱 共用 選擇應該作為新 Azure 私人端點目的地的叢集 目標子資源 Blob 選取數據源的相關目標。 選取 [建立 ] 以建立受控私人端點資源。
使用 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 的必要條件
安裝 choco
安裝 ARMClient
choco install armclient
使用 ARMClient 登入
armclient login
建立受控私人端點以 Azure 事件中樞
使用下列 REST API 呼叫來啟用事件中樞服務的受控私人端點:
執行下列命令,以建立事件中樞服務的受控私人端點:
# 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.' } } "@
檢查回應。
{ "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:
執行下列命令以建立事件中樞的受控私人端點:
#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.' } } "@
檢查回應。
{ "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" } }
如何檢查進度
若要檢查受控私人端點移轉的進度,請使用下列命令:
執行以下命令:
#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
檢查回應。
{ "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" } }
核准受控私人端點
無論您用來建立受控私人端點的方法,都必須在目標資源上核准其建立。 若要核准事件中樞服務的受控私人端點:
在 Azure 入口網站 中,流覽至事件中樞服務,然後選取 [網络]。
選取 [私人端點連線],選取您所建立的受控私人端點,然後選取 [ 核准]。
在 [ 連線狀態 ] 數據行中,確認受控私人端點已核准。
您的叢集現在可以使用受控私人端點聯機來連線到資源。
建立多個受控私人端點
您可以使用 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< 許可權。