Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Microsoft Entra-Authentifizierung wird von regionalen Endpunkten oder aad_token nicht unterstützt. Um einen Batchendpunkt aufzurufen, müssen Sie der URI des Batchendpunkts ein gültiges Microsoft Entra-Authentifizierungstoken vorlegen. Die Autorisierung wird auf Endpunktebene erzwungen. Im folgenden Artikel wird erläutert, wie Sie korrekt mit Batch-Endpunkten und den Sicherheitsanforderungen interagieren.
Funktionsweise der Autorisierung
Um einen Batchendpunkt aufzurufen, müssen Sie ein gültiges Microsoft Entra-Token vorlegen, das einen Sicherheitsprinzipal repräsentiert. Dieser Prinzipal kann ein Benutzerprinzipal oder ein Dienstprinzipal sein. Wenn Sie einen Endpunkt aufrufen, erstellen Sie in jedem Fall einen Batchbereitstellungsauftrag unter der identität, die dem Token zugeordnet ist. Die Identität benötigt die folgenden Berechtigungen, um erfolgreich einen Job zu erstellen:
- Batch-Endpoints und Bereitstellungen lesen.
- Erstellen von Aufträgen in Batch-Ableitungsendpunkten und Bereitstellungen.
- Erstellen Sie Experimente und Durchläufe.
- Lesen und Schreiben von Daten in Datenspeicher.
- Datenspeichergeheimnisse auflisten.
Eine detaillierte Liste der RBAC-Berechtigungen finden Sie unter Configure RBAC for batch endpoint invoke.
Wichtig
Je nachdem, wie Sie den Datenspeicher konfigurieren, können Sie die Identität möglicherweise nicht zum Aufrufen eines Batchendpunkts verwenden, um die zugrunde liegenden Daten zu lesen. Weitere Informationen finden Sie unter Konfigurieren von Computeclustern für den Datenzugriff.
Ausführen von Aufträgen mit verschiedenen Arten von Anmeldeinformationen
Die folgenden Beispiele zeigen verschiedene Möglichkeiten zum Starten von Batch-Deployments-Jobs mithilfe verschiedener Anmeldedaten-Typen:
Wichtig
Wenn Sie in privaten, Link-aktivierten Arbeitsbereichen arbeiten, können Sie keine Batch-Endpunkte über die Benutzeroberfläche in Azure Machine Learning Studio aufrufen. Verwenden Sie stattdessen die Azure Machine Learning CLI v2 für die Auftragserstellung.
Voraussetzungen
- In diesem Beispiel wird davon ausgegangen, dass ein Modell ordnungsgemäß als Batchendpunkt bereitgestellt wurde. Insbesondere verwendet dieses Beispiel den im Lernprogramm "Verwenden von MLflow-Modellen in Batchbereitstellungen" erstellten Klassifizierer des Herzzustands.
Ausführen von Aufträgen mit Ihren Anmeldeinformationen
Führen Sie die folgenden Schritte aus, um einen Sammelendpunkt mithilfe der Identität des aktuell angemeldeten Benutzers auszuführen.
Verwenden Sie die Azure CLI, um sich mithilfe der interaktiven oder Gerätecodeauthentifizierung anzumelden:
az loginVerwenden Sie nach der Authentifizierung den folgenden Befehl, um einen Batchbereitstellungsauftrag auszuführen:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \ --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci
Ausführen von Aufträgen mithilfe eines Dienstprinzipals
Wenn Sie einen Batchendpunkt mithilfe eines Dienstprinzipals ausführen möchten, den Sie bereits in der Microsoft Entra-ID erstellt haben, erstellen Sie einen geheimen Schlüssel zur Authentifizierung. Folgen Sie diesen Schritten:
Erstellen Sie einen geheimen Schlüssel, der für die Authentifizierung verwendet werden soll, wie in Option 3 erläutert: Erstellen eines neuen geheimen Clientschlüssels.
Verwenden Sie zum Authentifizieren mithilfe eines Dienstprinzipals den folgenden Befehl. Weitere Informationen finden Sie unter Anmelden mit der Azure CLI.
az login --service-principal \ --tenant <tenant> \ -u <app-id> \ -p <password-or-cert>Verwenden Sie nach der Authentifizierung den folgenden Befehl, um einen Batchbereitstellungsauftrag auszuführen:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \ --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/
Ausführen von Aufträgen mithilfe einer verwalteten Identität
Sie können verwaltete Identitäten verwenden, um Batch-Endpunkte und -Bereitstellungen aufzurufen. Beachten Sie, dass diese verwaltete Identität nicht zum Batchendpunkt gehört, sondern die Identität ist, die zum Ausführen des Endpunkts und damit zum Erstellen eines Batchauftrags verwendet wird. In diesem Szenario können sowohl vom Benutzer als auch vom System zugewiesene Identitäten verwendet werden.
Auf Ressourcen, die für verwaltete Identitäten von Azure-Ressourcen konfiguriert sind, können Sie sich mit der verwalteten Identität anmelden. Das Anmelden mit der Identität der Ressource erfolgt über das Flag --identity. Weitere Informationen finden Sie unter Anmelden mit der Azure CLI.
az login --identity
Verwenden Sie nach der Authentifizierung den folgenden Befehl, um einen Batchbereitstellungsauftrag auszuführen:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci
Konfigurieren von RBAC für den Aufruf von Batchendpunkten
Batchendpunkte machen einen dauerhaften API-Consumer verfügbar, der zum Generieren von Aufträgen verwendet werden kann. Der Aufrufer fordert die richtige Berechtigung an, um diese Aufträge erzeugen zu können. Sie können entweder eine der integrierten Sicherheitsrollen verwenden oder eine benutzerdefinierte Rolle für diesen Zweck erstellen.
Um einen Batchendpunkt erfolgreich aufzurufen, müssen der Identität, mit der die Endpunkte aufgerufen werden, die Berechtigungen für die folgenden expliziten Aktionen zugewiesen werden. Anweisungen zur Rollenzuweisung finden Sie unter Schritte zum Zuweisen einer Azure-Rolle.
"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"
]
Konfigurieren von Computeclustern für den Datenzugriff
Batchendpunkte stellen sicher, dass nur autorisierte Benutzer Batchbereitstellungen aufrufen und Aufträge generieren können. Je nach Konfiguration der Eingabedaten können jedoch auch andere Anmeldeinformationen verwendet werden, um die zugrunde liegenden Daten zu lesen. Verwenden Sie die folgende Tabelle, um zu verstehen, welche Anmeldeinformationen verwendet werden:
| Dateneingabetyp | Anmeldeinformationen im Speicher | Verwendete Anmeldeinformationen | Zugriff gewährt durch |
|---|---|---|---|
| Datenspeicher | Ja | Anmeldeinformationen des Datenspeichers im Arbeitsbereich | Zugriffsschlüssel oder SAS |
| Datenasset | Ja | Anmeldeinformationen des Datenspeichers im Arbeitsbereich | Zugriffsschlüssel oder SAS |
| Datenspeicher | Nein | Identität des Auftrags + verwaltete Identität des Computeclusters | RBAC |
| Datenasset | Nein | Identität des Auftrags + verwaltete Identität des Computeclusters | RBAC |
| Azure Blob Storage (Speicherdienst von Azure für unstrukturierte Daten) | Nicht anwendbar | Identität des Auftrags + verwaltete Identität des Computeclusters | RBAC |
| Azure Data Lake Storage Gen1 | Nicht anwendbar | Identität des Auftrags + verwaltete Identität des Computeclusters | POSIX |
| Azure Data Lake Storage Gen2 | Nicht anwendbar | Identität des Auftrags + verwaltete Identität des Computeclusters | POSIX und RBAC |
Für die Elemente in der Tabelle, für die Identität des Auftrags + verwaltete Identität des Computeclusters angezeigt wird, wird die verwaltete Identität des Computeclusters zum Einbinden und Konfigurieren von Speicherkonten verwendet. Die Identität des Auftrags wird jedoch weiterhin verwendet, um die zugrunde liegenden Daten zu lesen, sodass Sie eine präzise Zugriffssteuerung erzielen können. Dies bedeutet, dass die verwaltete Identität des Computeclusters, auf dem die Bereitstellung durchgeführt wird, mindestens Zugriff als Storage-Blobdatenleser für das Speicherkonto benötigt, um erfolgreich Daten aus dem Speicher zu lesen.
Führen Sie die folgenden Schritte aus, um den Computecluster für den Datenzugriff zu konfigurieren:
Navigieren Sie zu Azure Machine Learning Studio.
Navigieren Sie zu Compute, und berechnen Sie dann Cluster.
Wählen Sie den Computecluster aus, den Ihre Bereitstellung verwendet. Diese Aktion öffnet die Detailseite des Computeclusters.
Weisen Sie dem Computecluster eine verwaltete Identität zu:
Wechseln Sie zum Abschnitt "Verwaltete Identität " der Seite, und überprüfen Sie, ob die Berechnung eine verwaltete Identität zugewiesen hat. Wählen Sie andernfalls das Stiftsymbol aus, um die verwaltete Identität zu bearbeiten.
Wählen Sie den Schieberegler neben " Zuweisen einer verwalteten Identität " aus, um ihn nach Bedarf zu aktivieren und zu konfigurieren. Sie können eine systemseitig zugewiesene verwaltete Identität oder eine benutzerseitig zugewiesene verwaltete Identität verwenden. Wenn Sie eine systemseitig zugewiesene verwaltete Identität verwenden, erhält sie den Namen „[Arbeitsbereichsname]/computes/[Computeclustername]“.
Speichern Sie die Änderungen.
Navigieren Sie zum Azure-Portal und dann zum zugeordneten Speicherkonto, in dem sich die Daten befinden. Wenn es sich bei der Dateneingabe um eine Datenressource oder einen Datenspeicher handelt, suchen Sie nach dem Speicherkonto, in dem diese Ressourcen platziert werden.
Weisen Sie die Zugriffsebene „Storage-Blobdatenleser“ im Speicherkonto zu:
Wechseln Sie zum Abschnitt Zugriffssteuerung (IAM).
Wählen Sie die Registerkarte Rollenzuweisung aus, und klicken Sie dann auf Hinzufügen>Rollenzuweisung.
Suchen Sie nach der Rolle namens Storage-Blobdatenleser, wählen Sie sie aus, und klicken Sie auf Weiter.
Klicken Sie auf Mitglieder auswählen.
Suchen Sie die erstellte verwaltete Identität. Wenn Sie eine systemseitig zugewiesene verwaltete Identität verwenden, erhält sie den Namen [Arbeitsbereichsname]/computes/[Computeclustername].
Fügen Sie das Konto hinzu, und schließen Sie den Assistenten ab.
Ihr Endpunkt ist bereit, Aufträge und Eingabedaten aus dem ausgewählten Speicherkonto zu erhalten.