將 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
    • Power Platform 管理員 PowerShell 模組:Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
  • 前往這個在 GitHub 上的壓縮資料夾檔案。 然後選取下載以下載該檔案。 將壓縮資料夾檔案解壓縮至電腦中可以執行 PowerShell 命令的位置。 所有從壓縮資料夾解壓縮的檔案和資料夾,都應該保留在其原始位置
  • 建議您在相同的 Azure 資源群組下建立新的儲存容器以上線此功能。

啟用所選 Azure 訂閱的企業原則

重要

您必須具備 Azure 訂閱擁有者角色的存取權,才能完成這項工作。 從 Azure 資源群組的概覽頁面取得您的 Azure 訂閱識別碼

  1. 以系統管理員身分執行的方式開啟 Azure CLI,並使用下列命令登入您的 Azure 訂閱:az login 其他資訊:使用 Azure CLI 登入
  2. (選用) 如果您有多個 Azure 訂閱,請務必執行 Update-AzConfig -DefaultSubscriptionForLogin { Azure subscription id } 以更新預設訂閱。
  3. 作為此功能開始使用之前的一部分,請將您下載的的壓縮資料夾展開至您可以執行 PowerShell 的位置。
  4. 若要為選取的 Azure 訂閱啟用企業原則,請執行 PowerShell 指令碼 ./SetupSubscriptionForPowerPlatform.ps1
    • 提供 Azure 訂閱識別碼。

建立企業原則

重要

您必須具備 Azure 資源群組擁有者角色的存取權,才能完成這項工作。 從 Azure 資源群組的概觀頁面取得訂閱識別碼位置資源群組名稱。

  1. 建立企業原則。 執行 PowerShell 指令碼 ./CreateIdentityEnterprisePolicy.ps1

    • 提供 Azure 訂閱識別碼。
    • 提供 Azure 資源群組名稱。
    • 提供慣用企業原則名稱。
    • 提供 Azure 資源群組位置。
  2. 建立原則後,儲存 ResourceId 的複本。

注意

下列是原則建立作業所支援的有效位置輸入。 選取最適合您的位置。

企業原則可用的位置

美國 EUAP

美國

南非

英國

澳洲

南韓

日本

印度

法國

歐洲

亞洲

挪威

德國

瑞士

加拿大

巴西

UAE

新加坡

授與讀者透過 Azure 存取企業原則的權限

Azure 全域管理員、Dynamics 365 管理員和 Power Platform 管理可以存取 Power Platform 系統管理中心,以將環境指派給企業原則。 若要存取企業原則,必須有全域或 Azure Key Vault 管理員將讀者角色授與 Dynamics 365 或 Power Platform 管理員。授與讀者角色後,Dynamics 365 或 Power Platform 管理員就會在 Power Platform 系統管理中心看到企業原則。

只有已獲授與企業原則讀者角色的 Dynamics 365 和 Power Platform 管理員才能「新增環境」至原則。 其他 Dynamics 365 和 PowerPlatform 管理員或許可以檢視企業原則,但是會在嘗試將環境新增至原則時收到錯誤訊息。

重要

您必須具備 Microsoft.Authorization/roleAssignments/write 權限,例如使用者存取系統管理員負責人,才能完成此工作。

  1. 登入 Azure 入口網站
  2. 取得 Dynamics 365 Power Platform 管理使用者的 ObjectID
    1. 移至使用者區域。
    2. 開啟 Dynamics 365 或 Power Platform 管理使用者。
    3. 在使用者的概觀頁面下,複製 ObjectID
  3. 取得企業原則識別碼:
    1. 移至 Azure Resource Graph Explorer
    2. 執行此查詢:resources | where type == 'microsoft.powerplatform/enterprisepolicies' 從 Azure Resource Graph Explorer 執行查詢
    3. 捲動至結果頁面右側,並選取查看詳細資料連結。
    4. 詳細資料頁面上,複製識別碼。
  4. 開啟 Azure CLI 並執行下列命令,將 <objId> 取代為使用者的 ObjectID,以及將 <EP Resource Id> 取代為企業原則識別碼。
    • New-AzRoleAssignment -ObjectId <objId> -RoleDefinitionName Reader -Scope <EP Resource Id>

將企業原則連接至 Dataverse 環境

重要

您必須具備 Power Platform 系統管理員,或 Dynamics 365 管理員角色,才能完成此工作。 您必須具備企業原則的讀取者角色,才能完成這項工作。

  1. 取得 Dataverse 環境識別碼。
    1. 登入 Power Platform 系統管理中心
    2. 選取環境,然後開啟您的環境。
    3. 詳細資料區段中,複製環境識別碼
    4. 若要連結至 Dataverse 環境,請執行此 PowerShell 指令碼:./NewIdentity.ps1
    5. 提供 Dataverse 環境識別碼。
    6. 提供 ResourceId
      StatusCode = 202 表示已成功建立連結。
  2. 登入 Power Platform 系統管理中心
  3. 選擇環境,然後開啟您先前指定的環境。
  4. 最近的作業區域中,選取完整歷程記錄以驗證新身分識別的連接。

設定對 Azure Data Lake Storage Gen2 的網路存取

重要

您必須具備 Azure Data Lake Storage Gen2 負責人角色,才能完成此工作。

  1. 前往 Azure 入口網站

  2. 開啟已連接至 Azure Synapse Link for Dataverse 設定檔的儲存體帳戶。

  3. 在左側瀏覽窗格中,選取網路。 然後在防火牆和虛擬網路索引標籤上,選取下列設定:

    1. 從選取的虛擬網路和 IP 位址中啟用
    2. 資源執行個體底下,選取允許受信任服務清單中的 Azure 服務存取此儲存體帳戶
  4. 選取儲存

設定對 Azure Synapse workspace 的網路存取

重要

您必須具備 Azure Synapse 系統管理員角色,才能完成此工作。

  1. 前往 Azure 入口網站
  2. 開啟已連接至 Azure Synapse Link for Dataverse 設定檔的 Azure Synapse workspace。
  3. 在左側瀏覽窗格中,選取網路
  4. 選取允許 Azure 服務和資源來存取此工作區
  5. 如果有為所有 IP 範圍建立的 IP 防火牆規則,請將它們刪除以限制公用網路存取。 Azure Synapse workspace 網路設定
  6. 新增根據用戶端 IP 位址的新 IP 防火牆規則
  7. 完成時,請選取儲存。 其他資訊:Azure Synapse Analytics IP 防火牆規則

重要

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。

  1. 登入 Power Apps 並選取環境。
  2. 在左側瀏覽窗格中,選取Azure Synapse Link,然後選取 + 新增連結。 如果此項目不在側邊面板窗格中,請選取 ...其他 ,然後選取您想要的項目。
  3. 選擇選取具有受管理的服務識別的企業原則,然後選取下一步
  4. 新增想要匯出的資料表,然後選取儲存

注意

若要讓使用受控識別指令可在 Power Apps 中使用,您需要完成上述設定以將企業原則連接到您的 Dataverse 環境。 其他資訊:將企業原則連接到 Dataverse 環境

  1. 從 Power Apps (make.powerapps.com) 移至現有的 Synapse Link 設定檔。
  2. 選取使用受控識別,然後確認。 在 Power Apps 中使用受控識別證指令

疑難排解​​

如果建立連結時收到 403 錯誤:

  • 受控識別需要額外的時間,在初始同步期間授與暫時性權限。等候些許時間,稍後再試一次。
  • 確定連結的儲存體沒有來自同一個環境的現有 Dataverse 容器 (dataverse-environmentName-organizationUniqueName)。
  • 您可以使用 Azure 訂閱識別碼資源群組名稱執行 PowerShell 指令碼 ./GetIdentityEnterprisePolicyforEnvironment.ps1,找出連結的企業原則和 policyArmId
  • 您可以使用 Dataverse 環境識別碼和 policyArmId 執行 PowerShell 指令碼 ./RevertIdentity.ps1,取消連結企業原則。
  • 您可以執行PowerShell 指令碼使用 policyArmId 的 \RemoveIdentityEnterprisePolicy.ps1 來移除企業原則。

另請參閱

什麼是 Azure Synapse Link for Dataverse?