Indexelőkapcsolat beállítása az Azure Storage-hoz felügyelt identitás használatával

Ez a cikk bemutatja, hogyan állíthat be indexelő kapcsolatot egy Azure Storage-fiókhoz felügyelt identitással a hitelesítő adatok megadása helyett a kapcsolati sztring.

Használhat rendszer által hozzárendelt felügyelt identitást vagy felhasználó által hozzárendelt felügyelt identitást (előzetes verzió). A felügyelt identitások Microsoft Entra-bejelentkezések, és Azure-szerepkör-hozzárendelések szükségesek az Azure Storage-adatok eléréséhez.

Feljegyzés

Ha a tároló hálózati védelem alatt áll, és ugyanabban a régióban van, mint a keresési szolgáltatás, a rendszer által hozzárendelt felügyelt identitást kell használnia, és a következő hálózati lehetőségek egyikét kell használnia: megbízható szolgáltatásként kell csatlakoznia, vagy az erőforráspéldány-szabály használatával kell csatlakoznia.

Előfeltételek

  • Felügyelt identitás létrehozása a keresési szolgáltatáshoz.

  • Szerepkör hozzárendelése az Azure Storage-ban:

    • A Blob Storage és az ADLS Gen2 adatolvasási hozzáféréséhez válassza a Storage Blob Data Reader lehetőséget.

    • Válassza az Olvasó és az Adatok lehetőséget az adatolvasási hozzáféréshez a Table Storage-ban és a Fájltárolóban.

  • Ismernie kell az indexelő fogalmait és konfigurációját.

Tipp.

A C#-ban példakódért lásd az Index Data Lake Gen2-t a Microsoft Entra ID használatával a GitHubon.

Az adatforrás létrehozása

Hozza létre az adatforrást, és adjon meg egy rendszer által hozzárendelt felügyelt identitást vagy egy felhasználó által hozzárendelt felügyelt identitást (előzetes verzió).

Rendszer által hozzárendelt felügyelt identitás

A REST API, az Azure Portal és a .NET SDK rendszer által hozzárendelt felügyelt identitással támogatott.

Ha rendszer által hozzárendelt felügyelt identitással csatlakozik, az adatforrás definíciójának egyetlen módosítása a hitelesítő adatok tulajdonság formátuma. Adjon meg egy resourceId azonosítót, amely nem rendelkezik fiókkulcs vagy jelszó nélkül. A ResourceId azonosítónak tartalmaznia kell a tárfiók előfizetési azonosítóját, a tárfiók erőforráscsoportját és a tárfiók nevét.

Íme egy példa arra, hogyan hozhat létre adatforrást egy tárfiók adatainak indexeléséhez az Adatforrás létrehozása REST API és egy felügyelt identitás kapcsolati sztring használatával. A felügyelt identitás kapcsolati sztring formátuma megegyezik a REST API, a .NET SDK és az Azure Portal esetében.

POST https://[service name].search.windows.net/datasources?api-version=2023-11-01
Content-Type: application/json
api-key: [admin key]

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.Storage/storageAccounts/[storage account name]/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    }
}   

Felhasználó által hozzárendelt felügyelt identitás (előzetes verzió)

A 2021-04-30 előzetes REST API a felhasználó által hozzárendelt felügyelt identitáson alapuló kapcsolatokat támogatja. Ha felhasználó által hozzárendelt felügyelt identitással csatlakozik, az adatforrás definíciójának két módosítása van:

  • Először is a "hitelesítő adatok" tulajdonság formátuma olyan ResourceId, amely nem rendelkezik fiókkulcsmal vagy jelszóval. A ResourceId azonosítónak tartalmaznia kell a tárfiók előfizetési azonosítóját, a tárfiók erőforráscsoportját és a tárfiók nevét. Ez a formátum megegyezik a rendszer által hozzárendelt felügyelt identitás formátumával.

  • Másodszor adjon hozzá egy "identity" tulajdonságot, amely tartalmazza a felhasználó által hozzárendelt felügyelt identitások gyűjteményét. Az adatforrás létrehozásakor csak egy felhasználó által hozzárendelt felügyelt identitást kell megadni. Állítsa be a következőt: "userAssignedIdentities".

Íme egy példa arra, hogyan hozhat létre indexelő adatforrás-objektumot az előzetes verziójú Adatforrás REST API-val:

POST https://[service name].search.windows.net/datasources?api-version=2021-04-30-preview
Content-Type: application/json
api-key: [admin key]

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.Storage/storageAccounts/[storage account name]/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    },
    "identity" : { 
        "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
        "userAssignedIdentity" : "/subscriptions/[subscription ID]/resourcegroups/[resource group name]/providers/Microsoft.ManagedIdentity/userAssignedIdentities/[managed identity name]" 
    }
}   

Az index létrehozása

Az index meghatározza a dokumentum mezőit, attribútumait és a keresési felületet formázó egyéb szerkezeteket.

Az index létrehozása REST API-hívás egy kereshető content mezővel a blobokból kinyert szöveg tárolására:

POST https://[service name].search.windows.net/indexes?api-version=2023-11-01
Content-Type: application/json
api-key: [admin key]

{
        "name" : "my-target-index",
        "fields": [
        { "name": "id", "type": "Edm.String", "key": true, "searchable": false },
        { "name": "content", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false }
        ]
}

Az indexelő létrehozása

Az indexelők egy adatforrást csatlakoztatnak egy célkeresési indexhez, és ütemezést biztosítanak az adatfrissítés automatizálásához. Az index és az adatforrás létrehozása után készen áll az indexelő létrehozására és futtatására. Ha az indexelő sikeres, a kapcsolat szintaxisa és a szerepkör-hozzárendelések érvényesek.

Íme egy Create Indexer REST API-hívás egy blobindexelő definíciójával. Az indexelő a kérés elküldésekor fut.

POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
Content-Type: application/json
api-key: [admin key]

{
    "name" : "blob-indexer",
    "dataSourceName" : "blob-datasource",
    "targetIndexName" : "my-target-index"
}

Hálózati védelem alatt lévő adatok elérése tárfiókokban

Az Azure Storage-fiókok tűzfalak és virtuális hálózatok használatával tovább védhetők. Ha tűzfallal vagy virtuális hálózattal védett tárfiókból szeretne tartalmat indexelni, olvassa el az Indexelők kapcsolatának létrehozása az Azure Storage-hoz megbízható szolgáltatásként című témakört.

Lásd még