使用受控身份來連接至 Azure 儲存體(Azure AI 搜尋)

註

Azure AI 搜尋服務 可透過 Azure 入口網站、REST API 及 Azure SDK 取得。 它同時也是 Foundry IQ 的基礎,這是一個管理式知識層,能將企業內容轉化為可重複使用、權限感知的知識庫,供 Microsoft Foundry 入口網站中的代理使用。

本文說明如何使用管理身份來設定與 Azure 儲存體 帳號的搜尋服務連線,而非在 連接字串 中提供憑證。

你可以使用系統指派的管理身份或使用者指派的管理身份。 管理身份是 Microsoft Entra 登入,並且需要角色分配才能存取 Azure 儲存體。

先決條件

註

如果儲存是網路保護且與你的搜尋服務位於同一區域,你必須使用系統指派的管理身份,並選擇以下其中之一的網路選項: 以受信任服務連接,或 使用資源實例規則連接。

在 Azure 存儲中建立角色指派

  1. 登入 Azure 入口網站並找到你的儲存帳號。

  2. 選擇存取控制(IAM)。

  3. 選擇 新增 ,然後選擇 角色指派。

  4. 從工作職能角色清單中,選擇您的搜尋服務所需的角色:

    任務 角色分配
    使用索引器的 blob 索引 新增 Storage Blob Data Reader
    使用索引子的 ADLS Gen2 編製索引 新增 Storage Blob Data Reader
    使用索引器的表格索引 新增 儲存表資料讀取器
    使用索引器的檔案索引 新增 閱讀器與資料存取功能
    寫信到 知識庫 新增 Storage Blob Data Contributor 用於物件與檔案投影,以及 Reader 和 Data Access 用於表格投影。
    寫入擴充快取(預覽版) 新增 儲存體 Blob 資料貢獻者 和 儲存體資料表貢獻者
    儲存 除錯會話狀態 新增 Storage Blob Data Contributor
  5. 選擇 下一步。

  6. 選擇 管理身份 ,然後選擇 成員。

  7. 依系統指派的受管身份或使用者指派的受管身份來篩選。 你應該會看到你之前為搜尋服務建立的管理身份。 如果你沒有,請參考 「設定搜尋以使用管理身份」。 如果您已經設定一個但無法使用,請稍候幾分鐘。

  8. 選擇身份並儲存角色分配。

在一個 連接字串 中指定一個受管理身份

一旦您有了角色指派,您就可以設定連接到以該角色運作的 Azure 儲存體。

索引器 使用資料來源物件來連接外部資料來源。 本節說明如何在資料來源 連接字串 上指定系統指派的管理身份或使用者指派的管理身份。 你可以在管理身份的文章中找到更多連接字串範例。

提示

你可以在 Azure 入口網站建立一個與 Azure 儲存體 的資料來源連線,指定系統或使用者指派的管理身份,然後查看 JSON 定義,了解 連接字串 是如何被表述的。

系統指派的管理識別

你必須已經設定好一個由系統指派的管理身份,並且在Azure 儲存體上有角色指派。

對於使用系統指派受控識別建立的連線,資料來源定義的唯一變更是 credentials 屬性的格式。

提供一個包含 ResourceId,且不含帳號金鑰或密碼的連接字串。 必須 ResourceId 包含儲存帳號的訂閱 ID、儲存帳號的資源群組,以及儲存帳號名稱。

POST https://[service name].search.windows.net/datasources?api-version=2026-04-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>" 
    }
}   

使用者指派的管理身份

你必須已經設定好一個由 user 指派的管理身份,並且與你的搜尋服務相關聯,且該身份必須在 Azure 儲存體 上有角色指派。

透過使用者指派的管理身份所建立的連線,使用與系統指派的管理身份相同的憑證,並加上一個包含使用者指派管理身份集合的額外身份屬性。 建立資料來源時,應只提供一個由使用者指派的管理身份。

提供一個包含 ResourceId,且不含帳號金鑰或密碼的連接字串。 必須 ResourceId 包含儲存帳號的訂閱 ID、儲存帳號的資源群組,以及儲存帳號名稱。

請提供 identity,並使用以下範例所示的語法。 設定 userAssignedIdentity 為使用者指派的管理身份。

POST https://[service name].search.windows.net/datasources?api-version=2026-04-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" 
    }
}   

遠端服務的連線資訊與權限會在索引器執行時執行時驗證。 若索引器成功,則連接語法與角色指派有效。 欲了解更多資訊,請參閱 「執行或重置索引器、技能或文件」。

存取儲存帳號中的網路安全資料

Azure 儲存帳號可透過防火牆和虛擬網路進一步加強防護。 如果你想從使用防火牆或虛擬網路保護的儲存帳號中索引內容,請參考 將索引器連線到 Azure 儲存體 作為可信服務。

參見