Verwaltete Identität für Azure Data Factory

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

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 Data Factory.

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.
  • 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 einer Data Factory zuweisen. Bei benutzerseitig zugewiesenen verwalteten Identitäten wird die Identität getrennt von den Ressourcen verwaltet, für die sie verwendet wird.

Hinweis

Die vertrauenswürdige Umgehung kann keine benutzerseitig zugewiesenen verwalteten Identitäten verwenden. Sie kann nur systemseitig zugewiesene verwaltete Identitäten zum Herstellen einer Verbindung mit Azure Storage und Azure Key Vault verwenden.

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.

Erforderliche Rollen für verwaltete Identitäten

Um verwaltete Identitäten in Azure Data Factory effektiv zu verwenden, müssen bestimmte Rollen zugewiesen werden, die einen ordnungsgemäßen Zugriff und eine ordnungsgemäße Funktionalität gewährleisten. Nachfolgend finden Sie die erforderlichen Rollen:

  • Systemseitig zugewiesene verwaltete Identität

    • Rolle „Leser”: Diese Rolle ist erforderlich, um die Metadaten der Ressourcen zu lesen.
    • Rolle „Mitwirkender”: Diese Rolle ist erforderlich, um die Ressourcen zu verwalten, auf die die verwaltete Identität zugreifen muss.
  • Dem Benutzer zugewiesene verwaltete Identität

    • Rolle „Operator für verwaltete Identität“: Diese Rolle ermöglicht die Verwaltung der vom Benutzer zugewiesenen verwalteten Identität.
    • Rolle „Leser”: Diese Rolle ist erforderlich, um die Metadaten der Ressourcen zu lesen.
    • Rolle „Mitwirkender”: Diese Rolle ist erforderlich, um die Ressourcen zu verwalten, auf die die verwaltete Identität zugreifen muss.

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 Data Factory Studio auch als „verwaltete Identität“ bezeichnet. Der Begriff „Benutzerseitig zugewiesene verwaltete Identität“ wird explizit verwendet, wenn darauf Bezug genommen wird.

Generieren einer systemseitig zugewiesenen verwalteten Identität

Die systemseitig zugewiesene verwaltete Identität wird wie folgt generiert:

  • Beim Erstellen einer Data Factory im Azure-Portal oder über PowerShell wird die verwaltete Identität stets automatisch erstellt.
  • Wenn Sie eine Data Factory über das SDK erstellen, wird die verwaltete Identität nur erstellt, wenn Sie im Factory-Objekt für die Erstellung „Identity = new FactoryIdentity()“ angeben. Ein Beispiel hierfür finden Sie unter .NET-Schnellstart: Erstellen einer Data Factory.
  • Beim Erstellen einer Data Factory mithilfe der REST-API 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:

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 in den Factory-Objekten 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 Set-AzDataFactoryV2 auf, woraufhin die „Identity“-Felder neu generiert werden:

PS C:\> Set-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName> -Location <region>

DataFactoryName   : ADFV2DemoFactory
DataFactoryId     : /subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/ADFV2DemoFactory
ResourceGroupName : <resourceGroupName>
Location          : East US
Tags              : {}
Identity          : Microsoft.Azure.Management.DataFactory.Models.FactoryIdentity
ProvisioningState : Succeeded

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 Factoryobjekt 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/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<data factory name>?api-version=2018-06-01

Anforderungstext: Fügen Sie Folgendes hinzu: „identity": { "type": "SystemAssigned" }.

{
    "name": "<dataFactoryName>",
    "location": "<region>",
    "properties": {},
    "identity": {
        "type": "SystemAssigned"
    }
}

Antwort: Die verwaltete Identität wird automatisch erstellt, und der Abschnitt „identity“ wird entsprechend aufgefüllt.

{
    "name": "<dataFactoryName>",
    "tags": {},
    "properties": {
        "provisioningState": "Succeeded",
        "loggingStorageAccountKey": "**********",
        "createTime": "2017-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.DataFactory/factories/<dataFactoryName>",
    "type": "Microsoft.DataFactory/factories",
    "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": "<dataFactoryName>",
        "apiVersion": "2018-06-01",
        "type": "Microsoft.DataFactory/factories",
        "location": "<region>",
        "identity": {
            "type": "SystemAssigned"
        }
    }]
}

Generieren einer systemseitig zugewiesenen verwalteten Identität mit dem SDK

Rufen Sie die Funktion zum Erstellen oder Aktualisieren mit „Identity=new FactoryIdentity()“ auf. Beispielcode unter Verwendung von .NET:

Factory dataFactory = new Factory
{
    Location = <region>,
    Identity = new FactoryIdentity()
};
client.Factories.CreateOrUpdate(resourceGroup, dataFactoryName, dataFactory);

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.

Abrufen einer systemseitig zugewiesenen verwalteten Identität über das Azure-Portal

Informationen zu verwalteten Identitäten finden Sie im Azure-Portal -> „Ihre Data Factory“ -> „Eigenschaften“.

Azure-Portal mit der Objekt-ID und dem Mandanten der vom System verwalteten Identität für eine Azure Data Factory.

  • Objekt-ID der verwalteten Identität
  • Mandant der verwalteten Identität

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.

  1. Wählen Sie die Option Zugriffssteuerung (IAM) aus.

  2. Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen.

    Screenshot: Seite mit der Zugriffssteuerung (IAM), auf der das Menü „Rollenzuweisung hinzufügen“ geöffnet ist.

  3. Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität und dann Mitglieder auswählen aus.

  4. Wählen Sie Ihr Azure-Abonnement.

  5. Wählen Sie unter Systemseitig zugewiesene verwaltete Identität die Option Data Factory und anschließend eine Data Factory aus. Sie können auch die Objekt-ID oder den Data Factory-Namen (als Name der verwalteten Identität) zur Ermittlung dieser Identität verwenden. Verwenden Sie PowerShell, um die Anwendungs-ID der verwalteten Identität abzurufen.

  6. 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-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName>).Identity

PrincipalId                          TenantId
-----------                          --------
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           : ADFV2DemoFactory
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.DataFactory/factories/{factoryName}?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.

{
    "name":"<dataFactoryName>",
    "identity":{
        "type":"SystemAssigned",
        "principalId":"bbbbbbbb-cccc-dddd-2222-333333333333",
        "tenantId":"aaaabbbb-0000-cccc-1111-dddd2222eeee"
    },
    "id":"/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>",
    "type":"Microsoft.DataFactory/factories",
    "properties":{
        "provisioningState":"Succeeded",
        "createTime":"2020-02-12T02:22:50.2384387Z",
        "version":"2018-06-01",
        "factoryStatistics":{
            "totalResourceCount":0,
            "maxAllowedResourceCount":0,
            "factorySizeInGbUnits":0,
            "maxAllowedFactorySizeInGbUnits":0
        }
    },
    "eTag":"\"03006b40-XXXX-XXXX-XXXX-5e43617a0000\"",
    "location":"<region>",
    "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.DataFactory/factories', parameters('<dataFactoryName>')), '2018-06-01', 'Full').identity.principalId]"
        }
    }
}

Benutzerseitig zugewiesene verwaltete Identität

Sie können benutzerseitig zugewiesene verwaltete Identitäten in Microsoft Entra ID erstellen, löschen, verwalten. Ausführlichere 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.

In den folgenden Themen erfahren Sie, wann und wie Sie verwaltete Identitäten verwenden können:

Weitere Hintergrundinformationen zu verwalteten Identitäten für Azure-Ressourcen, auf denen verwaltete Identitäten in Azure Data Factory basieren, finden Sie unter Übersicht über verwaltete Identitäten für Azure-Ressourcen.

Weitere Informationen finden Sie unter Einschränkungen für verwaltete Identitäten. Diese gelten auch für verwaltete Identitäten in Azure Data Factory.