Gebruik beheerde identiteit om uw Azure Stream Analytics-taak te authenticeren voor Azure Blob Storage.

Wanneer u beheerde identiteitsverificatie gebruikt voor uitvoer naar Azure Blob Storage, krijgen Stream Analytics-taken directe toegang tot een opslagaccount zonder een verbindingsreeks te gebruiken. Deze functie verbetert de beveiliging en stelt u in staat om gegevens te schrijven naar een opslagaccount in een virtueel netwerk (VNET) binnen Azure.

In dit artikel leest u hoe u beheerde identiteit inschakelt voor de Blob-uitvoer van een Stream Analytics-taak via de Azure-portal en via een Azure Resource Manager-implementatie.

De Stream Analytics-taak maken met behulp van de Azure-portal

Maak eerst een beheerde identiteit voor uw Azure Stream Analytics taak. 

  1. Open uw Azure Stream Analytics-taak in Azure Portal. 

  2. Selecteer in het linkernavigatiemenu beheerde identiteit onder Configureren. Schakel vervolgens het selectievakje in naast Door het systeem toegewezen beheerde identiteit gebruiken en selecteer Opslaan.

    Door het systeem toegewezen beheerde identiteit

  3. Azure maakt een service-principal aan voor de identiteit van de Stream Analytics-job in Microsoft Entra ID. Azure beheert de levenscyclus van de zojuist gemaakte identiteit. Wanneer u de Stream Analytics-job verwijdert, verwijdert Azure automatisch de bijbehorende identiteit (dat wil zeggen de service-principal). 

    Wanneer u de configuratie opslaat, wordt de object-id (OID) van de service-principal weergegeven als de principal-id, zoals wordt weergegeven in de volgende sectie:

    Principal ID

    De service-principal heeft dezelfde naam als de Stream Analytics-taak. Als de naam van uw taak bijvoorbeeld MyASAJob is, dan is de naam van de service-principal ook MyASAJob. 

Implementatie van Azure Resource Manager

Met behulp van Azure Resource Manager kunt u de implementatie van uw Stream Analytics-taak volledig automatiseren. U kunt Resource Manager sjablonen implementeren met behulp van Azure PowerShell of de Azure CLI. In de volgende voorbeelden wordt de Azure CLI gebruikt.

  1. Maak een Microsoft. StreamAnalytics/streamingjobs resource met een beheerde identiteit door de volgende eigenschap op te slaan in de resourcesectie van uw Resource Manager-sjabloon:

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

    Deze eigenschap geeft Azure Resource Manager de opdracht om de identiteit van uw Stream Analytics-taak te creëren en te beheren. In het volgende voorbeeld Resource Manager sjabloon wordt een Stream Analytics-taak geïmplementeerd waarvoor Managed Identity is ingeschakeld en een Blob-uitvoersink die gebruikmaakt van beheerde identiteit:

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

    U kunt de voorgaande taak implementeren in de resourcegroep ExampleGroup met behulp van de volgende Azure CLI opdracht:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Nadat u de taak hebt gemaakt, gebruikt u Azure Resource Manager om de volledige definitie van de taak op te halen.

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

    De voorgaande opdracht retourneert een antwoord zoals in het volgende voorbeeld:

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

    Noteer de principalId uit de definitie van de taak, waarmee de beheerde identiteit van uw taak in Microsoft Entra ID wordt geïdentificeerd en in de volgende stap wordt gebruikt om de Stream Analytics-taak toegang te verlenen tot het opslagaccount.

  3. Nu u de job hebt gemaakt, raadpleegt u de sectie Stream Analytics-job toegang geven tot uw opslagaccount van dit artikel.

Geef de Stream Analytics-taak toegang tot uw opslagaccount

U kunt uw Stream Analytics-taak twee toegangsniveaus geven:

  1. Toegang op containerniveau: Dit toegangsniveau verleent de taak toegang tot een specifieke bestaande container.
  2. Toegang op accountniveau: Dit toegangsniveau verleent de taak algemene toegang tot het opslagaccount, inclusief de mogelijkheid om nieuwe containers te maken.

Tenzij u de taak nodig hebt om containers te maken, kiest u Toegang op containerniveau om de taak het minimale toegangsniveau te verlenen dat vereist is. In de volgende secties worden beide opties voor de Azure-portal en de opdrachtregel uitgelegd.

Notitie

Vanwege globale replicatie of cachinglatentie kan het intrekken of verlenen van machtigingen enige tijd duren. Wijzigingen moeten binnen acht minuten worden weergegeven.

Toegang verlenen via de Azure Portal

Toegang op containerniveau

  1. Ga naar het configuratievenster van de container in uw opslagaccount.

  2. Klik op Toegangsbeheer (IAM) .

  3. Klik op Toevoegen>Roltoewijzing toevoegen om het deelvenster Roltoewijzing toevoegen te openen.

  4. Wijs de volgende rol toe. Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.

    Instelling Waarde
    Rol Inzender voor opslagblobgegevens
    Toegang toewijzen aan Gebruiker, groep of service-principal
    Leden <Naam van uw Stream Analytics-taak>

    Schermopname van de pagina Roltoewijzing toevoegen in Azure Portal.

Toegang op accountniveau

  1. Ga naar uw opslagaccount.

  2. Klik op Toegangsbeheer (IAM) .

  3. Klik op Toevoegen>Roltoewijzing toevoegen om het deelvenster Roltoewijzing toevoegen te openen.

  4. Wijs de volgende rol toe. Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.

    Instelling Waarde
    Rol Inzender voor opslagblobgegevens
    Toegang toewijzen aan Gebruiker, groep of service-principal
    Leden <Naam van uw Stream Analytics-taak>

    Schermopname van de pagina Roltoewijzing toevoegen in Azure Portal.

Toegang verlenen via de opdrachtregel

Toegang op containerniveau

Als u toegang wilt verlenen tot een specifieke container, voert u de volgende opdracht uit met behulp van de 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>

Toegang op accountniveau

Als u toegang wilt verlenen tot het hele account, voert u de volgende opdracht uit met behulp van de 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>

Een blob-invoer of -uitvoer maken

Nu uw beheerde identiteit is geconfigureerd, kunt u de blobbron toevoegen als invoerbron of uitvoerbron aan uw Stream Analytics-taak.

  1. Selecteer in het venster met uitvoereigenschappen van de uitvoersink voor Azure Blob Storage de vervolgkeuzelijst Verificatiemodus en kies Managed Identity. Zie Uitvoer van Azure Stream Analytics begrijpen voor meer informatie over de andere uitvoereigenschappen. Selecteer Opslaan wanneer u klaar bent.

    Uitvoer van Azure Blob Storage configureren

Virtuele netwerktoegang inschakelen

Wanneer u de Firewalls en virtuele netwerken van uw opslagaccount configureert, kunt u eventueel netwerkverkeer van andere vertrouwde Microsoft-services toestaan. Wanneer Stream Analytics wordt geverifieerd met behulp van beheerde identiteit, biedt het bewijs dat de aanvraag afkomstig is van een vertrouwde service. In de volgende instructies wordt uitgelegd hoe u deze uitzondering voor virtuele netwerktoegang inschakelt.

  1. Ga naar het deelvenster Firewalls en virtuele netwerken in het configuratiedeelvenster van het opslagaccount.
  2. Controleer of de optie Vertrouwde Microsoft-services toegang geven tot dit opslagaccount is ingeschakeld.
  3. Als u dit hebt ingeschakeld, selecteert u Opslaan.

VNET-toegang inschakelen

Beheerde identiteit verwijderen

De beheerde identiteit die u voor een Stream Analytics-taak maakt, wordt alleen verwijderd wanneer u de taak verwijdert. U kunt de beheerde identiteit niet verwijderen zonder de taak te verwijderen. Als u de beheerde identiteit niet meer wilt gebruiken, kunt u de verificatiemethode voor de uitvoer wijzigen. De beheerde identiteit blijft bestaan totdat u de taak verwijdert en deze wordt gebruikt als u besluit om de verificatie van beheerde identiteit opnieuw te gebruiken.

Beperkingen

De huidige beperkingen van deze functie zijn onder andere:

  1. Klassieke Azure Storage-accounts.

  2. Azure-accounts zonder Microsoft Entra-id.

  3. Multi-tenant toegang wordt niet ondersteund. De service-principal die is gemaakt voor een bepaalde Stream Analytics-taak, moet zich in dezelfde Microsoft Entra tenant bevinden waarin u de taak hebt gemaakt en u kunt deze niet gebruiken met een resource die zich in een andere Microsoft Entra tenant bevindt.

Volgende stappen