共用方式為


使用受控識別從 Azure 串流分析作業存取 Azure Cosmos DB

Azure 串流分析支援 Azure Cosmos DB 輸出的受控識別驗證。 受控識別可消除以使用者為基礎驗證方法的限制,例如因密碼變更或使用者權杖到期 (每 90 天一次),而需要重新驗證。 當您移除手動驗證的需求時,您的串流分析部署可以完全自動化。 

受控識別是在 Microsoft Entra ID 中註冊的受控應用程式,代表了指定的串流分析作業。 受控應用程式用來向目標資源進行驗證。 如需 Azure 串流分析受控識別的詳細資訊,請參閱適用於 Azure 串流分析的受控識別

此文章說明如何透過 Azure 入口網站,為串流分析作業的 Azure Cosmos DB 輸出啟用系統指派的受控識別。 您必須先擁有串流分析作業和 Cosmos DB 資源,才能啟用系統指派的受控識別。

建立受控識別

首先,您會建立 Azure 串流分析作業的受控識別。 

  1. 在 Azure 入口網站中,開啟您的 Azure 串流分析作業。 

  2. 從左側導覽功能表中,選取位於 [設定] 之下的 [受控識別]。 然後,核取 [使用系統指派的受控識別] 旁的方塊,然後選取 [儲存]

    系統指派的受控識別

  3. Microsoft Entra ID 中已建立串流分析作業的識別服務主體。 Azure 會管理新建立的身分識別生命週期。 當串流分析作業刪除時,Azure 會自動刪除已與其建立關聯的身分識別 (亦即服務主體)。 

    當您儲存組態時,服務主體的物件識別碼 (OID) 會列為主體識別碼,如下所示:

    主體識別碼

    服務主體與串流分析作業的名稱相同。 例如,如果作業的名稱是 MyASAJob,則服務主體的名稱也會是 MyASAJob。 

授與串流分析作業權限以存取 Azure Cosmos DB 帳戶

若要讓串流分析作業使用受控識別來存取您的 Azure Cosmos DB,您建立的服務主體必須具有對您 Azure Cosmos DB 帳戶的特殊權限。 在此步驟中,您可以將角色指派給串流分析作業的系統指派受控識別。 Azure Cosmos DB 具有多個內建角色,可供您指派給受控識別。 針對此解決方案,您將使用下列角色:

內建角色
Cosmos DB 內建資料參與者

重要

Azure Cosmos DB 資料平面的內建角色型存取控制 (RBAC) 不會透過 Azure 入口網站公開。 若要指派 Cosmos DB 內建的資料參與者角色,您必須透過 Azure Powershell 授與權限。 如需使用 Microsoft Entra ID 針對 Azure Cosmos DB 帳戶設定角色型存取控制的詳細資訊,請參閱使用 Microsoft Entra ID 為您的 Azure Cosmos DB 帳戶設定角色型存取控制文件。

下列命令可用於使用 Azure Cosmos DB 驗證您的 ASA 作業。 $accountName$resourceGroupName 均適用於您的 Azure Cosmos DB 帳戶,而 $principalId 是您在 ASA 作業的 [身分識別] 索引標籤中,透過上一個步驟取得的值。 您必須擁有對 Azure Cosmos DB 帳戶的「參與者」存取權,此命令才能正常運作。

New-AzCosmosDBSqlRoleAssignment -AccountName $accountName -ResourceGroupName $resourceGroupName -RoleDefinitionId '00000000-0000-0000-0000-000000000002' -Scope "/" -PrincipalId $principalId

注意

由於全域複寫或快取延遲,在撤銷或授與權限時可能會有延遲。 變更應該會在 10 分鐘內反映。 即使測試連線一開始可以通過,但在權限完全傳播之前,啟動作業可能會失敗。

重要

如果 CosmosDB 帳戶未設定為接受來自所有網路的連線,您必須選取 [接受來自公用 Azure 資料中心內的連線]

將 Azure Cosmos DB 新增為輸出

既然已設定您的受控識別,您可以將 Azure Cosmos DB 資源當作輸出新增到您的串流分析作業。 

  1. 前往您的串流分析作業,然後瀏覽至 [作業拓撲] 下的 [輸出] 頁面。

  2. 選取 [新增] > [Azure Cosmos DB]。 在 [輸出屬性] 視窗中,搜尋並選取您的 Azure Cosmos DB 帳戶,然後從 [驗證模式] 下拉式功能表中選取 [受控識別: 系統指派]

  3. 填寫其餘的屬性,然後選取 [儲存]

下一步