Verwenden Sie eine verwaltete Identität, um Ihren Azure Stream Analytics-Auftrag für Azure Blob Storage zu authentifizieren

Wenn Sie managed Identity Authentication für die Ausgabe in Azure Blob Storage verwenden, erhalten Stream Analytics-Aufträge direkten Zugriff auf ein Speicherkonto, ohne eine Verbindungszeichenfolge zu verwenden. Dieses Feature verbessert die Sicherheit und ermöglicht es Ihnen, Daten in ein Speicherkonto in einem virtuellen Netzwerk (VNET) in Azure zu schreiben.

In diesem Artikel erfahren Sie, wie Sie die verwaltete Identität für die Blob-Ausgaben eines Stream Analytics-Auftrags über das Azure Portal und über eine Azure Resource Manager Bereitstellung aktivieren.

Erstellen des Stream Analytics-Auftrags mithilfe des Azure-Portals

Erstellen Sie zunächst eine verwaltete Identität für Ihren Azure Stream Analytics Auftrag. 

  1. Öffnen Sie im Azure-Portal den Azure Stream Analytics-Auftrag. 

  2. Wählen Sie im linken Navigationsmenü unter Konfigurieren die Option Verwaltete Identität aus. Aktivieren Sie dann das Kontrollkästchen neben Systemseitig zugewiesene verwaltete Identität verwenden, und wählen Sie Speichern aus.

    Systemseitig zugewiesene verwaltete Identität

  3. Azure erstellt einen Dienstprinzipal für die Identität des Stream Analytics-Jobs in Microsoft Entra ID. Azure verwaltet den Lebenszyklus der neu erstellten Identität. Wenn Sie den Stream Analytics-Auftrag löschen, löscht Azure automatisch die zugeordnete Identität (d. a. den Dienstprinzipal). 

    Wenn Sie die Konfiguration speichern, wird die Objekt-ID (OID) des Dienstprinzipals wie im folgenden Abschnitt dargestellt als Prinzipal-ID angezeigt:

    Prinzipal-ID

    Der Dienstprinzipal hat denselben Namen wie der Stream Analytics-Job. Wenn der Name des Auftrags z. B. MyASAJob lautet, erhält auch der Dienstprinzipal den Namen MyASAJob. 

Azure Resource Manager-Bereitstellung

Mithilfe von Azure Resource Manager können Sie die Bereitstellung Ihres Stream Analytics-Auftrags vollständig automatisieren. Sie können Resource Manager Vorlagen entweder mit Azure PowerShell oder dem Azure CLI bereitstellen. In den folgenden Beispielen wird die Azure CLI verwendet.

  1. Erstellen Sie eine Microsoft. StreamAnalytics/streamingjobs Ressource mit einer verwalteten Identität, indem sie die folgende Eigenschaft in den Ressourcenabschnitt Ihrer Resource Manager-Vorlage einschließen:

    "Identity": {
      "Type": "SystemAssigned",
    },
    

    Diese Eigenschaft weist Azure Resource Manager an, die Identität für Ihren Stream Analytics-Auftrag zu erstellen und zu verwalten. Im folgenden Beispiel einer Resource Manager-Vorlage wird ein Stream Analytics-Auftrag mit aktivierter verwalteter Identität und einem Blob-Ausgabeziel bereitgestellt, das die verwaltete Identität verwendet.

    {
        "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "resources": [
            {
                "apiVersion": "2017-04-01-preview",
                "name": "MyStreamingJob",
                "location": "[resourceGroup().location]",
                "type": "Microsoft.StreamAnalytics/StreamingJobs",
                "identity": {
                    "type": "systemAssigned"
                },
                "properties": {
                    "sku": {
                        "name": "standard"
                    },
                    "outputs":[
                        {
                            "name":"output",
                            "properties":{
                                "serialization": {
                                    "type": "JSON",
                                    "properties": {
                                        "encoding": "UTF8"
                                    }
                                },
                                "datasource":{
                                    "type":"Microsoft.Storage/Blob",
                                    "properties":{
                                        "storageAccounts": [
                                            { "accountName": "MyStorageAccount" }
                                        ],
                                        "container": "test",
                                        "pathPattern": "segment1/{date}/segment2/{time}",
                                        "dateFormat": "yyyy/MM/dd",
                                        "timeFormat": "HH",
                                        "authenticationMode": "Msi"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        ]
    }
    

    Sie können den vorherigen Auftrag in der Ressourcengruppe ExampleGroup bereitstellen, indem Sie den folgenden befehl Azure CLI verwenden:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Nachdem Sie den Auftrag erstellt haben, verwenden Sie Azure Resource Manager, um die vollständige Definition des Auftrags abzurufen.

    az resource show --ids /subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.StreamAnalytics/StreamingJobs/{RESOURCE_NAME}
    

    Der obige Befehl gibt eine Antwort wie das folgende Beispiel zurück:

    {
        "id": "/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.StreamAnalytics/streamingjobs/{RESOURCE_NAME}",
        "identity": {
            "principalId": "{PRINCIPAL_ID}",
            "tenantId": "{TENANT_ID}",
            "type": "SystemAssigned",
            "userAssignedIdentities": null
        },
        "kind": null,
        "location": "West US",
        "managedBy": null,
        "name": "{RESOURCE_NAME}",
        "plan": null,
        "properties": {
            "compatibilityLevel": "1.0",
            "createdDate": "2019-07-12T03:11:30.39Z",
            "dataLocale": "en-US",
            "eventsLateArrivalMaxDelayInSeconds": 5,
            "jobId": "{JOB_ID}",
            "jobState": "Created",
            "jobStorageAccount": null,
            "jobType": "Cloud",
            "outputErrorPolicy": "Stop",
            "package": null,
            "provisioningState": "Succeeded",
            "sku": {
                "name": "Standard"
            }
        },
        "resourceGroup": "{RESOURCE_GROUP}",
        "sku": null,
        "tags": null,
        "type": "Microsoft.StreamAnalytics/streamingjobs"
    }
    

    Notieren Sie sich die principalId aus der Definition des Auftrags, die die verwaltete Identität Ihres Auftrags innerhalb Microsoft Entra ID identifiziert und im nächsten Schritt verwendet wird, um dem Stream Analytics-Auftrag Zugriff auf das Speicherkonto zu gewähren.

  3. Nachdem Sie den Auftrag erstellt haben, sehen Sie sich den Abschnitt "Gewähren Sie dem Stream Analytics-Auftrag Zugriff auf Ihr Speicherkonto" in diesem Artikel an.

Geben Sie dem Stream Analytics Job Zugriff auf Ihr Speicherkonto

Sie können Ihrem Stream Analytics-Auftrag zwei Zugriffsebenen gewähren:

  1. Zugriff auf Containerebene: Diese Zugriffsebene gewährt dem Auftrag Zugriff auf einen bestimmten vorhandenen Container.
  2. Zugriff auf Kontoebene: Diese Zugriffsebene gewährt dem Auftrag allgemeinen Zugriff auf das Speicherkonto, einschließlich der Möglichkeit, neue Container zu erstellen.

Wenn Sie nicht den Auftrag zum Erstellen von Containern benötigen, wählen Sie den Zugriff auf Containerebene aus, um dem Auftrag die Mindeststufe des erforderlichen Zugriffs zu gewähren. In den folgenden Abschnitten werden beide Optionen für das Azure Portal und die Befehlszeile erläutert.

Hinweis

Aufgrund der globalen Replikation oder Zwischenspeicherungslatenz kann das Widerrufen oder Erteilen von Berechtigungen einige Zeit in Anspruch nehmen. Änderungen sollten innerhalb von acht Minuten angezeigt werden.

Gewähren des Zugriffs über das Azure-Portal

Zugriff auf Containerebene

  1. Wechseln Sie zum Konfigurationsbereich des Containers in Ihrem Speicherkonto.

  2. Wählen Sie Zugriffssteuerung (IAM) aus.

  3. Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen aus, um die Seite Rollenzuweisung hinzufügen zu öffnen.

  4. Weisen Sie die folgende Rolle zu. Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.

    Einstellung Wert
    Rolle Beitragender für Storage Blob Data
    Zugriff zuweisen Benutzer, Gruppe oder Dienstprinzipal
    Mitglieder <Name Ihres Stream Analytics-Auftrags>

    Screenshot: Seite „Rollenzuweisung hinzufügen“ im Azure-Portal

Zugriff auf Kontoebene

  1. Wechseln Sie zum Speicherkonto.

  2. Wählen Sie Zugriffssteuerung (IAM) aus.

  3. Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen aus, um die Seite Rollenzuweisung hinzufügen zu öffnen.

  4. Weisen Sie die folgende Rolle zu. Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.

    Einstellung Wert
    Rolle Mitwirkender an Storage-Blobdaten
    Zugriff zuweisen an Benutzer, Gruppe oder Dienstprinzipal
    Mitglieder <Name Ihres Stream Analytics-Auftrags>

    Screenshot: Seite „Rollenzuweisung hinzufügen“ im Azure-Portal

Zugriff über das Befehlszeile gewähren

Zugriff auf Containerebene

Um Zugriff auf einen bestimmten Container zu erhalten, führen Sie den folgenden Befehl mit der Azure CLI aus:

az role assignment create --role "Storage Blob Data Contributor" --assignee <principal-id> --scope /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container-name>

Zugriff auf Kontoebene

Um Zugriff auf das gesamte Konto zu erhalten, führen Sie den folgenden Befehl mit der Azure CLI aus:

az role assignment create --role "Storage Blob Data Contributor" --assignee <principal-id> --scope /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>

Erstellen einer Blob-Eingabe oder -Ausgabe

Nachdem die verwaltete Identität konfiguriert wurde, können Sie dem Stream Analytics-Auftrag die Blobressource als Eingabe oder Ausgabe hinzufügen.

  1. Wählen Sie im Fenster mit den Ausgabeeigenschaften der Azure Blob Storage-Ausgabesenke die Dropdownliste der Authentifizierungsmodi, und wählen Sie Verwaltete Identität aus. Informationen zu den anderen Ausgabeeigenschaften finden Sie unter Grundlegendes zu den Ausgaben von Azure Stream Analytics. Wählen Sie abschließend Speichern aus.

    Konfigurieren der Azure Blob Storage-Ausgabe

Aktivieren des Zugriffs auf virtuelle Netzwerke

Wenn Sie die Firewalls und virtuellen Netzwerke Ihres Speicherkontos konfigurieren können Sie optional den Netzwerkdatenverkehr von anderen vertrauenswürdigen Microsoft-Dienste zulassen. Wenn Stream Analytics mithilfe von verwalteter Identität authentifiziert wird, stellt sie den Nachweis bereit, dass die Anforderung von einem vertrauenswürdigen Dienst stammt. In den folgenden Anweisungen wird erläutert, wie Sie diese Ausnahme für den Zugriff auf virtuelle Netzwerke aktivieren.

  1. Wechseln Sie zum Bereich "Firewalls" und "Virtuelle Netzwerke " im Konfigurationsbereich des Speicherkontos.
  2. Stellen Sie sicher, dass die Option Vertrauenswürdigen Microsoft-Diensten den Zugriff auf dieses Speicherkonto erlauben aktiviert ist.
  3. Wenn Sie sie aktiviert haben, wählen Sie "Speichern" aus.

Aktivieren des VNET-Zugriffs

Entfernen der verwalteten Identität

Die verwaltete Identität, die Sie für einen Stream Analytics-Auftrag erstellen, wird nur gelöscht, wenn Sie den Auftrag löschen. Sie können die verwaltete Identität nicht löschen, ohne den Auftrag zu löschen. Wenn Sie die verwaltete Identität nicht mehr verwenden möchten, können Sie die Authentifizierungsmethode für die Ausgabe ändern. Die verwaltete Identität ist weiterhin vorhanden, bis Sie den Auftrag löschen, und es wird verwendet, wenn Sie die Verwaltete Identitätsauthentifizierung erneut verwenden möchten.

Einschränkungen

Die aktuellen Einschränkungen dieses Features umfassen:

  1. Klassische Azure Storage-Konten.

  2. Azure-Konten ohne Microsoft Entra ID.

  3. Der Mehrinstanzenzugriff wird nicht unterstützt. Der für einen bestimmten Stream Analytics-Auftrag erstellte Dienstprinzipal muss sich in derselben Microsoft Entra Mandantenumgebung befinden, in der Sie den Auftrag erstellt haben, und Sie können ihn nicht mit einer Ressource verwenden, die in einem anderen Microsoft Entra Mandant existiert.

Nächste Schritte