Använd hanterad identitet för att autentisera ditt Azure Stream Analytics-jobb mot Azure Blob Storage.

När du använder hanterad identitetsautentisering för utdata till Azure Blob Storage, får Stream Analytics-jobb direkt åtkomst till ett lagringskonto utan att använda en reťazec pripojenia. Den här funktionen förbättrar säkerheten och gör att du kan skriva data till ett lagringskonto i ett virtuellt nätverk (VNET) inom Azure.

Den här artikeln visar hur du aktiverar hanterad identitet för blobutdata för ett Stream Analytics-jobb via Azure-portalen och via en Azure Resource Manager distribution.

Skapa Stream Analytics-jobbet med hjälp av Azure-portalen

Skapa först en hanterad identitet för ditt Azure Stream Analytics jobb. 

  1. Öppna ditt Azure Stream Analytics-jobb i Azure Portal. 

  2. I den vänstra navigeringsmenyn väljer du Hanterad identitet under Konfigurera. Markera sedan kryssrutan bredvid Använd systemtilldelad hanterad identitet och välj Spara.

    Systemtilldelad hanterad identitet

  3. Azure skapar en tjänstehuvudman för Stream Analytics-jobbets identitet i Microsoft Entra ID. Azure hanterar livscykeln för den nyligen skapade identiteten. När du tar bort Stream Analytics-jobbet tar Azure automatiskt bort den associerade identiteten (dvs. tjänstens huvudnamn). 

    När du sparar konfigurationen visas objekt-ID (OID) för tjänstens principal som principal-ID enligt följande avsnitt:

    Principal-ID

    Tjänstens huvudnamn har samma namn som Stream Analytics-jobbet. Om namnet på jobbet till exempel är MyASAJobär namnet på tjänstens huvudnamn också MyASAJob. 

Azure Resource Manager-utplacering

Med hjälp av Azure Resource Manager kan du automatisera distributionen av Stream Analytics-jobbet fullständigt. Du kan distribuera Resource Manager mallar med hjälp av antingen Azure PowerShell eller Azure CLI. I följande exempel används Azure CLI.

  1. Skapa en Microsoft. StreamAnalytics/streamingjobs resurs med en hanterad identitet genom att inkludera följande egenskap i resursavsnittet i din Resource Manager-mall:

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

    Den här egenskapen instruerar Azure Resource Manager att skapa och hantera identiteten för ditt Stream Analytics-jobb. I följande exempel på en Resource Manager-mall distribuerar ett Stream Analytics-jobb med hanterad identitet aktiverad, och en blob-utdata-mottagare som använder hanterad identitet:

    {
        "$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"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        ]
    }
    

    Du kan distribuera föregående jobb till resursgruppen ExampleGroup med hjälp av följande Azure CLI kommando:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. När du har skapat jobbet använder du Azure Resource Manager för att hämta jobbets fullständiga definition.

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

    Föregående kommando returnerar ett svar som i följande exempel:

    {
        "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"
    }
    

    Anteckna principalId från jobbets definition, vilket identifierar jobbets hanterade identitet inom Microsoft Entra ID och ska användas i nästa steg för att ge Stream Analytics-jobbet åtkomst till lagringskontot.

  3. Nu när du har skapat jobbet kan du läsa avsnittet Ge Stream Analytics-jobbet åtkomst till ditt lagringskonto i den här artikeln.

Ge Stream Analytics-jobbet åtkomst till ditt lagringskonto

Du kan ge Stream Analytics-jobbet två åtkomstnivåer:

  1. Åtkomst på containernivå: Den här åtkomstnivån ger jobbet åtkomst till en specifik befintlig container.
  2. Åtkomst på kontonivå: Den här åtkomstnivån ger jobbet allmän åtkomst till lagringskontot, inklusive möjligheten att skapa nya containrar.

Om du inte behöver jobbet för att skapa containrar väljer du Åtkomst på containernivå för att ge jobbet den lägsta åtkomstnivå som krävs. I följande avsnitt beskrivs båda alternativen för Azure-portalen och kommandoraden.

Kommentar

På grund av global replikering eller svarstid för cachelagring kan det ta lite tid att återkalla eller bevilja behörigheter. Ändringarna bör visas inom åtta minuter.

Bevilja åtkomst via Azure-portalen

Åtkomst på containernivå

  1. Gå till containerns konfigurationsfönster i ditt lagringskonto.

  2. Välj Åtkomstkontroll (IAM) .

  3. Välj Lägg till>rolltilldelning för att öppna sidan Lägg till rolltilldelning.

  4. Tilldela följande roll. Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

    Inställning Värde
    Roll Storage Blob Data Bidragsgivare
    Tilldela åtkomst till Användaren, gruppen eller tjänstens huvudnamn
    Medlemmar <Namnet på ditt Stream Analytics-jobb>

    Skärmbild som visar sidan Lägg till rolltilldelning i Azure Portal.

Åtkomst på kontonivå

  1. Gå till ditt lagringskonto.

  2. Välj Åtkomstkontroll (IAM) .

  3. Välj Lägg till>rolltilldelning för att öppna sidan Lägg till rolltilldelning.

  4. Tilldela följande roll. Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

    Inställning Värde
    Roll Storage Blob-data bidragande
    Tilldela åtkomst till Användaren, gruppen eller tjänstens huvudnamn
    Medlemmar <Namnet på ditt Stream Analytics-jobb>

    Skärmbild som visar sidan Lägg till rolltilldelning i Azure Portal.

Bevilja åtkomst via kommandoraden

Åtkomst på containernivå

Om du vill ge åtkomst till en specifik container kör du följande kommando med hjälp av Azure CLI:

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>

Åtkomst på kontonivå

Om du vill ge åtkomst till hela kontot kör du följande kommando med hjälp av Azure CLI:

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>

Skapa en blobindata eller utdata

Nu när din hanterade identitet har konfigurerats är du redo att lägga till blobresursen som indata eller utdata till ditt Stream Analytics-jobb.

  1. I fönstret utdataegenskaper i Azure Blob Storage-utdatamottagaren väljer du listrutan Autentiseringsläge och väljer Hanterad identitet. Information om de andra utdataegenskaperna finns i Förstå utdata från Azure Stream Analytics. När du är klar väljer du Spara.

    Konfigurera Azure Blob Storage-utdata

Aktivera åtkomst till virtuellt nätverk

När du konfigurerar lagringskontots Brandväggar och virtuella nätverk kan du också tillåta nätverkstrafik från andra betrodda Microsoft-tjänster. När Stream Analytics autentiseras med hjälp av hanterad identitet visas ett bevis på att begäran kommer från en betrodd tjänst. Följande instruktioner beskriver hur du aktiverar det här undantaget för åtkomst till virtuella nätverk.

  1. Gå till fönstret Brandväggar och virtuella nätverk i lagringskontots konfigurationsfönster.
  2. Kontrollera att alternativet Tillåt att betrodda Microsoft-tjänster har åtkomst till det här lagringskontot är aktiverat.
  3. Om du har aktiverat den väljer du Spara.

Aktivera VNET-åtkomst

Ta bort hanterad identitet

Den hanterade identitet som du skapar för ett Stream Analytics-jobb tas bara bort när du tar bort jobbet. Du kan inte ta bort den hanterade identiteten utan att ta bort jobbet. Om du inte längre vill använda den hanterade identiteten kan du ändra autentiseringsmetoden för utdata. Den hanterade identiteten fortsätter att finnas tills du tar bort jobbet och det används om du bestämmer dig för att använda hanterad identitetsautentisering igen.

Begränsningar

De aktuella begränsningarna för den här funktionen är:

  1. Klassiska Azure Storage-konton.

  2. Azure-konton utan Microsoft Entra-ID.

  3. Åtkomst för flera klienter stöds inte. Tjänstens huvudnamn som skapats för ett visst Stream Analytics-jobb måste finnas i samma Microsoft Entra klientorganisation där du skapade jobbet och du kan inte använda det med en resurs som finns i en annan Microsoft Entra klientorganisation.

Nästa steg