Condividi tramite


Creare un endpoint privato gestito per Esplora dati di Azure

Gli endpoint privati gestiti sono un metodo facoltativo per connettersi alle risorse di Azure altamente protette. Si tratta di connessioni private unidirezionale che consentono a Esplora dati di Azure di connettersi ad altri servizi protetti. Questo articolo illustra come creare un endpoint privato gestito e connetterlo all'origine dati.

Annotazioni

Invece di usare endpoint privati gestiti, usare un'identità gestita per connettersi ad Archiviazione di Azure (ad eccezione del flusso di Griglia di eventi) e a Hub eventi di Azure. Per connettersi usando un'identità gestita, configurare la risorsa Archiviazione di Azure o Event Hubs per riconoscere Azure Data Explorer come servizio attendibile. Usare quindi Identità Gestita per concedere l'accesso creando un'eccezione di regola di rete per i servizi di Azure attendibili.

Prerequisiti

Creare un endpoint privato gestito usando il portale di Azure

Creare un endpoint privato gestito utilizzando il portale del cluster per accedere al proprio spazio di archiviazione.

  1. Nel portale di Azure passare al cluster e selezionare Rete.

  2. Selezionare Endpoint privati gestiti e quindi selezionare aggiungi.

    Screenshot della pagina di rete, che mostra il primo passaggio della creazione di un endpoint privato gestito.

  3. Nel riquadro Nuovo endpoint privato gestito immettere i dettagli della risorsa con le informazioni seguenti e quindi selezionare Avanti.

    Screenshot della pagina di rete, che mostra il secondo passaggio nella creazione di un endpoint privato gestito.

    impostazione Valore consigliato Descrizione campo
    Nome mpeToStorage Nome dell'endpoint privato gestito
    Abbonamento Il tuo abbonamento Selezionare la sottoscrizione di Azure da usare per il cluster
    Tipo di risorsa Microsoft.Storage/storageAccounts Selezionare il tipo di risorsa pertinente desiderato per l'origine dati.
    Nome risorsa Condividi Scegliere il cluster che deve essere usato come destinazione per il nuovo endpoint privato di Azure
    Sottorisorsa di destinazione Blob Selezionare la destinazione pertinente per l'origine dati.
  4. Selezionare Crea per creare la risorsa dell'endpoint privato gestito.

Creare un endpoint privato gestito usando l'API REST

Per creare un endpoint privato gestito, effettuare una singola chiamata API al provider di risorse Kusto . È possibile creare un endpoint privato gestito per i tipi di risorse seguenti:

  • Microsoft.Storage/storageAccounts (sottorisorsa può essere "blob" o "dfs")
  • Microsoft.EventHub/namespaces (sottorisorsa "namespace")
  • Microsoft.Devices/IoTHubs (sottorisorsa "iotHub")
  • Microsoft.KeyVault/vaults (sottorisorsa "vault")
  • Microsoft.Sql/servers (sottorisorsa "sqlServer")
  • Microsoft.Kusto/clusters (sottorisorsa "cluster")
  • Microsoft.DigitalTwins/digitalTwinsInstance (sottorisorsa "digitaltwinsinstance")

Nell'esempio seguente viene usato ARMclient in PowerShell per creare un endpoint privato gestito usando l'API REST.

Annotazioni

La connessione a un account di archiviazione tramite una risorsa "dfs" richiede un altro endpoint privato gestito alla sottorisorsa "BLOB".

Prerequisiti per l'uso dell'API REST

  1. Installare choco

  2. Installare ARMClient

    choco install armclient
    
  3. Accedere con ARMClient

    armclient login
    

Creare un endpoint privato gestito in Hub eventi di Azure

Usare la chiamata API REST seguente per abilitare l'endpoint privato gestito a un servizio hub eventi:

  1. Eseguire il comando seguente per creare un endpoint privato gestito in un servizio hub eventi:

    # 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. Controllare la risposta.

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

Creare un endpoint privato gestito in un account di archiviazione di Azure

Usare la chiamata API REST seguente per abilitare l'endpoint privato gestito a un BLOB di archiviazione di Azure:

  1. Eseguire il comando seguente per creare un endpoint privato gestito in Hub eventi:

    #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. Controllare la risposta.

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

Come controllare lo stato di avanzamento

Per controllare lo stato di avanzamento della migrazione dell'endpoint privato gestito, usare il comando seguente:

  1. Eseguire il comando seguente:

    #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. Controllare la risposta.

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

Approvare l'endpoint privato gestito

Indipendentemente dal metodo usato per creare l'endpoint privato gestito, è necessario approvarne la creazione nella risorsa di destinazione. Per approvare un endpoint privato gestito a un servizio hub eventi:

  1. Nel portale di Azure passare al servizio Hub eventi e quindi selezionare Rete.

  2. Selezionare Connessioni endpoint privati, selezionare l'endpoint privato gestito creato e quindi selezionare Approva.

    Screenshot della pagina di rete di networking, che mostra l'approvazione dell'endpoint privato gestito al servizio Event Hubs.

  3. Nella colonna Stato connessione verificare che l'endpoint privato gestito sia approvato.

    Screenshot della pagina di gestione della rete, che mostra l'endpoint privato gestito e approvato per il servizio Event Hubs.

Il cluster può ora connettersi alla risorsa usando la connessione dell'endpoint privato gestito.

Creare più endpoint privati gestiti

È possibile creare più endpoint privati gestiti usando i modelli ARM e Terraform. Gli esempi seguenti garantiscono che l’endpoint privato gestito per il namespace di Event Hub sia creato prima di quello per l’account di archiviazione dati.

L'esempio seguente utilizza un modello ARM per creare due endpoint privati gestiti in un cluster di Azure Data Explorer. Il primo endpoint si connette a uno spazio dei nomi di Event Hubs. Il secondo endpoint si connette a un account di archiviazione, con una dipendenza che garantisce che l'endpoint di Hub eventi venga creato per primo.

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

Approvazione automatica

Se l'identità richiedente ha il permesso Microsoft.<Provider>/<ResourceType>/privateEndpointConnectionsApproval/action sulla risorsa di destinazione dell'endpoint privato gestito, puoi approvare automaticamente un endpoint privato gestito.