Verwaltete Identitäten für Azure Synapse Analytics
Dieser Artikel enthält grundlegende Informationen zu verwalteten Identitäten – bisher als verwaltete Dienstidentitäten (Managed Service Identity, MSI) bezeichnet – sowie zu ihrer Funktionsweise in Azure Synapse.
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Übersicht
Dank verwalteter Identitäten müssen keine Anmeldeinformationen mehr verwaltet werden. Verwaltete Identitäten stellen eine Identität für die Dienstinstanz bereit, wenn eine Verbindung mit Ressourcen hergestellt wird, die die Microsoft Entra-Authentifizierung unterstützen. Der Dienst kann beispielsweise eine verwaltete Identität verwenden, um auf Ressourcen wie Azure Key Vault zuzugreifen. Dort können Datenadministratoren auf sichere Weise Anmeldeinformationen speichern oder auf Speicherkonten zugreifen. Der Dienst verwendet die verwaltete Identität, um Microsoft Entra-Token zu beziehen.
Es werden zwei Arten von verwalteten Identitäten unterstützt:
- Systemseitig zugewiesen: Sie können eine verwaltete Identität direkt für eine Dienstinstanz aktivieren. Wenn Sie bei der Diensterstellung eine systemseitig zugewiesene verwaltete Identität zulassen, wird in Microsoft Entra eine Identität erstellt, die an den Lebenszyklus dieser Dienstinstanz gebunden ist. Entwurfsbedingt kann nur diese Azure-Ressource diese Identität zum Anfordern von Token von Microsoft Entra ID verwenden. Daher löscht Azure automatisch die Identität, wenn die Ressource gelöscht wird. Azure Synapse Analytics setzt voraus, dass zusammen mit dem Synapse-Arbeitsbereich eine systemseitig zugewiesene verwaltete Identität erstellt wird.
- Benutzerseitig zugewiesen: Sie können eine verwaltete Identität auch als eigenständige Azure-Ressource erstellen. Sie können eine benutzerseitig zugewiesene verwaltete Identität erstellen und diese einer oder mehreren Instanzen eines Synapse-Arbeitsbereichs zuweisen. Bei benutzerseitig zugewiesenen verwalteten Identitäten wird die Identität getrennt von den Ressourcen verwaltet, für die sie verwendet wird.
Eine verwaltete Identität hat folgende Vorteile:
- Speichern von Anmeldeinformationen in Azure Key Vault: In diesem Fall wird die verwaltete Identität für die Azure Key Vault-Authentifizierung verwendet.
- Greifen Sie mit verwalteter Identitätsauthentifizierung auf Datenspeicher oder Berechnungen zu, einschließlich Azure Blob Storage, Azure Data Explorer, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, REST, Databricks-Aktivität, Web-Aktivität und mehr. Überprüfen Sie die Anschluss- und Aktivitätsartikel für Details.
- Verwaltete Identitäten werden auch zum Verschlüsseln/Entschlüsseln von Daten und Metadaten mithilfe des kundenseitig verwalteten Schlüssels verwendet, der in Azure Key Vault gespeichert ist, was eine Mehrfachverschlüsselung ermöglicht.
Systemseitig zugewiesene verwaltete Identität
Hinweis
Aus Gründen der Abwärtskompatibilität wird die systemseitig zugewiesene verwaltete Identität an anderer Stelle der Dokumentation sowie auf der Benutzeroberfläche von Synapse Studio UI auch als „verwaltete Identität“ bezeichnet. Der Begriff „Benutzerseitig zugewiesene verwaltete Identität“ wird explizit verwendet, wenn darauf Bezug genommen wird.
Abrufen einer systemseitig zugewiesenen verwalteten Identität über das Azure-Portal
Informationen zur verwalteten Identität finden Sie, indem Sie im Azure-Portal zur Ihrem Synapse-Arbeitsbereich navigieren und sich die Eigenschaften ansehen.
Die Informationen zur verwalteten Identität werden auch angezeigt, wenn Sie einen verknüpften Dienst erstellen, der die Authentifizierung der verwalteten Identität unterstützt, z. B. Azure-Blob, Azure Data Lake Storage, Azure Key Vault usw.
Führen Sie die folgenden Schritte aus, um Berechtigungen zu gewähren. Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen.
Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität und dann Mitglieder auswählen aus.
Wählen Sie Ihr Azure-Abonnement.
Wählen Sie unter Systemseitig zugewiesene verwaltete Identität die Option Synapse-Arbeitsbereich, und wählen Sie dann einen Arbeitsbereich aus. Sie können auch anhand der Objekt-ID oder des Arbeitsbereichsnamens (als Name der verwalteten Identität) nach dieser Identität suchen. Verwenden Sie PowerShell, um die Anwendungs-ID der verwalteten Identität abzurufen.
Wählen Sie auf der Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen aus, um die Rolle zuzuweisen.
Abrufen einer systemseitig zugewiesenen verwalteten Identität über Azure PowerShell
Die Prinzipal-ID und Mandanten-ID der verwalteten Identität werden wie folgt zurückgegeben, wenn Sie eine bestimmte Dienstinstanz abrufen. Verwenden Sie die PrincipalId, um Zugriff zu gewähren:
PS C:\> (Get-AzSynapseWorkspace -ResourceGroupName <resourceGroupName> -Name <workspaceName>).Identity
IdentityType PrincipalId TenantId
------------ ----------- --------
SystemAssigned aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb aaaabbbb-0000-cccc-1111-dddd2222eeee
Sie können die Anwendungs-ID abrufen, indem Sie die obige Prinzipal-ID kopieren und dann den unten gezeigten Microsoft Entra ID-Befehl mit der Prinzipal-ID als Parameter ausführen.
PS C:\> Get-AzADServicePrincipal -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
ServicePrincipalNames : {00001111-aaaa-2222-bbbb-3333cccc4444, https://identity.azure.net/P86P8g6nt1QxfPJx22om8MOooMf/Ag0Qf/nnREppHkU=}
ApplicationId : 00001111-aaaa-2222-bbbb-3333cccc4444
DisplayName : <workspaceName>
Id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Type : ServicePrincipal
Abrufen der verwalteten Identität mit der REST-API
Die Prinzipal-ID und Mandanten-ID der verwalteten Identität werden wie folgt zurückgegeben, wenn Sie eine bestimmte Dienstinstanz abrufen.
Rufen Sie die folgende API in der Anforderung auf:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}?api-version=2018-06-01
Antwort: Sie erhalten eine Antwort wie im nachfolgenden Beispiel gezeigt. Der Abschnitt für die Identität ist entsprechend ausgefüllt.
{
"properties": {
"defaultDataLakeStorage": {
"accountUrl": "https://exampledatalakeaccount.dfs.core.windows.net",
"filesystem": "examplefilesystem"
},
"encryption": {
"doubleEncryptionEnabled": false
},
"provisioningState": "Succeeded",
"connectivityEndpoints": {
"web": "https://web.azuresynapse.net?workspace=%2fsubscriptions%2{subscriptionId}%2fresourceGroups%2f{resourceGroupName}%2fproviders%2fMicrosoft.Synapse%2fworkspaces%2f{workspaceName}",
"dev": "https://{workspaceName}.dev.azuresynapse.net",
"sqlOnDemand": "{workspaceName}-ondemand.sql.azuresynapse.net",
"sql": "{workspaceName}.sql.azuresynapse.net"
},
"managedResourceGroupName": "synapseworkspace-managedrg-f77f7cf2-XXXX-XXXX-XXXX-c4cb7ac3cf4f",
"sqlAdministratorLogin": "sqladminuser",
"privateEndpointConnections": [],
"workspaceUID": "e56f5773-XXXX-XXXX-XXXX-a0dc107af9ea",
"extraProperties": {
"WorkspaceType": "Normal",
"IsScopeEnabled": false
},
"publicNetworkAccess": "Enabled",
"cspWorkspaceAdminProperties": {
"initialWorkspaceAdminObjectId": "3746a407-XXXX-XXXX-XXXX-842b6cf1fbcc"
},
"trustedServiceBypassEnabled": false
},
"type": "Microsoft.Synapse/workspaces",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}",
"location": "eastus",
"name": "{workspaceName}",
"identity": {
"type": "SystemAssigned",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
},
"tags": {}
}
Tipp
Fügen Sie zum Abrufen der verwalteten Identität aus einer ARM-Vorlage einen Abschnitt outputs im ARM JSON-Code hinzu:
{
"outputs":{
"managedIdentityObjectId":{
"type":"string",
"value":"[reference(resourceId('Microsoft.Synapse/workspaces', parameters('<workspaceName>')), '2018-06-01', 'Full').identity.principalId]"
}
}
}
Generieren einer systemseitig zugewiesenen verwalteten Identität
Die systemseitig zugewiesene verwaltete Identität wird wie folgt generiert:
- Bei der Erstellung eines Synapse-Arbeitsbereichs über das Azure-Portal oder PowerShell wird die verwaltete Identität immer automatisch erstellt.
- Wenn Sie einen Arbeitsbereich über das SDK erstellen, wird die verwaltete Identität nur erstellt, wenn Sie im Synapse-Arbeitsbereichsobjekt für die Erstellung „Identity = new ManagedIdentity“ angeben. Ein Beispiel hierfür finden Sie unter .NET-Schnellstart: Erstellen einer Data Factory.
- Wenn Sie einen Synapse-Arbeitsbereich per REST-API erstellen, wird die verwaltete Identität nur erstellt, wenn Sie im Anforderungstext den Abschnitt „identity“ angeben. Sehen Sie sich das Beispiel unter REST-Schnellstart – Erstellen einer Data Factory an.
Sollte Ihrer Dienstinstanz nach dem Schritt Abrufen einer verwalteten Identität keine verwaltete Identität zugeordnet sein, können Sie explizit eine verwaltete Identität generieren, indem Sie die Instanz programmgesteuert mit dem Identitätsinitiator aktualisieren:
- Generieren der verwalteten Identität mit PowerShell
- Generieren der verwalteten Identität mit der REST-API
- Generieren der verwalteten Identität mithilfe einer Azure Resource Manager-Vorlage
- Generieren einer verwalteten Identität mit dem SDK
Hinweis
- Die verwaltete Identität kann nicht geändert werden. Das Aktualisieren einer Dienstinstanz, die bereits über eine verwaltete Identität verfügt, hat keine Auswirkungen, und die verwaltete Identität bleibt unverändert.
- Wenn Sie eine Dienstinstanz, die bereits über eine verwaltete Identität verfügt, aktualisieren, ohne im Factory- oder Arbeitsbereichsobjekt den Parameter „identity“ bzw. im REST-Anforderungstext den Abschnitt „identity“ anzugeben, erhalten Sie einen Fehler.
- Wenn Sie eine Dienstinstanz löschen, wird die zugehörige verwaltete Identität ebenfalls gelöscht.
Generieren einer systemseitig zugewiesenen verwalteten Identität in Azure PowerShell
Rufen Sie den Befehl New-AzSynapseWorkspace auf. Daraufhin werden Identitätsfelder neu generiert:
PS C:\> $password = ConvertTo-SecureString -String "****" -AsPlainText -Force
PS C:\> $creds = New-Object System.Management.Automation.PSCredential ("ContosoUser", $password)
PS C:\> New-AzSynapseWorkspace -ResourceGroupName <resourceGroupName> -Name <workspaceName> -Location <region> -DefaultDataLakeStorageAccountName <storageAccountName> -DefaultDataLakeStorageFileSystem <fileSystemName> -SqlAdministratorLoginCredential $creds
DefaultDataLakeStorage : Microsoft.Azure.Commands.Synapse.Models.PSDataLakeStorageAccountDetails
ProvisioningState : Succeeded
SqlAdministratorLogin : ContosoUser
VirtualNetworkProfile :
Identity : Microsoft.Azure.Commands.Synapse.Models.PSManagedIdentity
ManagedVirtualNetwork :
PrivateEndpointConnections : {}
WorkspaceUID : <workspaceUid>
ExtraProperties : {[WorkspaceType, Normal], [IsScopeEnabled, False]}
ManagedVirtualNetworkSettings :
Encryption : Microsoft.Azure.Commands.Synapse.Models.PSEncryptionDetails
WorkspaceRepositoryConfiguration :
Tags :
TagsTable :
Location : <region>
Id : /subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/
Microsoft.Synapse/workspaces/<workspaceName>
Name : <workspaceName>
Type : Microsoft.Synapse/workspaces
Generieren einer systemseitig zugewiesenen verwalteten Identität mit der REST-API
Hinweis
Wenn Sie versuchen, eine Dienstinstanz, die bereits über eine verwaltete Identität verfügt, zu aktualisieren, ohne im Arbeitsbereichsobjekt den Parameter identity bzw. im REST-Anforderungstext einen Abschnitt vom Typ identity anzugeben, erhalten Sie einen Fehler.
Rufen Sie die folgende API mit dem Abschnitt „identity“ im Anforderungstext auf:
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}?api-version=2018-06-01
Anforderungstext: Fügen Sie Folgendes hinzu: „identity": { "type": "SystemAssigned" }.
{
"name": "<workspaceName>",
"location": "<region>",
"properties": {},
"identity": {
"type": "SystemAssigned"
}
}
Antwort: Die verwaltete Identität wird automatisch erstellt, und der Abschnitt „identity“ wird entsprechend aufgefüllt.
{
"name": "<workspaceName>",
"tags": {},
"properties": {
"provisioningState": "Succeeded",
"loggingStorageAccountKey": "**********",
"createTime": "2021-09-26T04:10:01.1135678Z",
"version": "2018-06-01"
},
"identity": {
"type": "SystemAssigned",
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Synapse/workspaces/<workspaceName>",
"type": "Microsoft.Synapse/workspaces",
"location": "<region>"
}
Generieren einer systemseitig zugewiesenen verwalteten Identität mithilfe einer Azure Resource Manager-Vorlage
Vorlage: Fügen Sie Folgendes hinzu: "identity": { "type": "SystemAssigned" }.
{
"contentVersion": "1.0.0.0",
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"resources": [{
"name": "<workspaceName>",
"apiVersion": "2018-06-01",
"type": "Microsoft.Synapse/workspaces",
"location": "<region>",
"identity": {
"type": "SystemAssigned"
}
}]
}
Generieren einer systemseitig zugewiesenen verwalteten Identität mit dem SDK
Workspace workspace = new Workspace
{
Identity = new ManagedIdentity
{
Type = ResourceIdentityType.SystemAssigned
},
DefaultDataLakeStorage = new DataLakeStorageAccountDetails
{
AccountUrl = <defaultDataLakeStorageAccountUrl>,
Filesystem = <DefaultDataLakeStorageFilesystem>
},
SqlAdministratorLogin = <SqlAdministratorLoginCredentialUserName>
SqlAdministratorLoginPassword = <SqlAdministratorLoginCredentialPassword>,
Location = <region>
};
client.Workspaces.CreateOrUpdate(resourceGroupName, workspaceName, workspace);
Abrufen einer systemseitig zugewiesenen verwalteten Identität
Sie können die verwaltete Identität über das Azure-Portal oder programmgesteuert abrufen. Die folgenden Abschnitte enthalten einige Beispiele.
Tipp
Sollte die verwaltete Identität nicht angezeigt werden, können Sie durch Aktualisieren der Dienstinstanz die verwaltete Identität generieren.
Ausführen von Azure Synapse Spark-Notebooks mit systemseitig zugewiesener verwalteter Identität
Sie können Synapse Spark-Notebooks einfach mit der systemseitig zugewiesenen verwalteten Identität (oder der vom Arbeitsbereich verwalteten Identität) ausführen, indem Sie im Menü Sitzung konfigurieren die Option Als verwaltete Identität ausführen aktivieren. Um Spark-Notebooks mit einer vom Arbeitsbereich verwalteten Identität auszuführen, müssen die Benutzer über die folgenden RBAC-Rollen verfügen:
- Operator für Synapse-Computeressourcen für den Arbeitsbereich oder den ausgewählten Apache Spark-Pool
- Synapse-Anmeldeinformationsbenutzer für die vom Arbeitsbereich verwaltete Identität
Hinweis
Synapse-Notebooks und Spark-Auftragsdefinitionen unterstützen die Verwendung von systemseitig zugewiesenen verwalteten Identitäten nur über verknüpfte Dienste und die mssparkutils-APIs. MSAL und andere Authentifizierungsbibliotheken können die systemseitig zugewiesene verwaltete Identität nicht verwenden. Sie können stattdessen ein Dienstprinzipal erstellen und die Anmeldedaten in Key Vault speichern.
Benutzerseitig zugewiesene verwaltete Identität
Sie können benutzerseitig zugewiesene verwaltete Identitäten in Microsoft Entra ID erstellen, löschen, verwalten. Weitere Informationen finden Sie unter Erstellen, Auflisten, Löschen oder Zuweisen einer Rolle zu einer benutzerseitig zugewiesenen verwalteten Identität über das Azure-Portal.
Wenn Sie eine benutzerseitig zugewiesene verwaltete Identität verwenden möchten, müssen Sie in Ihrer Dienstinstanz für die benutzerseitig zugewiesene verwaltete Identität zunächst Anmeldeinformationen erstellen.
Hinweis
Benutzerseitig zugewiesene verwaltete Identität wird derzeit in Synapse-Notebooks und Spark-Auftragsdefinitionen nicht unterstützt.
Nächste Schritte
In den folgenden Artikeln erfahren Sie, wann und wie Sie verwaltete Identitäten verwenden können:
- Speichern von Anmeldeinformationen in Azure Key Vault
- Kopieren von Daten von/zu Azure Data Lake Store mit verwalteten Identitäten für die Ressourcenauthentifizierung mit Azure
Weitere Hintergrundinformationen zu verwalteten Identitäten für Azure-Ressourcen, auf denen die verwaltete Identität in Azure Synapse basiert, finden Sie unter Übersicht: Informationen zu verwalteten Identitäten für Azure-Ressourcen.