Condividi tramite


Usare l'identità gestita per autenticare il processo di Analisi di flusso di Azure in Archiviazione BLOB di Azure

L'autenticazione con identità gestita per l'output in Archiviazione BLOB di Azure offre ai processi di Analisi di flusso l'accesso diretto a un account di archiviazione anziché usare una stringa di connessione. Oltre a migliorare la sicurezza, questa funzionalità consente anche di scrivere dati in un account di archiviazione in una rete virtuale (VNET) all'interno di Azure.

Questo articolo illustra come abilitare l'identità gestita per gli output BLOB di un processo di Analisi di flusso tramite il portale di Azure e tramite una distribuzione di Azure Resource Manager.

Creare il processo di Analisi di flusso tramite il portale di Azure

Per prima cosa, si crea un'identità gestita per il processo di Analisi di flusso di Azure. 

  1. Nel portale di Azure aprire il processo di Analisi di flusso di Azure. 

  2. Nel menu di spostamento a sinistra selezionare Identità gestita in Configura. Selezionare quindi la casella accanto a Usa identità gestita assegnata dal sistema e selezionare Salva.

    Identità gestita assegnata dal sistema

  3. In Microsoft Entra ID viene creata un'entità servizio per l'identità del processo di Analisi di flusso. Il ciclo di vita dell'identità creata viene gestito da Azure. Quando si elimina il processo di Analisi di flusso, l'identità associata (ovvero, l'entità servizio) viene eliminata automaticamente da Azure. 

    Quando si salva la configurazione, l'ID oggetto (OID) dell'entità servizio viene indicato come ID entità, come illustrato di seguito:

    ID entità di sicurezza

    L'entità servizio ha lo stesso nome del processo di Analisi di flusso. Ad esempio, se il nome del processo è MyASAJob, anche il nome dell'entità servizio è MyASAJob. 

Distribuzione Azure Resource Manager

L'uso di Azure Resource Manager consente di automatizzare completamente la distribuzione del processo di Analisi di flusso. È possibile distribuire modelli di Resource Manager usando Azure PowerShell o l'interfaccia della riga di comando di Azure. Gli esempi seguenti usano l'interfaccia della riga di comando di Azure.

  1. È possibile creare una risorsa Microsoft.StreamAnalytics/streamingjobs con un'identità gestita includendo la proprietà seguente nella sezione delle risorse del modello di Resource Manager:

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

    Questa proprietà indica ad Azure Resource Manager di creare e gestire l'identità per il processo di Analisi di flusso di Azure. Di seguito è riportato un modello di Resource Manager di esempio che distribuisce un processo di Analisi di flusso con identità gestita abilitata e un sink di output BLOB che usa l'identità gestita:

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

    Il processo precedente può essere distribuito nel gruppo di risorse ExampleGroup usando il comando dell'interfaccia della riga di comando di Azure seguente:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Dopo aver creato il processo, è possibile usare Azure Resource Manager per recuperare la definizione completa del processo.

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

    Il comando precedente restituirà una risposta simile alla seguente:

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

    Prendere nota del principalId dalla definizione del processo, che identifica l'identità gestita del processo all'interno di Microsoft Entra ID e verrà usato nel passaggio successivo per concedere al processo di Analisi di flusso l'accesso all'account di archiviazione.

  3. Dopo aver creato il processo, vedere la sezione Concedere al processo di Analisi di flusso l'accesso all'account di archiviazione di questo articolo.

Concedere al processo di Analisi di flusso l'accesso all'account di archiviazione

È possibile scegliere due livelli di accesso da assegnare al processo di Analisi di flusso:

  1. Accesso a livello di contenitore: questa opzione consente al processo di accedere a un contenitore esistente specifico.
  2. Accesso a livello di account: questa opzione concede al processo l'accesso generale all'account di archiviazione, inclusa la possibilità di creare nuovi contenitori.

A meno che non sia necessario che il processo per crei contenitori per conto dell'utente, è consigliabile scegliere l'Accesso a livello di contenitore poiché questa opzione concederà al processo il livello minimo di accesso necessario. Entrambe le opzioni sono illustrate di seguito per il portale di Azure e la riga di comando.

Nota

A causa della replica globale o della latenza di memorizzazione nella cache, quando le autorizzazioni vengono revocate o concesse potrebbe verificarsi un ritardo. Le modifiche dovrebbero essere rispecchiate entro 8 minuti.

Concedere l'accesso tramite il portale di Azure

Accesso a livello di contenitore

  1. Passare al riquadro di configurazione del contenitore all'interno dell'account di archiviazione.

  2. Seleziona Controllo di accesso (IAM).

  3. Selezionare Aggiungi>Aggiungi assegnazione di ruolo per aprire la pagina Aggiungi assegnazione di ruolo.

  4. Assegnare il ruolo seguente. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.

    Impostazione Valore
    Ruolo Collaboratore dati BLOB di archiviazione
    Assegna accesso a Utente, gruppo o entità servizio
    Membri <Nome del processo di Analisi di flusso>

    Screenshot che mostra la pagina Aggiungi un'assegnazione di ruolo nel portale di Azure.

Accesso a livello di account

  1. Passa all'account di archiviazione.

  2. Seleziona Controllo di accesso (IAM).

  3. Selezionare Aggiungi>Aggiungi assegnazione di ruolo per aprire la pagina Aggiungi assegnazione di ruolo.

  4. Assegnare il ruolo seguente. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.

    Impostazione Valore
    Ruolo Collaboratore dati BLOB di archiviazione
    Assegna accesso a Utente, gruppo o entità servizio
    Membri <Nome del processo di Analisi di flusso>

    Screenshot che mostra la pagina Aggiungi un'assegnazione di ruolo nel portale di Azure.

Concedere l'accesso tramite la riga di comando

Accesso a livello di contenitore

Per concedere l'accesso a un contenitore specifico, eseguire il comando seguente usando l'interfaccia della riga di comando di Azure:

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>

Accesso a livello di account

Per concedere l'accesso all'intero account, eseguire il comando seguente usando l'interfaccia della riga di comando di Azure:

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>

Creare un input o un output BLOB

Ora che l'identità gestita è configurata, si è pronti per aggiungere la risorsa BLOB come output o input per il processo di Analisi di flusso.

  1. Nella finestra delle proprietà di output del sink di output dell'Archiviazione BLOB di Azure selezionare l'elenco a discesa Modalità di autenticazione e scegliere Identità gestita. Per informazioni sulle altre proprietà di output, vedere Informazioni sugli output di Analisi di flusso di Azure. Al termine, fare clic su Salva.

    Configurare l'output dell'Archiviazione BLOB di Azure

Abilitare l'accesso alla rete virtuale

Quando si configurano Firewall e reti virtuali dell'account di archiviazione, è possibile consentire facoltativamente il traffico nella rete da altri servizi Microsoft attendibili. Quando Analisi di flusso esegue l'autenticazione con l'identità gestita, fornisce la prova che la richiesta proviene da un servizio attendibile. Di seguito sono riportate le istruzioni per abilitare questa eccezione di accesso alla rete virtuale.

  1. Passare al riquadro "Firewall e reti virtuali" nel riquadro di configurazione dell'account di archiviazione.
  2. Assicurarsi che l'opzione "Consenti ai servizi Microsoft attendibili di accedere a questo account di archiviazione" sia abilitata.
  3. Se è stata abilitata, fare clic su Salva.

Abilitare l'accesso alla rete virtuale

Rimuovere l’identità gestita

L'identità gestita creata per un processo di Analisi di flusso viene eliminata solo quando viene eliminato il processo. Non è possibile eliminare l'identità gestita senza eliminare il processo. Se non si vuole più usare l'identità gestita, è possibile modificare il metodo di autenticazione per l'output. L'identità gestita continuerà a esistere fino all'eliminazione del processo e verrà usata se si decide di usare nuovamente l'autenticazione con identità gestita.

Limiti

Di seguito sono riportate le limitazioni correnti di questa funzionalità:

  1. Account di archiviazione di Azure classici.

  2. Account Azure senza Microsoft Entra ID.

  3. L'accesso multi-tenant non è supportato. L'entità servizio creata per un determinato processo di Analisi di flusso deve risiedere nello stesso tenant di Microsoft Entra in cui è stato creato il processo e non può essere usata con una risorsa che risiede in un tenant di Microsoft Entra diverso.

Passaggi successivi