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
- Uma assinatura do Azure. Criar uma conta gratuita do Azure.
- Um cluster do Azure Data Explorer que não é injetado em uma rede virtual.
- Um hub de eventos ou um blob de Armazenamento do Azure em uma assinatura registrada no provedor de recursos Microsoft.Network. Para obter mais informações, consulte Registrar assinatura no provedor de recursos.
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.
No portal do Azure, navegue até seu cluster e selecione Rede.
Selecione Pontos de extremidade privados gerenciados e, em seguida, Adicionar.
No painel Novo ponto de extremidade privado gerenciado, preencha os detalhes do recurso com as informações a seguir e selecione Avançar.
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. 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
Instalar o choco
Instalar o ARMClient
choco install armclient
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:
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.' } } "@
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:
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.' } } "@
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:
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
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:
No portal do Azure, navegue até seu serviço dos Hubs de Eventos e selecione Rede.
Selecione Conexões de ponto de extremidade privado, selecione o ponto de extremidade privado gerenciado que você criou e selecione Aprovar.
Na coluna Estado de conexão, verifique se o ponto de extremidade privado gerenciado foi aprovado.
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.