Authentifizierung für verwaltete Onlineendpunkte

GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)

In diesem Artikel werden die Konzepte von Identität und Berechtigung im Kontext von Onlineendpunkten erläutert. Wir beginnen mit einer Diskussion über Microsoft Entra-IDs, die Azure RBAC unterstützen. Je nach Zweck der Microsoft Entra-Identität bezeichnen wir sie entweder als Benutzeridentität oder als Endpunktidentität.

Eine Benutzeridentität ist eine Microsoft Entra-ID, mit der Sie einen Endpunkt und seine Bereitstellungen erstellen oder mit Endpunkten oder Arbeitsbereichen interagieren können. Mit anderen Worten, eine Identität kann als Benutzeridentität betrachtet werden, wenn sie Anforderungen an Endpunkte, Bereitstellungen oder Arbeitsbereiche ausgibt. Die Benutzeridentität benötigt geeignete Berechtigungen, um Steuerungsebenen- und Datenebenenvorgänge auf den Endpunkten oder Arbeitsbereichen auszuführen.

Eine Endpunktidentität ist eine Microsoft Entra-ID, die den Benutzercontainer in Bereitstellungen ausführt. Anders ausgedrückt: Wenn die Identität dem Endpunkt zugeordnet ist und für den Benutzercontainer für die Bereitstellung verwendet wird, wird sie als Endpunktidentität bezeichnet. Die Endpunktidentität benötigt außerdem die richtigen Berechtigungen für den Benutzercontainer, um bei Bedarf mit Ressourcen zu interagieren. Die Endpunktidentität benötigt beispielsweise die richtigen Berechtigungen, um Bilder aus der Azure-Containerregistrierung abzurufen oder mit anderen Azure-Diensten zu interagieren.

Im Allgemeinen hätten die Benutzeridentität und die Endpunktidentität separate Berechtigungsanforderungen. Weitere Informationen zum Verwalten von Identitäten und Berechtigungen finden Sie unter Authentifizieren von Clients für Onlineendpunkte. Weitere Informationen zum speziellen Fall des automatischen Hinzufügens zusätzlicher Berechtigungen für Geheimnisse finden Sie unter Zusätzliche Berechtigungen für die Benutzeridentität.

Einschränkung

Die Microsoft Entra ID-Authentifizierung (aad_token) wird nur für verwaltete Onlineendpunkte unterstützt. Für Kubernetes-Onlineendpunkte können Sie entweder einen Schlüssel oder ein Azure Machine Learning-Token (aml_token) verwenden.

Berechtigungen, die für die Benutzeridentität erforderlich sind

Wenn Sie sich mit Ihrem Microsoft-Konto (z. B. mit az login) bei Ihrem Azure-Mandanten anmelden, führen Sie den Schritt für die Benutzerauthentifizierung (allgemein als Authentifizierung bezeichnet) aus, und Ihre Identität als Benutzer wird bestimmt. Angenommen, Sie möchten einen Onlineendpunkt unter einem Arbeitsbereich erstellen. Dazu benötigen Sie die entsprechende Berechtigung. Hier kommt die Autorisierung (allgemein als authzbekannt) ins Spiel.

Vorgänge auf der Steuerungsebene

Steuern sie die Steuerung der Vorgänge in der Ebene und ändern Sie die Onlineendpunkte. Zu diesen Vorgängen gehören Erstellungs-, Lese-, Aktualisierungs- und Löschvorgänge (CRUD) für Onlineendpunkte und Onlinebereitstellungen. Für Onlineendpunkte und Bereitstellungen wechseln Anforderungen zum Ausführen von Steuerungsebenenvorgängen zum Azure Machine Learning-Arbeitsbereich.

Authentifizierung für Steuerungsebenenvorgänge

Für Steuerungsebenenvorgänge haben Sie eine Möglichkeit, einen Client für den Arbeitsbereich zu authentifizieren, mithilfe eines Microsoft Entra-Tokens.

Je nach Anwendungsfall können Sie aus mehreren Authentifizierungsworkflows wählen, um dieses Token abzurufen. Ihre Benutzeridentität muss auch über eine ordnungsgemäße rollenbasierte Azure-Zugriffssteuerung (Azure RBAC) verfügen, die für den Zugriff auf Ihre Ressourcen zulässig ist.

Autorisierung für Steuerungsebenenvorgänge

Bei Steuerungsebenenvorgängen muss Ihre Benutzeridentität über eine geeignete rollenbasierte Azure-Zugriffssteuerung (Azure RBAC) verfügen, die für den Zugriff auf Ihre Ressourcen zulässig ist. Insbesondere für CRUD-Vorgänge auf Onlineendpunkten und Bereitstellungen benötigen Sie die Identität, damit die Rolle den folgenden Aktionen zugewiesen wird:

Vorgang Erforderliche Azure RBAC-Rolle Bereich, für den die Rolle zugewiesen ist
Erstellen/Aktualisieren von Vorgängen auf Onlineendpunkten und Bereitstellungen Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write zulässt Arbeitsbereich
Löschen von Vorgängen auf Onlineendpunkten und Bereitstellungen Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete zulässt Arbeitsbereich
Erstellen/Aktualisieren/Löschen von Vorgängen auf Onlineendpunkten und Bereitstellungen über das Azure Machine Learning Studio Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.Resources/deployments/write zulässt Ressourcengruppe, zu welcher der Arbeitsbereich gehört
Lesevorgänge auf Onlineendpunkten und Bereitstellungen Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read zulässt Arbeitsbereich
Abrufen eines Azure Machine Learning-Tokens (aml_token) zum Aufrufen von Onlineendpunkten (sowohl von verwalteten als auch Kubernetes) aus dem Arbeitsbereich Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action zulässt endpoint
Abrufen eines Schlüssels zum Aufrufen von Onlineendpunkten (sowohl von verwalteten als auch Kubernetes) aus dem Arbeitsbereich Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action zulässt endpoint
Generieren von Schlüsseln für Onlineendpunkte (sowohl von verwalteten als auch Kubernetes) Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action zulässt endpoint
Abrufen eines Microsoft Entra-Tokens (aad_token) zum Aufrufen von verwalteten Onlineendpunkten Erfordert keine Rolle. nicht zutreffend

Hinweis

Sie können Ihr Microsoft Entra-Token (aad_token) direkt aus der Microsoft Entra-ID abrufen, sobald Sie angemeldet sind, und Sie benötigen keine zusätzliche Azure RBAC-Berechtigung für den Arbeitsbereich.

Zusätzliche Berechtigungen für die Benutzeridentität beim Erzwingen des Zugriffs auf Standardgeheimnisspeicher

Wenn Sie beabsichtigen, das Feature der Geheimniseinschleusung zu verwenden, und beim Erstellen Ihrer Endpunkte das Flag festlegen, um den Zugriff auf die Standardgeheimnisspeicher zu erzwingen, muss Ihre Benutzeridentität über die Berechtigung zum Lesen von Geheimnissen aus Arbeitsbereichsverbindungen verfügen.

Wenn der Endpunkt mit einer systemseitig zugewiesenen Identität (System-Assigned Identity, SAI) erstellt wird, und das Flag so festgelegt ist, dass der Zugriff auf die Standardgeheimnisspeicher erzwungen wird, muss Ihre Benutzeridentität über Berechtigungen zum Lesen von Geheimnissen aus Arbeitsbereichsverbindungen verfügen, wenn Sie den Endpunkt und die Bereitstellungen unter dem Endpunkt erstellen. Diese Einschränkung stellt sicher, dass nur eine Benutzeridentität mit der Berechtigung zum Lesen von Geheimnissen der Endpunktidentität die Berechtigung zum Lesen von Geheimnissen erteilen kann.

  • Wenn eine Benutzeridentität nicht über die Berechtigungen zum Lesen von Geheimnissen aus Arbeitsbereichsverbindungen verfügt, aber versucht, den Endpunkt mit einer SAI und dem festgelegten Flag des Endpunkts zum Erzwingen des Zugriffs auf die Standardgeheimnisspeicher zu erstellen, wird die Endpunkterstellung abgelehnt.

  • Wenn eine Benutzeridentität nicht über die Berechtigungen zum Lesen von Geheimnissen aus Arbeitsbereichsverbindungen verfügt, aber versucht, eine Bereitstellung unter dem Endpunkt mit einer SAI und dem festgelegten Flag des Endpunkts zum Erzwingen des Zugriffs auf die Standardgeheimnisspeicher zu erstellen, wird die Bereitstellungserstellung abgelehnt.

Wenn (1) der Endpunkt mit einer benutzerseitig zugewiesenen Identität (User-Assigned Identity, UAI) erstellt wird, oder (2) das Flag nicht festgelegt ist, um den Zugriff auf die Standardgeheimnisspeicher zu erzwingen, auch wenn der Endpunkt eine SAI verwendet, muss Ihre Benutzeridentität nicht über Berechtigungen zum Lesen von Geheimnissen aus Arbeitsbereichsverbindungen verfügen. In diesem Fall erhält die Endpunktidentität nicht automatisch die Berechtigung zum Lesen von Geheimnissen; Sie können die Berechtigung jedoch weiterhin manuell der Endpunktidentität erteilen, indem Sie bei Bedarf die richtigen Rollen zuweisen. Unabhängig davon, ob die Rollenzuweisung automatisch oder manuell durchgeführt wurde, werden der Geheimnisabruf und die Geheimniseinschleusung weiterhin ausgelöst, wenn Sie die Umgebungsvariablen mit Geheimnisverweisen in der Bereitstellungsdefinition zugeordnet haben, und dazu wird die Endpunktidentität verwendet.

Weitere Informationen zum Verwalten der Autorisierung für einen Azure Machine Learning-Arbeitsbereich finden Sie unter Verwalten des Zugriffs auf Azure Machine Learning.

Weitere Informationen zur Geheimniseinschleusung finden Sie unter Geheimniseinschleusung in Onlineendpunkten.

Vorgänge auf Datenebene

Datenebenenvorgänge ändern die Onlineendpunkte nicht, sondern verwenden Daten für die Interaktion mit den Endpunkten. Ein Beispiel für einen Datenebenenvorgang besteht darin, eine Bewertungsanforderung an einen Onlineendpunkt zu senden und eine Antwort daraus zu erhalten. Für Onlineendpunkte und Bereitstellungen gehen Anforderungen zum Ausführen von Datenebenenvorgängen zum Bewertungs-URI des Endpunkts.

Authentifizierung für Datenebenenvorgänge

Für Datenebenenvorgänge können Sie aus drei Möglichkeiten wählen, um einen Client zu authentifizieren, um Anforderungen an den Bewertungs-URI eines Endpunkts zu senden:

  • Schlüssel
  • Azure Machine Learning-Token (aml_token)
  • Microsoft Entra-Token (aad_token)

Weitere Informationen zum Authentifizieren von Clients für Datenebenenvorgänge finden Sie unter Authentifizieren von Clients für Onlineendpunkte.

Autorisierung für Datenebenenvorgänge

Bei Vorgängen auf Datenebene muss Ihre Benutzeridentität über eine ordnungsgemäße rollenbasierte Azure-Zugriffssteuerung (Azure RBAC) verfügen, die für den Zugriff auf Ihre Ressourcen zulässig ist, nur wenn der Endpunkt auf die Verwendung des Microsoft Entra-Tokens (aad_token) festgelegt ist. Insbesondere für Datenebenenvorgänge auf Onlineendpunkten und Bereitstellungen benötigen Sie die Identität, damit die Rolle den folgenden Aktionen zugewiesen ist:

Vorgang Erforderliche Azure RBAC-Rolle Bereich, für den die Rolle zugewiesen ist
Aufrufen von Onlineendpunkten mit Schlüssel oder Azure Machine Learning-Token (aml_token). Erfordert keine Rolle. Nicht zutreffend
Aufrufen von verwalteten Onlineendpunkten mit Microsoft Entra-Token (aad_token). Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action zulässt endpoint
Aufrufen von Kubernetes-Onlineendpunkten mit Microsoft Entra-Token (aad_token). Erfordert keine Rolle. Nicht zutreffend

Berechtigungen, die für die Endpunktidentität erforderlich sind

Eine Onlinebereitstellung führt Ihren Benutzercontainer mit der Endpunktidentität aus, d. h. die verwaltete Identität, die dem Endpunkt zugeordnet ist. Die Endpunktidentität ist eine Microsoft Entra-ID, die Azure RBAC unterstützt. Daher können Sie der Endpunktidentität Azure-Rollen zuweisen, um Berechtigungen zu steuern, die zum Ausführen von Vorgängen erforderlich sind. Diese Endpunktidentität kann entweder eine vom System zugewiesene Identität (SAI) oder eine vom Benutzer zugewiesene Identität (UAI) sein. Sie können entscheiden, ob Sie beim Erstellen des Endpunkts ein SAI oder eine UAI verwenden möchten.

  • Bei einer vom System zugewiesenen Identitätwird die Identität automatisch erstellt, wenn Sie den Endpunkt erstellen, und Rollen mit grundlegenden Berechtigungen (z. B. die Pull-Berechtigung für die Azure Container Registry und der Speicher-BLOB-Datenleser) werden automatisch zugewiesen.
  • Bei einer vom Benutzer zugewiesenen Identitätmüssen Sie zuerst die Identität erstellen und sie dann dem Endpunkt zuordnen, wenn Sie den Endpunkt erstellen. Sie sind auch dafür verantwortlich, der UAI bei Bedarf geeignete Rollen zuzuweisen.

Automatische Rollenzuweisung für Endpunktidentität

Wenn es sich bei der Endpunktidentität um eine systemseitig zugewiesene Identität handelt, werden einige Rollen der Endpunktidentität zur Vereinfachung zugewiesen.

Rolle Beschreibung Bedingung für die automatische Rollenzuweisung
AcrPull Ermöglicht der Endpunktidentität das Abrufen von Images aus der Azure Container Registry (ACR), die dem Arbeitsbereich zugeordnet ist. Die Endpunktidentität ist eine systemseitig zugewiesene Identität (SAI).
Storage Blob Data Reader Ermöglicht der Endpunktidentität das Lesen von Blobs aus dem Standarddatenspeicher des Arbeitsbereichs. Die Endpunktidentität ist eine systemseitig zugewiesene Identität (SAI).
AzureML Metrics Writer (preview) Ermöglicht der Endpunktidentität das Schreiben von Metriken in den Arbeitsbereich. Die Endpunktidentität ist eine systemseitig zugewiesene Identität (SAI).
Azure Machine Learning Workspace Connection Secrets Reader1 Ermöglicht der Endpunktidentität das Lesen von Geheimnissen aus Arbeitsbereichsverbindungen. Die Endpunktidentität ist eine systemseitig zugewiesene Identität (SAI). Der Endpunkt wird mit einem Flag erstellt, um den Zugriff auf die Standardgeheimnisspeicher zu erzwingen. Die Benutzeridentität, die den Endpunkt erstellt, verfügt über dieselbe Berechtigung zum Lesen von Geheimnissen aus Arbeitsbereichsverbindungen. 2

1 Weitere Informationen zur Rolle Azure Machine Learning Workspace Connection Secrets Reader finden Sie unter Zuweisen der Berechtigung an die Identität.

2 Auch wenn die Endpunktidentität eine SAI ist, gibt es keine automatische Rollenzuweisung für diese Rolle, wenn das Erzwingungs-Flag nicht festgelegt ist oder die Benutzeridentität nicht über die Berechtigung verfügt. Weitere Informationen finden Sie unter Bereitstellen eines Onlineendpunkts mit Geheimniseinschleusung.

Es gibt keine automatische Rollenzuweisung, wenn die Endpunktidentität eine benutzerseitig zugewiesene Identität ist. In diesem Fall müssen Sie der Endpunktidentität bei Bedarf Rollen manuell zuweisen.

Auswählen der Berechtigungen und des Gültigkeitsbereichs für die Autorisierung

Mit Azure RBAC können Sie Rollen mit einer Reihe zulässiger und/oder verweigerter Aktionenfür bestimmte Bereiche definieren und zuweisen. Sie können diese Rollen und Bereiche entsprechend Ihren Geschäftlichen Anforderungen anpassen. Die folgenden Beispiele dienen als Ausgangspunkt und können bei Bedarf erweitert werden.

Beispiele für die Benutzeridentität

  • Um alle Vorgänge zu steuern, die in der vorherigen Tabelle für Steuerungsebenenvorgänge und der Tabelle für Datenebenenvorgänge aufgeführt sind, können Sie eine integrierte Rolle AzureML Data Scientist verwenden, welche die Berechtigungsaktion Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/actions enthält.
  • Um die Vorgänge für einen bestimmten Endpunkt zu steuern, sollten Sie den Bereich /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>/onlineEndpoints/<endpointName> verwenden.
  • Um die Vorgänge für alle Endpunkte in einem Arbeitsbereich zu steuern, sollten Sie den Bereich /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>verwenden.

Beispiele für Endpunktidentität

  • Um dem Benutzercontainer das Lesen von Blobs zu ermöglichen, sollten Sie eine integrierte Rolle Storage Blob Data Reader verwenden, welche die Berechtigungsdatenaktion Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read enthält.

Weitere Informationen zu Richtlinien für Steuerungsebenenvorgänge finden Sie unter Verwalten des Zugriffs auf Azure Machine Learning. Weitere Informationen zu Rollendefinition, Bereich und Rollenzuweisung finden Sie unter Azure RBAC. Informationen zum Umfang für zugewiesene Rollen finden Sie unter Grundlegendes zum Bereich für Azure RBAC.