Autoryzacja w punktach końcowych wsadowych

Punkty końcowe usługi Batch obsługują uwierzytelnianie w usłudze Microsoft Entra lub aad_token. To znaczy, że aby wywołać punkt końcowy Batch, należy przedstawić prawidłowy token uwierzytelniania Microsoft Entra identyfikatorowi URI punktu końcowego Batch. Autoryzacja jest wymuszana na poziomie punktu końcowego. W poniższym artykule wyjaśniono, jak prawidłowo współdziałać z punktami końcowymi wsadowymi i wymaganiami dotyczącymi zabezpieczeń.

Jak działa autoryzacja

Aby wywołać punkt końcowy wsadowy, użytkownik musi przedstawić prawidłowy token firmy Microsoft Entra reprezentujący podmiot zabezpieczeń. Ten podmiot zabezpieczeń może być jednostką użytkownika lub jednostką usługi. W każdym razie po wywołaniu punktu końcowego zadanie wdrożenia wsadowego jest tworzone w ramach tożsamości skojarzonej z tokenem. Tożsamość wymaga następujących uprawnień, aby pomyślnie utworzyć zadanie:

  • Odczyt punktów końcowych/wdrożeń wsadowych.
  • Utwórz zadania w punktach końcowych/wdrożeniu wnioskowania wsadowego.
  • Tworzenie eksperymentów/przebiegów.
  • Odczyt i zapis z/do magazynów danych.
  • Wyświetla listę wpisów tajnych magazynu danych.

Aby uzyskać szczegółową listę uprawnień RBAC, zobacz Konfigurowanie kontroli dostępu opartej na rolach dla wywołania punktu końcowego wsadowego.

Ważne

Tożsamość używana do wywoływania punktu końcowego wsadowego może nie być używana do odczytywania danych bazowych w zależności od konfiguracji magazynu danych. Aby uzyskać więcej informacji, zobacz Konfigurowanie klastrów obliczeniowych na potrzeby dostępu do danych.

Jak uruchamiać zadania przy użyciu różnych typów poświadczeń

W poniższych przykładach pokazano różne sposoby uruchamiania zadań wdrażania wsadowego przy użyciu różnych typów poświadczeń:

Ważne

Podczas pracy z obszarami roboczymi z obsługą linków prywatnych nie można wywoływać punktów końcowych wsadowych z interfejsu użytkownika w usłudze Azure Machine Edukacja Studio. Zamiast tworzenia zadań użyj interfejsu wiersza polecenia usługi Azure Machine Edukacja w wersji 2.

Wymagania wstępne

Uruchamianie zadań przy użyciu poświadczeń użytkownika

W tym przypadku chcemy wykonać punkt końcowy wsadowy przy użyciu tożsamości aktualnie zalogowanego użytkownika. Wykonaj te kroki:

  1. Użyj interfejsu wiersza polecenia platformy Azure, aby zalogować się przy użyciu uwierzytelniania kodu interaktywnego lub urządzenia:

    az login
    
  2. Po uwierzytelnieniu użyj następującego polecenia, aby uruchomić zadanie wdrożenia wsadowego:

    az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                                --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci
    

Uruchamianie zadań przy użyciu jednostki usługi

W tym przypadku chcemy wykonać punkt końcowy wsadowy przy użyciu jednostki usługi utworzonej już w identyfikatorze Entra firmy Microsoft. Aby ukończyć uwierzytelnianie, należy utworzyć wpis tajny w celu przeprowadzenia uwierzytelniania. Wykonaj te kroki:

  1. Utwórz wpis tajny do użycia do uwierzytelniania zgodnie z wyjaśnieniem w temacie Opcja 3: Tworzenie nowego wpisu tajnego klienta.

  2. Aby uwierzytelnić się przy użyciu jednostki usługi, użyj następującego polecenia. Aby uzyskać więcej informacji, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.

    az login --service-principal \
             --tenant <tenant> \
             -u <app-id> \
             -p <password-or-cert> 
    
  3. Po uwierzytelnieniu użyj następującego polecenia, aby uruchomić zadanie wdrożenia wsadowego:

    az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                                --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/
    

Uruchamianie zadań przy użyciu tożsamości zarządzanej

Tożsamości zarządzane umożliwiają wywoływanie punktu końcowego i wdrożeń wsadowych. Zwróć uwagę, że ta tożsamość zarządzania nie należy do punktu końcowego wsadowego, ale jest to tożsamość używana do wykonywania punktu końcowego, a tym samym utworzenie zadania wsadowego. W tym scenariuszu mogą być używane zarówno tożsamości przypisane przez użytkownika, jak i przypisane przez system.

W przypadku zasobów skonfigurowanych do korzystania z tożsamości zarządzanych dla zasobów platformy Azure możesz logować się przy użyciu tożsamości zarządzanej. Aby zalogować się przy użyciu tożsamości zasobu, należy użyć flagi --identity. Aby uzyskać więcej informacji, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.

az login --identity

Po uwierzytelnieniu użyj następującego polecenia, aby uruchomić zadanie wdrożenia wsadowego:

az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                            --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci

Konfigurowanie kontroli dostępu opartej na rolach dla wywołania punktów końcowych usługi Batch

Punkty końcowe usługi Batch udostępniają trwałym użytkownikom interfejsu API możliwość generowania zadań. Wywołanie żąda odpowiedniego uprawnienia, aby móc wygenerować te zadania. Możesz użyć jednej z wbudowanych ról zabezpieczeń lub utworzyć rolę niestandardową do celów.

Aby pomyślnie wywołać punkt końcowy wsadowy, potrzebne są następujące jawne akcje przyznane tożsamości używanej do wywoływania punktów końcowych. Zobacz Kroki przypisywania roli platformy Azure, aby uzyskać instrukcje dotyczące ich przypisywania.

"actions": [
    "Microsoft.MachineLearningServices/workspaces/read",
    "Microsoft.MachineLearningServices/workspaces/data/versions/write",
    "Microsoft.MachineLearningServices/workspaces/datasets/registered/read",
    "Microsoft.MachineLearningServices/workspaces/datasets/registered/write",
    "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/read",
    "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/write",
    "Microsoft.MachineLearningServices/workspaces/datastores/read",
    "Microsoft.MachineLearningServices/workspaces/datastores/write",
    "Microsoft.MachineLearningServices/workspaces/datastores/listsecrets/action",
    "Microsoft.MachineLearningServices/workspaces/listStorageAccountKeys/action",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/read",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/read",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/jobs/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/jobs/write",
    "Microsoft.MachineLearningServices/workspaces/computes/read",
    "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
    "Microsoft.MachineLearningServices/workspaces/metadata/secrets/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
    "Microsoft.MachineLearningServices/workspaces/experiments/read",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
    "Microsoft.MachineLearningServices/workspaces/metrics/resource/write",
    "Microsoft.MachineLearningServices/workspaces/modules/read",
    "Microsoft.MachineLearningServices/workspaces/models/read",
    "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/read",
    "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write",
    "Microsoft.MachineLearningServices/workspaces/environments/read",
    "Microsoft.MachineLearningServices/workspaces/environments/write",
    "Microsoft.MachineLearningServices/workspaces/environments/build/action",
    "Microsoft.MachineLearningServices/workspaces/environments/readSecrets/action"
]

Konfigurowanie klastrów obliczeniowych na potrzeby dostępu do danych

Punkty końcowe usługi Batch zapewniają, że tylko autoryzowani użytkownicy mogą wywoływać wdrożenia wsadowe i generować zadania. Jednak w zależności od sposobu konfigurowania danych wejściowych inne poświadczenia mogą służyć do odczytywania danych bazowych. Skorzystaj z poniższej tabeli, aby zrozumieć, które poświadczenia są używane:

Typ danych wejściowych Poświadczenia w magazynie Używane poświadczenia Dostęp udzielony przez
Magazyn danych Tak Poświadczenia magazynu danych w obszarze roboczym Klucz dostępu lub sygnatura dostępu współdzielonego
Zasób danych Tak Poświadczenia magazynu danych w obszarze roboczym Klucz dostępu lub sygnatura dostępu współdzielonego
Magazyn danych Nie. Tożsamość zadania i tożsamość zarządzana klastra obliczeniowego RBAC
Zasób danych Nie. Tożsamość zadania i tożsamość zarządzana klastra obliczeniowego RBAC
Azure Blob Storage Nie dotyczy Tożsamość zadania i tożsamość zarządzana klastra obliczeniowego RBAC
Usługa Azure Data Lake Storage 1. generacji Nie dotyczy Tożsamość zadania i tożsamość zarządzana klastra obliczeniowego POSIX
Azure Data Lake Storage Gen2 Nie dotyczy Tożsamość zadania i tożsamość zarządzana klastra obliczeniowego PoSIX i RBAC

W przypadku tych elementów w tabeli, w której jest wyświetlana tożsamość zadania i tożsamość zarządzana klastra obliczeniowego, tożsamość zarządzana klastra obliczeniowego jest używana do instalowania i konfigurowania kont magazynu. Jednak tożsamość zadania jest nadal używana do odczytywania danych bazowych, co pozwala uzyskać szczegółową kontrolę dostępu. Oznacza to, że aby pomyślnie odczytać dane z magazynu, tożsamość zarządzana klastra obliczeniowego, w którym jest uruchomione wdrożenie, musi mieć co najmniej dostęp czytelnika danych obiektu blob usługi Storage do konta magazynu.

Aby skonfigurować klaster obliczeniowy na potrzeby dostępu do danych, wykonaj następujące kroki:

  1. Przejdź do usługi Azure Machine Edukacja Studio.

  2. Przejdź do obszaru Obliczenia, a następnie pozycję Klastry obliczeniowe i wybierz klaster obliczeniowy używany przez wdrożenie.

  3. Przypisz tożsamość zarządzaną do klastra obliczeniowego:

    1. W sekcji Tożsamość zarządzana sprawdź, czy środowisko obliczeniowe ma przypisaną tożsamość zarządzaną. Jeśli nie, wybierz opcję Edytuj.

    2. Wybierz pozycję Przypisz tożsamość zarządzaną i skonfiguruj ją zgodnie z potrzebami. Można użyć tożsamości zarządzanej przypisanej przez system lub tożsamości zarządzanej przypisanej przez użytkownika. W przypadku korzystania z tożsamości zarządzanej przypisanej przez system nazwa jest nazywana "[nazwa obszaru roboczego]/obliczenia/[nazwa klastra obliczeniowego]".

    3. Zapisz zmiany.

    Animation showing the steps to assign a managed identity to a cluster.

  4. Przejdź do witryny Azure Portal i przejdź do skojarzonego konta magazynu, na którym znajdują się dane. Jeśli dane wejściowe są elementem zawartości danych lub magazynem danych, poszukaj konta magazynu, na którym znajdują się te zasoby.

  5. Przypisz poziom dostępu Czytelnik danych obiektu blob usługi Storage na koncie magazynu:

    1. Przejdź do sekcji Kontrola dostępu (Zarządzanie dostępem i tożsamościami).

    2. Wybierz kartę Przypisanie roli, a następnie kliknij pozycję Dodaj>przypisanie roli.

    3. Wyszukaj rolę o nazwie Czytelnik danych obiektu blob usługi Storage, wybierz ją i kliknij przycisk Dalej.

    4. Kliknij pozycję Wybierz członków.

    5. Poszukaj utworzonej tożsamości zarządzanej. W przypadku korzystania z tożsamości zarządzanej przypisanej przez system nazwa jest nazywana "[nazwa obszaru roboczego]/obliczenia/[nazwa klastra obliczeniowego]".

    6. Dodaj konto i ukończ pracę kreatora.

    Animation showing the steps to assign the created managed identity to the storage account.

  6. Punkt końcowy jest gotowy do odbierania zadań i danych wejściowych z wybranego konta magazynu.

Następne kroki