將 Azure 的受控識別與 Azure Data Lake Storage 搭配使用
Azure Data Lake Storage 提供分層式安全性模型。 此模型可讓您根據所用網路或資源的類型與子集,保護並控制應用程式及企業環境所需儲存體帳戶的存取層級。 設定網路規則時,只有透過指定的一組網路或透過指定的一組 Azure 資源要求資料的應用程式才能存取儲存體帳戶。 您可以將對儲存體帳戶的存取限制在源自指定 IP 位址、IP 範圍、Azure 虛擬網路 (VNet) 之子網路,或某些 Azure 服務之資源執行個體的要求。
Azure 的託管身份 (以前稱為託管服務身份 (MSI)) 有助於管理機密。 使用 Azure 功能的 Microsoft Dataverse 使用者會建立可用於一個或多個 Dataverse 環境的受控識別 (屬於企業原則建立的一部分)。 此受控識別會佈建在您的租用戶中,然後由 Dataverse 用於存取您的 Azure 資料湖。
有了受控識別,對儲存體帳戶的存取就會僅限於源自與您租用戶相關聯之 Dataverse 環境的要求。 Dataverse 代表您連接至儲存體時,會提供其他內容資訊,以證明要求源自安全、受信任的環境。 這可讓儲存體將 Dataverse 存取權授與您的儲存體帳戶。 受控識別會用來簽署內容資訊,以便建立信任。 這在 Azure 為 Azure 服務間連接提供的網路及基礎架構安全性之外,又增加了應用程式層級安全性。
在開始之前
- 本機電腦上需要 Azure CLI。 下載並安裝
- 您需要這兩個 PowerShell 模組。 如果沒有它們,請打開 PowerShell 並運行以下命令:
- Azure Az PowerShell 模組:
Install-Module -Name Az
- Azure Az.Resources PowerShell 模組:
Install-Module -Name Az.Resources
- Power Platform 管理員 PowerShell 模組:
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
- Azure Az PowerShell 模組:
- 轉到 GitHub 上的此 壓縮資料夾檔。 然後選擇下載 下載它。 將壓縮資料夾檔案解壓縮至電腦中可以執行 PowerShell 命令的位置。 從壓縮資料夾中提取的所有文件和資料夾都應保留在其原始位置。
- 建議您在相同的 Azure 資源群組下建立新的儲存容器以上線此功能。
啟用所選 Azure 訂閱的企業原則
重要
您必須具有 Azure 訂閱擁有者 角色訪問許可權才能完成此工作。 從 Azure 資源組的概述頁獲取 Azure 訂閱 ID 。
- 使用 run as 系統管理員打開 Azure CLI,然後使用命令登錄您的 Azure 訂閱:
az login
更多資訊: 使用 Azure CLI 登錄 - (可選)如果您有多個 Azure 訂閱,請確保運行
Update-AzConfig -DefaultSubscriptionForLogin { Azure subscription id }
以更新您的預設訂閱。 - 將您作為 Before you start for this feature(開始之前此功能) 的一部分下載的壓縮資料夾展開到可以運行 PowerShell 的位置。
- 要為所選 Azure 訂閱啟用企業策略,請運行 PowerShell 腳本 ./SetupSubscriptionForPowerPlatform.ps1。
- 提供 Azure 訂閱識別碼。
建立企業原則
重要
您必須具有 Azure 資源組 Owner 角色訪問許可權才能完成此工作。 從 Azure 資源組的概述頁獲取 Azure 訂閱 ID 、位置和 資源組 名稱。
建立企業原則。 運行 PowerShell 腳本
./CreateIdentityEnterprisePolicy.ps1
- 提供 Azure 訂閱識別碼。
- 提供 Azure 資源群組名稱。
- 提供慣用企業原則名稱。
- 提供 Azure 資源群組位置。
創建策略後保存 ResourceId 的副本 。
注意
以下是策略創建支援的有效 位置 輸入。 選取最適合您的位置。
企業原則可用的位置
美國 EUAP
美國
南非
英國
澳洲
南韓
日本
印度
法國
歐洲
亞洲
挪威
德國
瑞士
加拿大
巴西
UAE
新加坡
授與讀者透過 Azure 存取企業原則的權限
Dynamics 365 管理員和 Power Platform 管理員可以訪問系統管理中心 Power Platform 以將環境分配給企業策略。 若要訪問企業策略,需要 Azure Key Vault 管理員成員身份才能向 Dynamics 365 或 admin 授予 讀者角色 。 Power Platform 授予讀者角色後,Dynamics 365 或 Power Platform 管理員將在系統管理中心 Power Platform 上看到企業策略。
只有已獲授與企業原則讀者角色的 Dynamics 365 和 Power Platform 管理員才能「新增環境」至原則。 其他 Dynamics 365 和 PowerPlatform 管理員或許可以檢視企業原則,但是會在嘗試將環境新增至原則時收到錯誤訊息。
重要
您必須具有 - Microsoft.Authorization/roleAssignments/write
許可權,例如 User Access 系統管理員 或 Owner )才能完成此工作。
- 登入 Azure 入口網站。
- 獲取 Dynamics 365 Power Platform 管理員使用者的 ObjectID。
- 轉到 Users(用戶) 區域。
- 開啟 Dynamics 365 或 Power Platform 管理使用者。
- 在使用者的概述頁面下,複製 ObjectID。
- 獲取企業策略 ID:
- 轉到 Azure Resource Graph 瀏覽器。
- 執行以下查詢:
resources | where type == 'microsoft.powerplatform/enterprisepolicies'
- 滾動到結果頁面的右側,然後選擇 See details(查看詳細資訊 連結 。
- 在 Details(詳細資訊 ) 頁面上,複製 ID。
- 打開 Azure CLI 並運行以下命令,將替換為
<objId>
使用者的 ObjectID 和企業<EP Resource Id>
策略 ID。New-AzRoleAssignment -ObjectId <objId> -RoleDefinitionName Reader -Scope <EP Resource Id>
將企業原則連接至 Dataverse 環境
重要
您必須具有系統管理員 Power Platform or Dynamics 365 系統管理員 角色才能完成此工作。 您必須具有 讀者 企業策略的角色才能完成此工作。
- 取得 Dataverse 環境識別碼。
- 登錄系統管理中心 Power Platform 。
- 選擇 環境,然後打開您的環境。
- 在 Details(詳細資訊) 部分中,複製 環境 ID 。
- 要連結環境 Dataverse ,請運行以下 PowerShell 腳本:
./NewIdentity.ps1
- 提供 Dataverse 環境識別碼。
- 提供 ResourceId。
StatusCode = 202 表示已成功創建連結。
- 登錄系統管理中心 Power Platform 。
- 選擇 Environments (環境),然後打開您之前指定的環境。
- 在 Recent operations(最近的操作 ) 區域中,選擇 Full history ( 完整歷史記錄 ) 以驗證新身份的連接。
設定對 Azure Data Lake Storage Gen2 的網路存取
重要
您必須具有 Azure Data Lake Storage Gen2 擁有者 角色才能完成此工作。
前往 Azure 入口網站。
開啟已連接至 Azure Synapse Link for Dataverse 設定檔的儲存體帳戶。
在左側導航窗格中,選擇 Networking ( 網路)。 然後,在 Firewalls and virtual networks(防火牆和虛擬網路 ) 選項卡上,選擇以下設置:
- 從選定的虛擬網路和 IP 位址啟用。
- 在 Resource instances (資源實例 ) 下,選擇 允許 Azure 受信任服務列表中的服務訪問此儲存帳戶
選取儲存。
設定對 Azure Synapse workspace 的網路存取
重要
您必須具有 Azure Synapse 系統管理員 角色才能完成此工作。
- 前往 Azure 入口網站。
- 開啟已連接至 Azure Synapse Link for Dataverse 設定檔的 Azure Synapse workspace。
- 在左側導航窗格中,選擇 Networking ( 網路)。
- 選擇 Allow Azure services and resources to access this workspace (允許 # 服務和資源訪問此工作區)。
- 如果為所有 IP 範圍創建了 IP 防火牆規則,請刪除這些規則 以限制公網訪問。
- 根據用戶端 IP 位址添加新的 IP 防火牆規則 。
- 選擇 Save when 完成。 詳細資訊: Azure Synapse Analytics IP 防火牆規則
使用受控識別建立新的 Azure Synapse Link for Dataverse
重要
Dataverse:您必須具備 Dataverse 系統管理員資訊安全角色。 此外,您要透過 Azure Synapse Link 匯出的表格必須已啟用追蹤變更屬性。 其他資訊:進階選項
Azure Data Lake Storage Gen2:您必須擁有 Azure Data Lake Storage Gen2 帳戶和 擁有者和 Storage Blob 資料參與者角色存取權。 您的儲存體帳戶必須啟用初始安裝和增量同步的階層命名空間。只有初始安裝需要允許儲存體帳戶金鑰存取。
Synapse 工作區:您必須有 Synapse 工作區,以及 Synapse Studio 中的 Synapse 系統管理員角色存取權。 Synapse 工作區必須與您的 Azure Data Lake Storage Gen2 帳戶位於相同的區域。 在 Synapse Studio 中,必須將儲存帳戶新增為連結的服務。 若要建立 Synapse 工作區,請移至建立 Synapse 工作區。
建立連結時,Azure Synapse Link for Dataverse 會在 Dataverse 環境下取得關於目前已連結企業原則的詳細資料,然後快取身分識別用戶端密碼 URL 以連接至 Azure。
- 登錄 Power Apps 並選擇您的環境。
- 在左側導航窗格中,選擇 Azure Synapse Link,然後選擇 + 新建連結。 如果此項目不在側邊面板窗格中,請選取 ...其他 ,然後選取您想要的項目。
- 根據預期的設置填寫相應的欄位。 選取訂閱,資源群組,和儲存體帳戶。 若要連線 Dataverse 到 Synapse 工作區, 請選擇連線到工作區 Azure Synapse 選項。 對於 Delta Lake 資料轉換,請選擇 Spark 池。
- 選擇 選擇具有託管服務身份的企業策略,然後選擇 下一步。
- 新增想要匯出的資料表,然後選取儲存。
為現有 Azure Synapse Link 設定檔啟用受控識別
注意
要使 Use managed identity 命令可用 Power Apps,您需要完成上述設置以將企業策略連線到您的 Dataverse 環境。 詳細資訊: 連線企業策略環境 Dataverse
- 從 Power Apps (make.powerapps.com) 移至現有的 Synapse Link 設定檔。
- 選擇 “使用託管標識”,然後確認。
疑難排解
如果建立連結時收到 403 錯誤:
- 受控識別需要額外的時間,在初始同步期間授與暫時性權限。等候些許時間,稍後再試一次。
- 確保鏈接存儲沒有來自同一環境的現有 Dataverse 容器 (dataverse-environmentName-organizationUniqueName)。
- 您可以識別連結的企業策略,並通過
policyArmId
運行帶有 Azure 訂閱 ID./GetIdentityEnterprisePolicyforEnvironment.ps1
和 資源組 名稱的 PowerShell 腳本 來識別。 - 您可以透過執行具有 ID 和
./RevertIdentity.ps1
的 PowerShell 文稿 Dataverse 來取消企業策略環境policyArmId
和。 - 您可以通過運行 PowerShell 腳本 來刪除企業策略。\RemoveIdentityEnterprisePolicy.ps1 和 policyArmId。
已知的限制
只有一個企業原則可以同時連接到 Dataverse 環境。 如果您需要建立多個啟用了受控識別的 Azure Synapse Link 連結,請確認所有連結的 Azure 資源都位於同一資源群組下。