Compartilhar via


Criar um ponto de extremidade privado gerenciado para o Azure Data Explorer

Pontos de extremidade privados gerenciados são necessários para se conectar a recursos do Azure altamente protegidos. São conexões privadas unidirecionais que permitem que o Azure Data Explorer se conecte a outros serviços protegidos. Neste artigo, você aprenderá a criar um ponto de extremidade privado gerenciado e conectá-lo à sua fonte de dados.

Pré-requisitos

Criar um ponto de extremidade privado gerenciado usando o portal do Azure

Você pode criar um ponto de extremidade privado gerenciado usando o portal do seu cluster a ser usado ao acessar seu armazenamento.

  1. No portal do Azure, navegue até seu cluster e selecione Rede.

  2. Selecione Pontos de extremidade privados gerenciados e, em seguida, Adicionar.

    Captura de tela da página de rede, mostrando a primeira etapa na criação de um ponto de extremidade privado gerenciado.

  3. No painel Novo ponto de extremidade privado gerenciado, preencha os detalhes do recurso com as informações a seguir e selecione Avançar.

    Captura de tela da página de rede, mostrando a segunda etapa na criação de um ponto de extremidade privado gerenciado.

    Configuração Valor sugerido Descrição do campo
    Nome mpeToStorage O nome do ponto de extremidade privado gerenciado
    Assinatura Sua assinatura Selecione a assinatura do Azure que você deseja usar para seu cluster
    Tipo de recurso Microsoft.Storage/storageAccounts Selecione o tipo de recursos relevante que você deseja para sua fonte de dados.
    Nome do recurso Compartilhar Escolha o cluster que deve ser usado como destino para o novo Ponto de Extremidade Privado do Azure
    Sub-recurso de destino blob Selecione o destino relevante para sua fonte de dados.
  4. Selecione Criar para criar o recurso de ponto de extremidade privado gerenciado.

Criar um ponto de extremidade privado gerenciado usando a API REST

A criação de um ponto de extremidade privado gerenciado requer uma única chamada à API para o provedor de recursos Kusto. Você pode estabelecer um ponto de extremidade privado gerenciado para os seguintes tipos de recursos:

  • Microsoft.Storage/storageAccounts (o sub-recurso pode ser "blob" ou "dfs")
  • Microsoft.EventHub/namespaces (sub-recurso "namespace")
  • Microsoft.Devices/IoTHubs (sub-recurso "iotHub")
  • Microsoft.KeyVault/vaults (sub-recurso "vault")
  • Microsoft.Sql/servers (sub-resource "sqlServer")
  • Microsoft.Kusto/clusters (sub-recurso "cluster")
  • Microsoft.DigitalTwins/digitalTwinsInstance (sub-recurso "digitaltwinsinstance")

No exemplo a seguir, você usará o ARMclient no PowerShell para criar um ponto de extremidade privado gerenciado usando a API REST.

Observação

Conectar-se a uma conta de armazenamento de um recurso "dfs" requer um ponto de extremidade privado gerenciado adicional para o sub-recurso "blob".

Pré-requisitos para usar a API REST

  1. Instalar o choco

  2. Instalar o ARMClient

    choco install armclient
    
  3. Fazer logon com o ARMClient

    armclient login
    

Criar um ponto de extremidade privado gerenciado para os Hubs de Eventos do Azure

Use a seguinte chamada à API REST para habilitar o ponto de extremidade privado gerenciado para um serviço dos Hubs de Eventos:

  1. Execute o seguinte comando para criar um ponto de extremidade privado gerenciado para um serviço dos Hubs de Eventos:

    # 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. Verifique a resposta.

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

Criar um ponto de extremidade privado gerenciado para uma conta do Armazenamento do Azure

Use a seguinte chamada à API REST para habilitar o ponto de extremidade privado gerenciado para um blob do Armazenamento do Azure:

  1. Execute o seguinte comando para criar um ponto de extremidade privado gerenciado nos Hubs de Eventos:

    #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. Verifique a resposta.

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

Como verificar o andamento

Para verificar o andamento da migração de ponto de extremidade privado gerenciado, use o seguinte comando:

  1. Execute o comando a seguir:

    #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. Verifique a resposta.

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

Aprovar o ponto de extremidade privado gerenciado

Seja qual for o método usado para criar o ponto de extremidade privado gerenciado, você deve aprovar sua criação no recurso de destino. Para aprovar um ponto de extremidade privado gerenciado para um serviço de Hubs de Eventos:

  1. No portal do Azure, navegue até seu serviço dos Hubs de Eventos e selecione Rede.

  2. Selecione Conexões de ponto de extremidade privado, selecione o ponto de extremidade privado gerenciado que você criou e selecione Aprovar.

    Captura de tela da página de rede, mostrando a aprovação do ponto de extremidade privado gerenciado para o serviço Hubs de Eventos.

  3. Na coluna Estado de conexão, verifique se o ponto de extremidade privado gerenciado foi aprovado.

    Captura de tela da página de rede, mostrando o ponto de extremidade privado gerenciado aprovado para o serviço Hubs de Eventos.

Agora, o cluster pode se conectar ao recurso usando a conexão de ponto de extremidade privado gerenciado.

Criar vários pontos de extremidade privados gerenciados

Você pode criar vários pontos de extremidade privados gerenciados usando modelos do ARM e o Terraform. Os exemplos a seguir garantem que o ponto de extremidade privado gerenciado para o namespace dos Hubs de Eventos seja criado antes do da conta de armazenamento.

O exemplo a seguir usa um modelo do ARM para criar dois pontos de extremidade privados gerenciados em um cluster do Azure Data Explorer. O primeiro ponto de extremidade se conecta a um namespace dos Hubs de Eventos. O segundo ponto de extremidade se conecta a uma conta de armazenamento, com uma dependência que garante que o ponto de extremidade dos Hubs de Eventos seja criado primeiro.

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

Aprovação automática

Você pode aprovar automaticamente um ponto de extremidade privado gerenciado se a identidade solicitante tiver a Microsoft.<Provider>/ResourceType>/privateEndpointConnectionsApproval/action no recurso de destino do ponto de extremidade< privado gerenciado.