Condividi tramite


Connettersi ad Archiviazione di Azure usando un'identità gestita (Azure AI Search)

Questo articolo illustra come configurare una connessione del servizio di ricerca a un account di Archiviazione di Azure usando un'identità gestita anziché fornire le credenziali nella stringa di connessione.

È possibile usare un'identità gestita assegnata dal sistema o un'identità gestita assegnata dall'utente. Le identità gestite sono account di accesso di Microsoft Entra e richiedono assegnazioni di ruolo per l'accesso ad Archiviazione di Azure.

Prerequisiti

Nota

Se l'archiviazione è protetta dalla rete e si trova nella stessa area del servizio di ricerca, è necessario usare un'identità gestita assegnata dal sistema e una delle opzioni di rete seguenti: connettersi come servizio attendibileo connettersi usando la regola dell'istanza della risorsa.

Creare un'assegnazione di ruolo in Archiviazione di Azure

  1. Accedere al portale di Azure e trovare l'account di archiviazione.

  2. Seleziona Controllo di accesso (IAM).

  3. Selezionare Aggiungi e quindi selezionare Assegnazione di ruolo.

  4. Nell'elenco dei ruoli della funzione lavorativa selezionare i ruoli necessari per il servizio di ricerca:

    Attività Assegnazione di ruolo
    Indicizzazione di BLOB tramite un indicizzatore Aggiungere Lettore dei dati del BLOB di archiviazione
    Indicizzazione di ADLS Gen2 tramite un indicizzatore Aggiungere Lettore dei dati del BLOB di archiviazione
    Indicizzazione di tabelle tramite un indicizzatore Aggiungere Lettore e accesso ai dati
    Indicizzazione di file tramite un indicizzatore Aggiungere Lettore e accesso ai dati
    Scrivere in un archivio conoscenze Aggiungere Collaboratore ai dati dei BLOB di archiviazione per le proiezioni di oggetti e file e Lettore e accesso ai dati per le proiezioni di tabelle.
    Scrivere in una cache di arricchimento Aggiungere Collaboratore ai dati dei BLOB di archiviazione
    Salvare lo stato della sessione di debug Aggiungere Collaboratore ai dati dei BLOB di archiviazione
  5. Selezionare Avanti.

  6. Selezionare Identità gestita e selezionare Membri.

  7. Filtrare in base alle identità gestite assegnate dal sistema o alle identità gestite assegnate dall'utente. Verrà visualizzata l'identità gestita creata in precedenza per il servizio di ricerca. Se non è disponibile, vedere Configurare la ricerca per l'uso di un'identità gestita. Se ne è già stato configurata una ma non è disponibile, attendere qualche minuto.

  8. Selezionare l'identità e salvare l'assegnazione di ruolo.

Specificare un'identità gestita in una stringa di connessione

Dopo aver assegnato un ruolo, è possibile configurare una connessione ad Archiviazione di Azure che opera con tale ruolo.

Gli indicizzatori usano un oggetto origine dati per le connessioni a un'origine dati esterna. Questa sezione illustra come specificare un'identità gestita assegnata dal sistema o un'identità gestita assegnata dall'utente in una stringa di connessione dell'origine dati. Altre esempi di stringhe di connessione sono disponibili nell'articolo sull'identità gestita.

Suggerimento

È possibile creare una connessione dell'origine dati ad Archiviazione di Azure nel portale di Azure, specificando un'identità gestita assegnata dal sistema o un'identità gestita assegnata dall'utente e quindi visualizzare la definizione JSON per vedere come viene formulata la stringa di connessione.

Identità gestita assegnata dal sistema

È necessario avere un'identità gestita assegnata dal sistema già configurata e deve avere un'assegnazione di ruolo in Archiviazione di Azure.

Per le connessioni effettuate con un'identità gestita assegnata dal sistema, l'unica modifica alla definizione dell'origine dati è il formato della proprietà credentials.

Specificare ResourceId senza chiave o password dell'account. ResourceId deve includere l'ID sottoscrizione dell'account di archiviazione, il gruppo di risorse dell'account di archiviazione e il nome dell'account di archiviazione.

POST https://[service name].search.windows.net/datasources?api-version=2024-07-01

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    }
}   

Identità gestita assegnata dall'utente

È necessario avere un'identità gestita assegnata dall'utente già configurata e associata al servizio di ricerca e l'identità deve avere un'assegnazione di ruolo in Archiviazione di Azure.

Le connessioni effettuate tramite identità gestite assegnate dall'utente usano le stesse credenziali di un'identità gestita assegnata dal sistema, oltre a una proprietà di identità aggiuntiva che contiene la raccolta di identità gestite assegnate dall'utente. Quando si crea l'origine dati, è necessario specificare un'unica identità gestita assegnata dall'utente. Impostare userAssignedIdentity sull'identità gestita assegnata dall'utente.

Specificare ResourceId senza chiave o password dell'account. ResourceId deve includere l'ID sottoscrizione dell'account di archiviazione, il gruppo di risorse dell'account di archiviazione e il nome dell'account di archiviazione.

Specificare identity usando la sintassi illustrata nell'esempio seguente.

POST https://[service name].search.windows.net/datasources?api-version=2024-07-01

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    },
    "identity" : { 
        "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
        "userAssignedIdentity" : "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MY-DEMO-USER-MANAGED-IDENTITY" 
    }
}   

Le informazioni di connessione e le autorizzazioni per il servizio remoto vengono convalidate in fase di esecuzione durante l'esecuzione dell'indicizzatore. Se l'indicizzatore ha esito positivo, la sintassi di connessione e le assegnazioni di ruolo sono valide. Per altre informazioni, vedere Eseguire o reimpostare indicizzatori, competenze o documenti.

Accesso ai dati protetti dalla rete negli account di archiviazione

Gli account di Archiviazione di Azure possono essere ulteriormente protetti usando firewall e reti virtuali. Per indicizzare il contenuto da un account di archiviazione protetto tramite un firewall o una rete virtuale, vedere Stabilire connessioni dell'indicizzatore ad Archiviazione di Azure come servizio attendibile.

Vedi anche