Criar um endpoint privado gerenciado para o Azure Data Explorer
Os pontos de extremidade privados gerenciados são necessários para se conectar aos recursos do Azure que são 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á como criar um ponto de extremidade privado gerenciado e conectá-lo à sua fonte de dados.
Observação
Recomendamos usar a Identidade Gerida para conectar ao Armazenamento do Azure e Hubs de Eventos do Azure em vez de pontos de extremidade privados geridos. Para se conectar usando identidades gerenciadas, configure os recursos do Armazenamento do Azure ou Hubs de Eventos para reconhecer o Azure Data Explorer como um serviço confiável. Em seguida, use Identidade Gerenciada para conceder acesso criando uma exceção de regra de rede para serviços Azure fidedignos.
Pré-requisitos
- Uma assinatura do Azure. Crie uma conta gratuita do Azure .
- Um cluster Azure Data Explorer que não é injetado em uma rede virtual.
- Um hub de eventos ou um blob de de Armazenamento do Azure em uma assinatura registrada no provedor de recursos Microsoft.Network. Para obter mais informações, consulte Registar subscrição para o fornecedor de recursos.
Criar um ponto de extremidade privado gerido usando o portal Azure
Pode criar um endpoint privado gerido utilizando o portal para que o seu cluster o utilize ao aceder ao seu armazenamento.
No portal do Azure, navegue até o cluster e selecione Rede.
Selecione Pontos de extremidade privados gerenciadose, em seguida, selecione Adicionar.
No painel Novo ponto de extremidade privado gerenciado, preencha os detalhes do recurso com as seguintes informações e selecione Avançar.
Configuração Valor sugerido Descrição do campo Nome mpeToStorage O nome do ponto de extremidade privado gerenciado Subscrição A sua subscrição Selecione a assinatura do Azure que você deseja usar para seu cluster Tipo de recurso Microsoft.Storage/storageAccounts Selecione o tipo de recursos relevantes que você deseja para sua fonte de dados. Nome do recurso partilhar Escolha o cluster que deve ser usado como destino para o novo Ponto de Extremidade Privado do Azure Subrecurso de destino massa 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
Criar um ponto de extremidade privado gerido requer uma única chamada de API para o fornecedor de recursos Kusto. Você pode estabelecer um ponto de extremidade privado gerenciado para os seguintes tipos de recursos:
- Microsoft.Storage/storageAccounts (o subrecurso 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-recurso "sqlServer")
- Microsoft.Kusto/clusters (sub-recurso "cluster")
- Microsoft.DigitalTwins/digitalTwinsInstance (sub-recurso "digitaltwinsinstance")
Neste exemplo, você usará o ARMclient no PowerShell para criar um ponto de extremidade privado gerenciado usando a API REST.
Observação
Conectando-se a uma conta de armazenamento Um recurso "dfs" requer um ponto de extremidade privado gerenciado adicional para o subrecurso "blob".
Pré-requisitos para usar a API REST
Instale choco
Instale ARMClient
choco install armclient
Faça login com ARMClient
armclient login
Criar um endpoint privado gerido para Hubs de Eventos do Azure
Use a seguinte chamada de API REST para habilitar o ponto de extremidade privado gerenciado para um serviço de Hubs de Eventos:
Execute o seguinte comando para criar um ponto de extremidade privado gerenciado para um serviço de 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.' } } "@
Confira 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 de Armazenamento do Azure
Use a seguinte chamada de API REST para habilitar o ponto de extremidade privado gerenciado para um blob de Armazenamento do Azure:
Execute o seguinte comando para criar um ponto de extremidade privado gerenciado para 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.' } } "@
Confira 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 os progressos realizados
Para verificar o progresso da migração do ponto de extremidade privado gerenciado, use o seguinte comando:
Execute o seguinte comando:
#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
Confira 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é o serviço Event Hubs e depois selecione Networking.
Selecione Conexões de ponto de extremidade privado, selecione o ponto de extremidade privado gerenciado que você criou e, em seguida, selecione Aprovar.
Na coluna de estado da conexão , verifique se o ponto de extremidade privado gerido na coluna foi aprovado.
Agora, o seu cluster pode ligar-se ao recurso através da ligação de ponto final privado gerido.
Crie vários pontos de extremidade privados gerenciados
Você pode criar múltiplos pontos de extremidade privados geridos usando modelos ARM e Terraform. Os exemplos a seguir garantem que o ponto de extremidade privado gerenciado para o namespace Hubs de Eventos seja criado antes daquele para a conta de Armazenamento.
O exemplo a seguir usa um modelo ARM para criar dois pontos de extremidade privados gerenciados em um cluster do Azure Data Explorer. O primeiro ponto de extremidade liga-se a um namespace de Hubs de Eventos. O segundo ponto de extremidade liga-se a uma conta de armazenamento, com uma dependência que garante que o ponto de extremidade Hub 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 o Microsoft.<Provedor>/<ResourceType>/privateEndpointConnectionsApproval/action permissão no recurso de destino do ponto de extremidade privado gerenciado.