Поделиться через


Создание управляемой частной конечной точки для Azure Data Explorer

Управляемые частные конечные точки — это необязательный метод для подключения к ресурсам Azure, которые очень защищены. Это односторонняя частная связь, которая позволяет Azure Data Explorer подключаться к другим защищенным службам. В этой статье вы узнаете, как создать управляемую частную конечную точку и подключить ее к источнику данных.

Замечание

Мы рекомендуем использовать управляемое удостоверение для подключения к службе хранилища Azure (кроме потока сетки событий) и Центров событий Azure вместо управляемых частных конечных точек. Чтобы подключиться с помощью управляемого удостоверения, настройте ресурс службы хранилища Azure или Центров событий для распознавания Azure Data Explorer как доверенной службы. Затем используйте Управляемое удостоверение, чтобы предоставить доступ, создав исключение в сетевых правилах для доверенных служб Azure.

Предпосылки

Создание управляемой частной конечной точки с помощью портала Azure

Вы можете создать управляемую частную конечную точку с помощью портала для кластера, используемого при доступе к хранилищу.

  1. Войдите на портал Azure, перейдите в свой кластер и выберите Сеть.

  2. Выберите управляемые частные конечные точки и нажмите кнопку "Добавить".

    Снимок экрана: страница сети, на которой показан первый шаг при создании управляемой частной конечной точки.

  3. На панели "Новая управляемая частная конечная точка " заполните сведения о ресурсе следующими сведениями, а затем нажмите кнопку "Далее".

    Снимок экрана: страница сети, на которой показан второй шаг при создании управляемой частной конечной точки.

    Настройки Рекомендуемое значение Описание поля
    Имя mpeToStorage Имя управляемой частной конечной точки
    Подписка Ваша подписка Выберите подписку Azure, которую вы хотите использовать для кластера.
    Тип ресурса Microsoft.Storage/storageAccounts Выберите нужный тип ресурсов для источника данных.
    Имя ресурса Делиться Выберите кластер, который должен использоваться в качестве назначения для новой частной конечной точки Azure
    Целевой подресурс блоб Выберите соответствующий целевой объект для источника данных.
  4. Выберите Создать, чтобы создать ресурс управляемой частной конечной точки.

Создание управляемой частной конечной точки с помощью REST API

Для создания управляемой частной конечной точки требуется один вызов API поставщику ресурсов Kusto . Вы можете установить управляемую частную конечную точку к следующим типам ресурсов:

  • Microsoft.Storage/storageAccounts (дочерний ресурс может быть "blob" или "dfs")
  • Microsoft.EventHub/namespaces (подресурс "пространство имен")
  • Microsoft.Devices/IoTHubs (дочерний ресурс iotHub)
  • Microsoft.KeyVault/vaults (вложенный ресурс "vault")
  • Microsoft.Sql/servers (подресурс "sqlServer")
  • Microsoft.Kusto/clusters (подресурс "cluster")
  • Microsoft.DigitalTwins/digitalTwinsInstance (подресурс "digitaltwinsinstance")

В следующем примере вы будете использовать ARMclient в PowerShell для создания управляемой частной конечной точки с помощью REST API.

Замечание

Для подключения к учетной записи хранения данных ресурсу "dfs" требуется дополнительная управляемая частная конечная точка к подресурсу "blob".

Предварительные требования для использования REST API

  1. Установка choco

  2. Установка ARMClient

    choco install armclient
    
  3. выполните вход с помощью ARMClient;

    armclient login
    

Создание управляемой частной конечной точки в Центрах событий Azure

Используйте следующий вызов REST API, чтобы включить управляемую частную конечную точку в службу Центров событий:

  1. Выполните следующую команду, чтобы создать управляемую частную конечную точку в службе Центров событий:

    # 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. Проверьте ответ.

    {
      "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, чтобы включить управляемую частную конечную точку для BLOB-хранилища Azure.

  1. Выполните следующую команду, чтобы создать управляемую частную конечную точку в Центрах событий:

    #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. Проверьте ответ.

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

Как проверить ход выполнения

Чтобы проверить ход миграции управляемой частной конечной точки, выполните следующую команду:

  1. Выполните следующую команду:

    #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. Проверьте ответ.

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

Утвердите управляемую частную конечную точку

Независимо от метода, используемого для создания управляемой частной конечной точки, необходимо утвердить его создание в целевом ресурсе. Чтобы утвердить управляемую частную конечную точку в службе Центров событий:

  1. На портале Azure перейдите в службу Центров событий и выберите "Сеть".

  2. Выберите подключения к частной конечной точке, выберите созданную управляемую частную конечную точку и нажмите кнопку "Утвердить".

    Снимок экрана страницы сетевых настроек, показывающий утверждение управляемой частной конечной точки для службы Центров событий.

  3. В столбце состояния подключения убедитесь, что управляемая частная конечная точка утверждена.

    Снимок экрана: страница сетевых настроек, на которой показана утвержденная управляемая частная конечная точка для службы Event Hubs.

Теперь кластер может подключиться к ресурсу с помощью подключения к управляемой частной конечной точке.

Создание нескольких управляемых частных конечных точек

Вы можете создать несколько управляемых частных конечных точек с помощью шаблонов ARM и Terraform. Следуйте следующим примерам, чтобы убедиться, что управляемая частная конечная точка в пространстве имен Центров событий создается перед конечной точкой для аккаунта хранения.

В следующем примере используется шаблон ARM для создания двух управляемых частных конечных точек в кластере Azure Data Explorer. Первая конечная точка подключается к пространству имен Центров событий. Вторая конечная точка подключается к учетной записи хранилища при наличии зависимости, обеспечивающей, что конечная точка для Центров событий создается сначала.

{
    "$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.<Provider>/<ResourceType>/privateEndpointConnectionsApproval/action на целевой ресурс управляемой частной конечной точки.