Udostępnij przez


Tworzenie zarządzanego prywatnego punktu końcowego dla usługi Azure Data Explorer

Zarządzane prywatne punkty końcowe to opcjonalna metoda łączenia się z zasobami platformy Azure, które są wysoce chronione. Są one jednokierunkowymi połączeniami prywatnymi, które umożliwiają usłudze Azure Data Explorer łączenie się z innymi chronionymi usługami. W tym artykule dowiesz się, jak utworzyć zarządzany prywatny punkt końcowy i połączyć go ze źródłem danych.

Uwaga

Zalecamy używanie tożsamości zarządzanej do nawiązywania połączenia z usługą Azure Storage (z wyjątkiem przepływu usługi Event Grid) i usługi Azure Event Hubs zamiast zarządzanych prywatnych punktów końcowych. Aby nawiązać połączenie przy użyciu tożsamości zarządzanej, skonfiguruj zasób usługi Azure Storage lub Event Hubs, aby rozpoznać usługę Azure Data Explorer jako zaufaną usługę. Następnie użyj tożsamości zarządzanej, aby udzielić dostępu, tworząc wyjątek reguły sieciowej dla zaufanych usług platformy Azure.

Wymagania wstępne

Tworzenie zarządzanego prywatnego punktu końcowego przy użyciu witryny Azure Portal

Możesz utworzyć zarządzany prywatny punkt końcowy za pomocą portalu, którego klaster będzie używał do uzyskiwania dostępu do magazynu.

  1. W witrynie Azure Portal przejdź do klastra, a następnie wybierz pozycję Sieć.

  2. Wybierz pozycję Zarządzane prywatne punkty końcowe, a następnie wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający stronę sieci pokazującą pierwszy krok tworzenia zarządzanego prywatnego punktu końcowego.

  3. W okienku Nowy zarządzany prywatny punkt końcowy wypełnij szczegóły zasobu następującymi informacjami, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający stronę sieci pokazującą drugi krok tworzenia zarządzanego prywatnego punktu końcowego.

    Ustawienie Sugerowana wartość Opis pola
    Nazwisko mpeToStorage Nazwa zarządzanego prywatnego punktu końcowego
    Subskrypcja Twoja subskrypcja Wybierz subskrypcję platformy Azure, której chcesz użyć dla klastra
    Typ zasobu Microsoft.Storage/storageAccounts Wybierz odpowiedni typ zasobów dla źródła danych.
    Nazwa zasobu Udostępnij Wybierz klaster, który ma być używany jako miejsce docelowe dla nowego prywatnego punktu końcowego platformy Azure
    Docelowy zasób podrzędny Blob Wybierz odpowiedni cel dla swojego źródła danych.
  4. Wybierz Utwórz, aby utworzyć zarządzany prywatny zasób punktu końcowego.

Tworzenie zarządzanego prywatnego punktu końcowego przy użyciu interfejsu API REST

Utworzenie zarządzanego prywatnego punktu końcowego wymaga pojedynczego wywołania interfejsu API do zasobu Kusto. Zarządzany prywatny punkt końcowy można ustanowić w następujących typach zasobów:

  • Microsoft.Storage/storageAccounts (zasób podrzędny może być "blob" lub "dfs")
  • Microsoft.EventHub/przestrzenie nazw (podsób "przestrzeń nazw")
  • Microsoft.Devices/IoTHubs (podsób "iotHub")
  • Microsoft.KeyVault/vaults (podzasób "vault")
  • Microsoft.Sql/servers (podzasób "sqlServer")
  • Microsoft.Kusto/clusters (zasób podrzędny "cluster")
  • Microsoft.DigitalTwins/digitalTwinsInstance (podzasób "digitaltwinsinstance")

W poniższym przykładzie użyjesz klienta ARMclient w programie PowerShell, aby utworzyć zarządzany prywatny punkt końcowy przy użyciu interfejsu API REST.

Uwaga

Aby połączyć się z kontem magazynu za pomocą zasobu "dfs", wymagany jest dodatkowy zarządzany prywatny punkt końcowy do podrzędnego zasobu "blob".

Wymagania wstępne dotyczące korzystania z interfejsu API REST

  1. Zainstaluj choco

  2. Instalowanie klienta ARMClient

    choco install armclient
    
  3. Logowanie przy użyciu klienta ARMClient

    armclient login
    

Tworzenie zarządzanego prywatnego punktu końcowego w usłudze Azure Event Hubs

Użyj następującego wywołania interfejsu API REST, aby włączyć zarządzany prywatny punkt końcowy w usłudze Event Hubs:

  1. Uruchom następujące polecenie, aby utworzyć zarządzany prywatny punkt końcowy w usłudze Event Hubs:

    # 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. Sprawdź odpowiedź.

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

Tworzenie zarządzanego prywatnego punktu końcowego na koncie usługi Azure Storage

Użyj następującego wywołania interfejsu API REST, aby włączyć zarządzany prywatny punkt końcowy do obiektu blob usługi Azure Storage:

  1. Uruchom następujące polecenie, aby utworzyć zarządzany prywatny punkt końcowy w usłudze Event Hubs:

    #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. Sprawdź odpowiedź.

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

Jak sprawdzić postęp

Aby sprawdzić postęp migracji zarządzanego prywatnego punktu końcowego, użyj następującego polecenia:

  1. Uruchom następujące polecenie:

    #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. Sprawdź odpowiedź.

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

Zatwierdź zarządzany prywatny punkt końcowy

Niezależnie od metody użytej do utworzenia zarządzanego prywatnego punktu końcowego należy zatwierdzić jego utworzenie w zasobie docelowym. Aby zatwierdzić zarządzany prywatny punkt końcowy w usłudze Event Hubs:

  1. W witrynie Azure Portal przejdź do usługi Event Hubs, a następnie wybierz pozycję Sieć.

  2. Wybierz Połączenia prywatnych punktów końcowych, następnie utworzony zarządzany prywatny punkt końcowy, a potem wybierz Zatwierdź.

    Zrzut ekranu przedstawiający stronę sieciową z zatwierdzeniem zarządzanego prywatnego punktu końcowego dla usługi Event Hubs.

  3. W kolumnie Stan połączenia sprawdź, czy zarządzany prywatny punkt końcowy jest zatwierdzony.

    Zrzut ekranu przedstawiający stronę sieci z zatwierdzonym prywatnym punktem końcowym zarządzanym w usłudze Event Hubs.

Klaster może teraz nawiązać połączenie z zasobem przy użyciu zarządzanego połączenia prywatnego punktu końcowego.

Tworzenie wielu zarządzanych prywatnych punktów końcowych

Można utworzyć wiele zarządzanych prywatnych punktów końcowych przy użyciu szablonów ARM i programu Terraform. W poniższych przykładach upewniono się, że zarządzany prywatny punkt końcowy w przestrzeni nazw usługi Event Hubs zostanie utworzony przed utworzeniem go na koncie usługi Storage.

W poniższym przykładzie użyto szablonu usługi ARM do utworzenia dwóch zarządzanych prywatnych punktów końcowych w klastrze usługi Azure Data Explorer. Pierwszy punkt końcowy łączy się z Event Hubs namespace. Drugi punkt końcowy łączy się z kontem Storage, przy czym zależność zapewnia, że punkt końcowy Event Hubs zostanie utworzony jako pierwszy.

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

Automatyczne zatwierdzanie

Jeśli żądająca tożsamość ma firmę do zasobu docelowego zarządzanego prywatnego< punktu końcowego.