Authentifizierung und Autorisierung für 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 Azure Machine Learning-Onlineendpunkten erläutert. Im Artikel werden Microsoft Entra-IDs erläutert, die die rollenbasierte Zugriffssteuerung und Berechtigungen unterstützen. Je nach Zweck wird eine Microsoft Entra-ID entweder als Benutzeridentität oder Endpunktidentität bezeichnet.
Eine Benutzeridentität ist eine Microsoft Entra-ID, die einen Endpunkt und seine Bereitstellungen erstellen oder mit Endpunkten oder Arbeitsbereichen interagieren kann. Eine Benutzeridentität gibt Anforderungen an Endpunkte, Bereitstellungen oder Arbeitsbereiche aus. Die Benutzeridentität benötigt geeignete Berechtigungen, um Vorgänge auf Steuerungsebene und Datenebene auf den Endpunkten oder in Arbeitsbereichen auszuführen.
Eine Endpunktidentität ist eine Microsoft Entra-ID, die den Benutzercontainer in Bereitstellungen ausführt. Der Benutzercontainer verwendet die Endpunktidentität für die Bereitstellung. 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 Images aus Azure Container Registry abzurufen oder mit anderen Azure-Diensten zu interagieren.
Die Benutzeridentität und die Endpunktidentität haben unterschiedliche Berechtigungsanforderungen. Weitere Informationen zum Verwalten von Identitäten und Berechtigungen finden Sie unter Authentifizieren von Clients für Onlineendpunkte.
Wichtig
Die Microsoft Entra ID-Authentifizierung mit einem 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 und Gültigkeitsbereich für die Autorisierung
Mit Azure RBAC (rollenbasierte Zugriffssteuerung) können Sie Rollen mit einer Reihe zulässiger und/oder verweigerter Aktionen für bestimmte Geltungsbereiche definieren und zuweisen. Sie können diese Rollen und Bereiche entsprechend Ihren Geschäftlichen Anforderungen anpassen. Die folgenden Beispiele dienen als Ausgangspunkt, die Sie bei Bedarf erweitern können.
Für Benutzeridentität:
- Zum Verwalten von Vorgängen auf Steuerungsebene und Datenebene können Sie die integrierte Rolle AzureML – Wissenschaftliche Fachkraft für Daten verwenden, die die Berechtigungsaktion
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/actions
enthält. - Verwenden Sie den Geltungsbereich
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>/onlineEndpoints/<endpointName>
, um die Vorgänge für einen bestimmten Endpunkt zu steuern. - Um die Vorgänge für alle Endpunkte in einem Arbeitsbereich zu steuern, verwenden Sie den Geltungsbereich
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>
.
Um bei einer Endpunktidentität dem Benutzercontainer das Lesen von Blobs zu ermöglichen, enthält die integrierte Rolle Storage-Blobdatenleser die Berechtigungsdatenaktion Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
.
Weitere Informationen zum Verwalten der Autorisierung für Azure Machine Learning-Arbeitsbereiche 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.
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 einen Schritt für die Benutzerauthentifizierung aus (authn), mit dem Ihre Identität als Benutzender bestimmt wird. Um einen Onlineendpunkt unter einem Azure Machine Learning-Arbeitsbereich zu erstellen, benötigt Ihre Identität ausreichende Berechtigungen, die auch als Autorisierung (authz) bezeichnet werden. Benutzeridentitäten benötigen geeignete Berechtigungen zum Ausführen von Vorgängen auf Steuerungsebene und Datenebene.
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 Vorgänge auf Steuerungsebene verwenden Sie ein Microsoft Entra-Token, um einen Client beim Arbeitsbereich zu authentifizieren. Je nach Anwendungsfall können Sie aus mehreren Authentifizierungsworkflows wählen, um dieses Token abzurufen. Die Benutzeridentität muss auch über eine geeignete Azure RBAC-Rolle verfügen, um auf Ressourcen zuzugreifen.
Autorisierung für Steuerungsebenenvorgänge
Für Vorgänge auf Steuerungsebene muss Ihre Benutzeridentität über die richtige Azure RBAC-Rolle verfügen, um auf Ihre Ressourcen zuzugreifen. Insbesondere für CRUD-Vorgänge auf Onlineendpunkten und in Bereitstellungen müssen der Benutzeridentität Rollen für die folgenden Aktionen zugewiesen werden:
Vorgang | Erforderliche Azure RBAC-Rolle | `Scope` |
---|---|---|
Durchführen von Erstellungs-/Aktualisierungsvorgängen auf Onlineendpunkten und in Bereitstellungen | Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write zulässt |
Arbeitsbereich |
Durchführen von Löschvorgängen auf Onlineendpunkten und in Bereitstellungen | Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete zulässt |
Arbeitsbereich |
Durchführen von Erstellungs-/Aktualisierungs-/Löschvorgängen auf Onlineendpunkten und in Bereitstellungen über Azure Machine Learning Studio | Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.Resources/deployments/write zulässt |
Ressourcengruppe, die den Arbeitsbereich enthält |
Durchführen von Lesevorgängen auf Onlineendpunkten und in 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 verwalteten oder Kubernetes-Onlineendpunkten aus dem Arbeitsbereich |
Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action zulässt |
Endpunkt |
Abrufen eines Schlüssels zum Aufrufen von (verwalteten oder Kubernetes-)Onlineendpunkten aus dem Arbeitsbereich | Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action zulässt |
Endpunkt |
Erneutes Generieren von Schlüsseln für verwaltete oder Kubernetes-Onlineendpunkte | Besitzer, Mitwirkender oder beliebige Rolle, die Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action zulässt |
Endpunkt |
Abrufen eines Microsoft Entra-Tokens (aad_token ) zum Aufrufen von verwalteten Onlineendpunkten |
Erfordert keine Rolle. | Nicht zutreffend* |
* Sie können Ihr Microsoft Entra-Token (aad_token
) direkt aus Microsoft Entra ID abrufen, nachdem Sie sich angemeldet haben, sodass der Vorgang keine Azure RBAC-Berechtigung für den Arbeitsbereich benötigt.
Berechtigungen für die Benutzeridentität zum Erzwingen des Zugriffs auf den Standardschlüsselspeicher
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.
Eine Endpunktidentität kann entweder eine systemseitig zugewiesene Identität (System-Assigned Identity, SAI) oder eine benutzerseitig zugewiesene Identität (User-Assigned Identity, UAI) sein. Wenn der Endpunkt mit einer SAI erstellt wird und das Flag zum Erzwingen des Zugriffs auf die Standardgeheimnisspeicher festgelegt ist, muss eine Benutzeridentität über Berechtigungen zum Lesen von Geheimnissen aus Arbeitsbereichsverbindungen verfügen, wenn ein Endpunkt und Bereitstellungen erstellt werden. 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, einen Endpunkt oder eine Bereitstellung mit einer SAI und dem festgelegten Flag des Endpunkts zum Erzwingen des Zugriffs auf die Standardgeheimnisspeicher zu erstellen, wird die Erstellung des Endpunkts oder der Bereitstellung abgelehnt.
Wenn der Endpunkt mit einer UAI erstellt wird oder der Endpunkt eine SAI verwendet, aber das Flag zum Erzwingen des Zugriffs auf die Standardgeheimnisspeicher nicht festgelegt ist, muss die Benutzeridentität nicht in der Lage sein, Geheimnisse aus Arbeitsbereichsverbindungen zu lesen, um einen Endpunkt oder eine Bereitstellung zu erstellen. In diesem Fall erhält die Endpunktidentität nicht automatisch die Berechtigung zum Lesen von Geheimnissen, ihr kann diese Berechtigung aber manuell über die richtige Rolle zugewiesen werden.
Unabhängig davon, ob die Rollenzuweisung automatisch oder manuell erfolgt, werden der geheime Abruf und das Einfügen ausgelöst, wenn Sie die Umgebungsvariablen Verweisen auf die Geheimnisse in der Endpunkt- oder Bereitstellungsdefinition zugeordnet haben. Das Feature zum Einfügen von Geheimnissen verwendet die Endpunktidentität, um das Geheimnis abzurufen und einzufügen. Weitere Informationen zur Geheimniseinschleusung finden Sie unter Geheimniseinschleusung in Onlineendpunkten.
Vorgänge auf Datenebene
Vorgänge auf Datenebene ändern die Onlineendpunkte nicht, verwenden aber Daten, die mit den Endpunkten interagieren. 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 den folgenden Möglichkeiten wählen, um einen Client zu authentifizieren und Anforderungen an den Bewertungs-URI eines Endpunkts zu senden:
- Schlüssel
- Azure Machine Learning-
aml_token
- Microsoft Entra-
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 geeignete Azure RBAC-Rollen (rollenbasierte Zugriffssteuerung) verfügen, die den Zugriff auf Ihre Ressourcen erlauben, sofern der Endpunkt auf die Verwendung des Microsoft Entra-Tokens (aad_token
) festgelegt ist. Für Datenebenenvorgänge auf Onlineendpunkten und in Bereitstellungen muss der Benutzeridentität eine Rolle mit den folgenden Aktionen zugewiesen werden:
Vorgang | Erforderliche Azure RBAC-Rolle | `Scope` |
---|---|---|
Aufrufen von Onlineendpunkten mit Schlüssel (key ) 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 |
Endpunkt |
Aufrufen von Kubernetes-Onlineendpunkten mit Microsoft Entra-Token (aad_token ) |
Kubernetes-Onlineendpunkt unterstützt kein Microsoft Entra-Token für Datenebenenvorgänge. | 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 SAI oder eine UAI sein. Sie können entscheiden, ob Sie beim Erstellen des Endpunkts ein SAI oder eine UAI verwenden möchten.
- Bei einer SAI wird die Identität automatisch erstellt, wenn Sie den Endpunkt erstellen, und Rollen mit grundlegenden Berechtigungen (z. B. die AcrPull-Berechtigung für die Containerregistrierung und Storage-Blobdatenleser) werden automatisch zugewiesen.
- Bei einer UAI mü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 SAI handelt, werden der Einfachheit halber die folgenden Rollen der Endpunktidentität zugewiesen.
Role | Beschreibung | Bedingung für die automatische Rollenzuweisung |
---|---|---|
AcrPull | Ermöglicht der Endpunktidentität das Abrufen von Images aus der Azure Container Registry-Instanz, die dem Arbeitsbereich zugeordnet ist | Die Endpunktidentität ist eine SAI. |
Leser von Speicherblobdaten | Ermöglicht der Endpunktidentität das Lesen von Blobs aus dem Standarddatenspeicher des Arbeitsbereichs | Die Endpunktidentität ist eine SAI. |
Schreibberechtigter für AzureML-Metriken (Vorschau) | Ermöglicht der Endpunktidentität das Schreiben von Metriken in den Arbeitsbereich | Die Endpunktidentität ist eine SAI. |
Geheimnisleser aus Azure Machine Learning-Arbeitsbereichsverbindungen | Ermöglicht der Endpunktidentität das Lesen von Geheimnissen aus Arbeitsbereichsverbindungen | Die Endpunktidentität ist eine SAI, und bei der Endpunkterstellung gibt es ein Flag, um den Zugriff auf die Standardgeheimnisspeicher zu erzwingen. Die Benutzeridentität, die den Endpunkt erstellt, verfügt außerdem über die Berechtigung zum Lesen von Geheimnissen aus Arbeitsbereichsverbindungen. |
- Wenn es sich bei der Endpunktidentität um eine SAI handelt und das Erzwingungsflag nicht festgelegt wurde oder die Benutzeridentität nicht über die Berechtigung zum Lesen von Geheimnissen verfügt, erfolgt keine automatische Zuweisung der Rolle Geheimnisleser aus Azure Machine Learning-Arbeitsbereichsverbindungen. Weitere Informationen finden Sie unter Bereitstellen eines Onlineendpunkts mit Geheimniseinschleusung.
- Wenn es sich bei der Endpunktidentität um eine UAI handelt, erfolgt keine automatische Zuweisung der Rolle Geheimnisleser aus Azure Machine Learning-Arbeitsbereichsverbindungen. In diesem Fall müssen Sie der Endpunktidentität bei Bedarf Rollen manuell zuweisen.
Weitere Informationen zur Rolle Geheimnisleser aus Azure Machine Learning-Arbeitsbereichsverbindungen finden Sie unter Zuweisen von Berechtigungen zur Identität.