Ansluta till Azure Storage med en hanterad identitet (Azure AI Search)
Den här artikeln beskriver hur du konfigurerar en söktjänstanslutning till ett Azure Storage-konto med hjälp av en hanterad identitet i stället för att ange autentiseringsuppgifter i anslutningssträng.
Du kan använda en systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet. Hanterade identiteter är Microsoft Entra-inloggningar och kräver rolltilldelningar för åtkomst till Azure Storage.
Förutsättningar
- Azure AI Search, Basic-nivå eller högre med en hanterad identitet.
Kommentar
Om lagringen är nätverksskyddad och i samma region som söktjänsten måste du använda en systemtilldelad hanterad identitet och antingen något av följande nätverksalternativ: ansluta som en betrodd tjänst eller ansluta med hjälp av resursinstansregeln.
Skapa en rolltilldelning i Azure Storage
Logga in för att Azure Portal och hitta ditt lagringskonto.
Välj Åtkomstkontroll (IAM) .
Välj Lägg till och välj sedan Rolltilldelning.
I listan över jobbfunktionsroller väljer du de roller som behövs för söktjänsten:
Uppgift Rolltilldelning Blobindexering med hjälp av en indexerare Lägg till Storage Blob Data Reader ADLS Gen2-indexering med hjälp av en indexerare Lägg till Storage Blob Data Reader Tabellindexering med hjälp av en indexerare Lägg till läsare och dataåtkomst Filindexering med hjälp av en indexerare Lägg till läsare och dataåtkomst Skriva till ett kunskapslager Lägg till Storage Blob Data-deltagare för objekt- och filprojektioner samt Läsare och Dataåtkomst för tabellprojektioner. Skriva till en berikningscache Lägg till Storage Blob Data-deltagare Spara sessionstillstånd för felsökning Lägg till Storage Blob Data-deltagare Välj Nästa.
Välj Hanterad identitet och välj sedan Medlemmar.
Filtrera efter systemtilldelade hanterade identiteter eller användartilldelade hanterade identiteter. Du bör se den hanterade identitet som du skapade tidigare för söktjänsten. Om du inte har någon kan du läsa Konfigurera sökning för att använda en hanterad identitet. Om du redan har konfigurerat en, men den inte är tillgänglig, kan du ge den några minuter.
Välj identiteten och spara rolltilldelningen.
Ange en hanterad identitet i en anslutningssträng
När du har en rolltilldelning kan du konfigurera en anslutning till Azure Storage som fungerar under den rollen.
Indexerare använder ett datakällaobjekt för anslutningar till en extern datakälla. I det här avsnittet beskrivs hur du anger en systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet på en datakälla anslutningssträng. Du hittar fler anslutningssträng exempel i artikeln hanterad identitet.
Dricks
Du kan skapa en datakällaanslutning till Azure Storage i Azure Portal, ange antingen en system- eller användartilldelad hanterad identitet och sedan visa JSON-definitionen för att se hur anslutningssträng formuleras.
Systemtilldelad hanterad identitet
Du måste redan ha en systemtilldelad hanterad identitet konfigurerad och den måste ha en rolltilldelning i Azure Storage.
För anslutningar som görs med hjälp av en systemtilldelad hanterad identitet är den enda ändringen av datakällans definition formatet för credentials
egenskapen.
Ange en anslutningssträng som innehåller en ResourceId
, utan kontonyckel eller lösenord. ResourceId
Måste innehålla prenumerations-ID för lagringskontot, resursgruppen för lagringskontot och namnet på lagringskontot.
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>"
}
}
Användartilldelad hanterad identitet
Du måste ha en användartilldelad hanterad identitet som redan har konfigurerats och associerats med din söktjänst, och identiteten måste ha en rolltilldelning i Azure Storage.
Anslutningar som görs via användartilldelade hanterade identiteter använder samma autentiseringsuppgifter som en systemtilldelad hanterad identitet, plus en extra identitetsegenskap som innehåller samlingen med användartilldelade hanterade identiteter. Endast en användartilldelad hanterad identitet ska anges när datakällan skapas.
Ange en anslutningssträng som innehåller en ResourceId
, utan kontonyckel eller lösenord. ResourceId
Måste innehålla prenumerations-ID för lagringskontot, resursgruppen för lagringskontot och namnet på lagringskontot.
Ange en identity
syntax som visas i följande exempel. Ange userAssignedIdentity
till den användartilldelade hanterade identiteten.
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"
}
}
Anslutningsinformation och behörigheter för fjärrtjänsten verifieras vid körning under indexeringskörningen. Om indexeraren lyckas är anslutningssyntaxen och rolltilldelningarna giltiga. Mer information finns i Köra eller återställa indexerare, färdigheter eller dokument.
Åtkomst till nätverkssäkrade data i lagringskonton
Azure Storage-konton kan skyddas ytterligare med hjälp av brandväggar och virtuella nätverk. Om du vill indexeras innehåll från ett lagringskonto som skyddas med hjälp av en brandvägg eller ett virtuellt nätverk läser du Skapa indexerareanslutningar till Azure Storage som en betrodd tjänst.