Condividi tramite


BLOB di accodamento per l'inserimento tramite l'autenticazione dell'identità gestita

Quando si accodare i BLOB per l'inserimento da account di archiviazione personalizzati, è possibile usare le identità gestite come alternativa ai token di firma di accesso condiviso e ai metodi di autenticazione con chiavi condivise. Le identità gestite sono un modo più sicuro per inserire i dati perché non richiedono di condividere i token di firma di accesso condiviso del cliente o le chiavi condivise con il servizio. Al contrario, un'identità gestita viene assegnata al cluster e viene concessa le autorizzazioni di lettura per l'account di archiviazione usato per inserire i dati. È possibile revocare queste autorizzazioni in qualsiasi momento.

Nota

  • Questo metodo di autenticazione si applica solo ai BLOB di Azure e ai file di Azure Data Lake che risiedono negli account di archiviazione di proprietà del cliente. Non si applica ai file locali caricati con Kusto SDK.
  • È supportato solo l'inserimento in coda. L'inserimento inline in Linguaggio di query Kusto e l'inserimento diretto con le API SDK non sono supportati.

Assegnare un'identità gestita al cluster

Seguire La panoramica delle identità gestite per aggiungere un'identità gestita assegnata dal sistema o dall'utente al cluster. Se al cluster è già assegnata l'identità gestita desiderata, copiare l'ID oggetto seguendo questa procedura:

  1. Accedere al portale di Azure usando un account associato alla sottoscrizione di Azure che contiene il cluster.

  2. Passare al cluster e selezionare Identità.

  3. Selezionare il tipo di identità appropriato, il sistema o l'utente assegnato e quindi copiare l'ID oggetto dell'identità richiesta.

Screenshot della pagina di panoramica, che mostra l'oggetto identity gestito dal sistema I D

Concedere autorizzazioni all'identità gestita

  1. Nella portale di Azure passare all'account di archiviazione che contiene i dati da inserire.

  2. Selezionare Controllo di accesso e quindi + Aggiungi assegnazione>di ruolo.

  3. Concedere l'identità gestita Archiviazione lettore di dati BLOB o Archiviazione Collaboratore dati BLOB se si intende usare l'opzione di origine DeleteSourceOnSuccess, autorizzazioni per l'account di archiviazione.

Importante

La concessione di autorizzazioni di proprietario o collaboratore non è sufficiente e genererà un errore di inserimento.

Screenshot della pagina aggiungi assegnazione di ruolo, che mostra il ruolo assegnato dal sistema per l'inserimento tramite identità gestite

Impostare i criteri di identità gestita in Azure Esplora dati

Per usare l'identità gestita per inserire i dati nel cluster, consentire l'opzione NativeIngestion di utilizzo per l'identità gestita selezionata. L'inserimento nativo si riferisce alla possibilità di usare un SDK per l'inserimento da un'origine esterna. Per altre informazioni sugli SDK disponibili, vedere Librerie client.

I criteri di identità gestita di utilizzo possono essere definiti a livello di cluster o di database del cluster di destinazione.

Per applicare i criteri a livello di database, eseguire il comando seguente:

.alter-merge database <database name> policy managed_identity "[ { 'ObjectId' : '<managed_identity_id>', 'AllowedUsages' : 'NativeIngestion' }]"

Per applicare i criteri a livello di cluster, eseguire il comando seguente:

.alter-merge cluster policy managed_identity "[ { 'ObjectId' : '<managed_identity_id>', 'AllowedUsages' : 'NativeIngestion' }]"

Sostituire <managed_identity_id> con l'ID oggetto dell'identità gestita richiesta.

Nota

È necessario disporre dell'autorizzazione All Database Admin per il cluster per modificare i criteri di identità gestita.

BLOB di accodamento per l'inserimento con identità gestita con Kusto SDK

Quando si inseriscono dati usando un SDK Kusto, generare l'URI DEL BLOB usando l'autenticazione dell'identità gestita aggiungendo ;managed_identity={objectId} all'URI blob non autorizzato. Se si inseriscono dati usando l'identità gestita assegnata dal sistema del cluster, è possibile aggiungere ;managed_identity=system all'URI DEL BLOB.

Importante

È necessario usare un client di inserimento in coda. L'uso di identità gestite con inserimento diretto o inserimento inline in Linguaggio di query Kusto non è supportato.

Di seguito sono riportati esempi di URI BLOB per le identità gestite assegnate dal sistema e dall'utente.

  • Assegnata dal sistema: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=system
  • Utente assegnato: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=6a5820b9-fdf6-4cc4-81b9-b416b444fd6d

Importante

  • Quando si usano identità gestite per inserire dati con C# SDK, è necessario specificare una dimensione del BLOB in StorageSourceOptions. Se le dimensioni non sono impostate, l'SDK tenta di riempire le dimensioni del BLOB accedendo all'account di archiviazione, causando un errore.
  • Il parametro size deve essere la dimensione dei dati non elaborata (non compressa) e non le dimensioni del BLOB.
  • Se non si conoscono le dimensioni al momento dell'inserimento, specificare il valore zero (0). Il servizio tenterà di individuare le dimensioni usando l'identità gestita per l'autenticazione.