將客戶上線至 Azure Lighthouse

本文說明身為服務提供者的您如何將客戶上線至 Azure Lighthouse。 當您這樣做時,客戶 Microsoft Entra 租使用者中的委派資源(訂用帳戶和/或資源群組)可以透過 Azure 委派的資源管理 來管理租使用者中的使用者。

提示

雖然我們參考本主題中的服務提供者和客戶,但 管理多個租 使用者的企業可以使用相同的程式來設定 Azure Lighthouse 併合並其管理體驗。

您可以針對多個客戶重複上執行緒序。 當具有適當許可權的使用者登入您的管理租使用者時,該使用者有權跨客戶租用範圍執行管理作業,而不需要登入每個個別的客戶租使用者。

注意

當客戶購買您發佈至 Azure Marketplace 的受控服務供應專案(公開或私人)時, 客戶也可以加入 Azure Lighthouse。 您也可以搭配發佈至 Azure Marketplace 的供應專案,使用這裡所述的上執行緒序。

上架程式需要從服務提供者的租使用者和客戶的租使用者內採取動作。 本文將說明上述所有步驟。

收集租使用者和訂用帳戶詳細資料

若要將客戶的租使用者上線,其必須具有作用中的 Azure 訂用帳戶。 當您 手動 建立範本時,必須知道下列事項:

  • 服務提供者租用戶的租用戶識別碼 (您將在其中管理客戶的資源)。
  • 客戶租用戶的租用戶識別碼 (其中包含受服務提供者管理的資源)。
  • 客戶租用戶中將由服務提供者管理的每個特定訂用帳戶 (或所含資源群組將會由服務提供者管理的訂用帳戶),其訂用帳戶識別碼。

如果您不知道租用戶的識別碼,您可以使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 來擷取該識別碼

如果您在 Azure 入口網站 中建立範本,系統會自動提供您的租使用者識別碼。 您不需要知道客戶的租使用者或訂用帳戶詳細資料,即可在Azure 入口網站中建立範本。 不過,如果您打算將客戶租使用者中的一或多個資源群組上線(而不是整個訂用帳戶),則必須知道每個資源群組的名稱。

定義角色和許可權

身為服務提供者,您可能想要針對單一客戶執行多個工作,需要不同範圍的存取權。 您可以視需要定義任意數量的授權,以指派適當的 Azure 內建角色。 每個授權都包含 , principalId 其是指管理租使用者中的 Microsoft Entra 使用者、群組或服務主體。

注意

除非明確指定,否則 Azure Lighthouse 檔中「使用者」的參考可以套用至授權中的 Microsoft Entra 使用者、群組或服務主體。

若要在範本中定義授權,您必須在您要授與存取權的管理租使用者中包含每個使用者、使用者群組或服務主體的識別碼值。 您也必須包含您想要指派之每個 內建角色 的角色定義識別碼。 當您 在Azure 入口網站 中建立範本時,您可以選取使用者帳戶和角色,而且會自動新增這些識別碼值。 如果您要 手動 建立範本,您可以從 管理租使用者內使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 來擷取使用者識別碼。

提示

建議您在上線客戶時指派 受控服務註冊指派刪除角色 ,以便租使用者中的使用者在需要時 移除委派 的存取權。 如果未指派此角色,則委派的資源只能由客戶租使用者中的使用者移除。

盡可能使用 Microsoft Entra 使用者群組進行每個指派,而不是個別使用者。 這讓您可彈性地將擁有存取權的個別使用者新增至群組,或從群組移除,因此您無須重複上線程序就能進行使用者變更。 您也可以將角色指派給服務主體,這對於自動化案例很有用。

重要

若要新增 Microsoft Entra 群組的許可權, 必須將 [群組類型 ] 設定為 [安全性 ]。 建立群組時會選取此選項。 如需詳細資訊,請參閱 使用 Microsoft Entra ID 建立基本群組和新增成員。

當定義授權時,請務必遵循最少特殊權限準則,讓使用者只具備完成其工作所需的權限。 如需有關所支援角色及最佳做法的資訊,請參閱 Azure Lighthouse 中的租用戶、使用者和角色案例

提示

您也可以建立 合格的授權 ,讓使用者在管理租使用者中暫時提高其角色。 此功能具有特定的授權需求。 如需詳細資訊,請參閱 建立合格的授權

若要追蹤客戶參與和接收辨識的影響,請將您的 Microsoft Cloud Partner 計畫識別碼與至少一個可存取您上線訂用帳戶的使用者帳戶建立關聯。 您必須在服務提供者租用戶中執行此關聯。 建議您在租使用者中建立與您的合作夥伴識別碼相關聯的服務主體帳戶,然後在您每次將客戶上線時納入該服務主體。 如需詳細資訊,請參閱 連結合作夥伴識別碼

建立 Azure Resource Manager 範本

若要將客戶上線,您必須為供應專案建立 Azure Resource Manager 範本,並提供下列資訊。 mspOfferName一旦範本部署在客戶的租使用者中,客戶就會在 Azure 入口網站的 [服務提供者] 頁面中 看到 和 mspOfferDescription 值。

欄位 定義
mspOfferName 說明此定義的名稱。 此值會以供應項目標題的形式向客戶顯示,且該值必須是唯一的。
mspOfferDescription 供應項目的簡短描述 (例如「Contoso VM 管理供應項目」)。 此欄位是選擇性的,但建議您填入此欄位,讓客戶能清楚地了解您的供應項目。
managedByTenantId 您的租用戶識別碼。
authorizations principalId租使用者/群組/SPN 的值,每個值都有 principalIdDisplayName ,可協助您的客戶瞭解授權的目的,並對應至內 roleDefinitionId 建值以指定存取層級。

您可以在 Azure 入口網站中建立此範本,或手動修改範例存放庫中提供的範本。

重要

此處所述的程式需要針對每個訂用帳戶進行個別的部署,即使您在相同的客戶租使用者中將訂用帳戶上線也一樣。 如果您要將相同客戶租使用者中不同訂用帳戶內的多個資源群組上線,也需要個別的部署。 不過,在單一訂用帳戶內上線多個資源群組可以在一個部署中完成。

針對套用至相同訂用帳戶的多個供應專案,也需要個別的部署(或訂用帳戶內的資源群組)。 套用的每個供應專案都必須使用不同的 mspOfferName

在Azure 入口網站中建立範本

若要在Azure 入口網站中建立範本,請移至 [我的客戶 ],然後從 [概觀] 頁面中選取 [ 建立 ARM 範本 ]。

在 [ 建立 ARM 範本供應專案 ] 頁面上,提供您的 [名稱 ] 和選擇性 [描述 ]。 這些值將用於 mspOfferName 範本中的 和 mspOfferDescription ,而且客戶可能會看到這些值。 系統會 managedByTenantId 根據您登入的 Microsoft Entra 租使用者,自動提供此值。

接下來,根據您想要上架的客戶範圍,選取 [ 用帳戶] 或 [資源群組 ]。 如果您選取 [ 資源群組 ],則必須提供要上線的資源群組名稱。 您可以視需要選取 + 圖示,以在相同的訂用帳戶中新增其他資源群組。 (若要在不同的訂用帳戶中上架其他資源群組,您必須為該訂用帳戶建立和部署個別的範本。

最後,選取 [+ 新增授權] 來建立您的授權 。 針對每個授權,請提供下列詳細資料:

  1. 根據您想要包含在授權中的帳戶類型,選取 [主體類型 ]。 這可以是 使用者 群組 或服務 主體 。 在此範例中,我們將選擇 [ 使用者 ]。
  2. 選取 [ + 選取使用者 ] 連結以開啟選取窗格。 您可以使用搜尋欄位來尋找您想要新增的使用者。 完成後,請按一下 [ 選取 ]。 系統會自動填入使用者的 主體識別碼
  3. 檢閱 [ 顯示名稱] 欄位(根據您選取的使用者填入),並視需要進行變更。
  4. 選取要指派給此使用者的角色
  5. 針對 [ 存取 類型],選取 [永久 ] 或 [ 合格]。 如果您選擇 [合格 ],則必須指定持續時間上限、多重要素驗證,以及是否需要核准的選項。 如需這些選項的詳細資訊,請參閱 建立合格的授權 。 合格的授權功能無法與服務主體搭配使用。
  6. 選取 [ 新增 ] 以建立您的授權。

Screenshot of the Add authorization section in the Azure portal.

選取 [ 新增 ] 之後,您將返回 [ 建立 ARM 範本供應專案 ] 畫面。 您可以再次選取 [+ 新增授權 ],視需要新增盡可能多的授權。

新增所有授權後,請選取 [檢視範本 ]。 在此畫面上,您會看到對應至您所輸入值的 .json 檔案。 選取 [ 下載 ] 以儲存此 .json 檔案的複本。 然後,您可以在 客戶的租 使用者中部署此範本。 如果您需要進行任何變更,您也可以手動編輯它。

重要

產生的範本檔案不會儲存在Azure 入口網站中。 請務必先下載複本,再從 [顯示範本 ] 畫面流覽。

手動建立您的範本

您可以使用 Azure Resource Manager 範本建立範本(在我們的 範例存放庫中 提供),以及您修改以符合組態並定義授權的對應參數檔案。 如果您想要的話,您可以將所有資訊直接包含在範本中,而不是使用不同的參數檔案。

您選擇的範本取決於您是要將整個訂用帳戶、資源群組或訂用帳戶內的多個資源群組上線。 我們也會提供範本,讓您購買已發佈至 Azure Marketplace 的受控服務供應專案的客戶,如果您想要以這種方式將訂用帳戶上線。

若要將此程式上線 使用此 Azure Resource Manager 範本 並修改此參數檔案
訂用帳戶 subscription.json subscription.parameters.json
資源群組 rg.json rg.parameters.json
訂用帳戶內的多個資源群組 multi-rg.json multiple-rg.parameters.json
訂用帳戶 (使用發佈至 Azure Marketplace 的供應專案時) marketplaceDelegatedResourceManagement.json marketplaceDelegatedResourceManagement.parameters.json

如果您想要包含 合格的授權 ,請從範例存放庫 delegated-resource-management-eligible-authorizations 區段中選取對應的範本。

提示

雖然您無法在一個部署中將整個管理群組上線,但您可以部署原則以將 管理群組 中的每個訂用帳戶上線。 接著,您將能夠存取管理群組中的所有訂用帳戶,不過您必須以個別訂用帳戶的形式處理這些訂用帳戶(而不是直接對管理群組資源採取動作)。

下列範例示範可用來將訂用帳戶上線的已 修改 subscription.parameters.json 檔案。 資源群組參數檔案(位於 rg-delegated-resource-management 資料夾中)具有類似的格式,但也包含 rgName 用來識別要上線之特定資源群組的參數。

{
    "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "mspOfferName": {
            "value": "Fabrikam Managed Services - Interstellar"
        },
        "mspOfferDescription": {
            "value": "Fabrikam Managed Services - Interstellar"
        },
        "managedByTenantId": {
            "value": "00000000-0000-0000-0000-000000000000"
        },
        "authorizations": {
            "value": [
                {
                    "principalId": "00000000-0000-0000-0000-000000000000",
                    "principalIdDisplayName": "Tier 1 Support",
                    "roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c"
                },
                {
                    "principalId": "00000000-0000-0000-0000-000000000000",
                    "principalIdDisplayName": "Tier 1 Support",
                    "roleDefinitionId": "36243c78-bf99-498c-9df9-86d9f8d28608"
                },
                {
                    "principalId": "00000000-0000-0000-0000-000000000000",
                    "principalIdDisplayName": "Tier 2 Support",
                    "roleDefinitionId": "acdd72a7-3385-48ef-bd42-f606fba81ae7"
                },
                {
                    "principalId": "00000000-0000-0000-0000-000000000000",
                    "principalIdDisplayName": "Service Automation Account",
                    "roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c"
                },
                {
                    "principalId": "00000000-0000-0000-0000-000000000000",
                    "principalIdDisplayName": "Policy Automation Account",
                    "roleDefinitionId": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
                    "delegatedRoleDefinitionIds": [
                        "b24988ac-6180-42a0-ab88-20f7382dd24c",
                        "92aaf0da-9dab-42b6-94a3-d43ce8d16293"
                    ]
                }
            ]
        }
    }
}

上述範例中的最後一個授權會新增 principalId 具有 User Access 管理員istrator 角色的 (18d7d88d-d35e-4fb5-a5c3-7773c20a72d9)。 指派此角色時,您必須包含 delegatedRoleDefinitionIds 屬性和一或多個支援的 Azure 內建角色。 在此授權中建立的使用者將能夠將這些角色指派給 客戶租使用者中的受控識別 ,這是部署 可補救 的原則所需的。 使用者也可以建立支援事件。 通常不會套用與使用者存取管理員istrator 角色相關聯的其他許可權。 principalId

部署 Azure Resource Manager 範本

建立範本之後,客戶租使用者中的使用者必須在其租使用者內部署它。 您要上線的每個訂用帳戶 (或包含您要上線之資源群組的每個訂用帳戶) 都需要個別部署。

當您使用此處所述的程序讓訂用帳戶 (或訂用帳戶內的一或多個資源群組) 上線時,Microsoft.ManagedServices 資源提供者就會針對該訂用帳戶進行註冊。

重要

對於要上線的訂用帳戶,此部署必須由具有許可權之客戶租 Microsoft.Authorization/roleAssignments/write 使用者中的非來賓帳戶來完成,例如 擁有者 (或包含要上線的資源群組)。 若要尋找可以委派訂用帳戶的使用者,客戶租使用者中的使用者可以選取Azure 入口網站中的訂用帳戶、開啟 存取控制 (IAM) ,以及 檢視具有擁有者角色 的所有使用者。

如果訂用帳戶是透過 雲端解決方案提供者 (CSP) 程式 建立的,則任何在服務提供者租使用者中具有 管理員代理程式 角色的使用者都可以執行部署。

部署可以使用 PowerShell、使用 Azure CLI 或在Azure 入口網站中完成,如下所示。

使用 PowerShell 進行部署

若要部署單一範本:

# Log in first with Connect-AzAccount if you're not using Cloud Shell

# Deploy Azure Resource Manager template using template and parameter file locally
New-AzSubscriptionDeployment -Name <deploymentName> `
                 -Location <AzureRegion> `
                 -TemplateFile <pathToTemplateFile> `
                 -Verbose

# Deploy Azure Resource Manager template that is located externally
New-AzSubscriptionDeployment -Name <deploymentName> `
                 -Location <AzureRegion> `
                 -TemplateUri <templateUri> `
                 -Verbose

若要部署具有個別參數檔案的範本:

# Log in first with Connect-AzAccount if you're not using Cloud Shell

# Deploy Azure Resource Manager template using template and parameter file locally
New-AzSubscriptionDeployment -Name <deploymentName> `
                 -Location <AzureRegion> `
                 -TemplateFile <pathToTemplateFile> `
                 -TemplateParameterFile <pathToParameterFile> `
                 -Verbose

# Deploy Azure Resource Manager template that is located externally
New-AzSubscriptionDeployment -Name <deploymentName> `
                 -Location <AzureRegion> `
                 -TemplateUri <templateUri> `
                 -TemplateParameterUri <parameterUri> `
                 -Verbose

使用 Azure CLI 進行部署

若要部署單一範本:

# Log in first with az login if you're not using Cloud Shell

# Deploy Azure Resource Manager template using template and parameter file locally
az deployment sub create --name <deploymentName> \
                         --location <AzureRegion> \
                         --template-file <pathToTemplateFile> \
                         --verbose

# Deploy external Azure Resource Manager template, with local parameter file
az deployment sub create --name <deploymentName> \
                         --location <AzureRegion> \
                         --template-uri <templateUri> \
                         --verbose

若要部署具有個別參數檔案的範本:

# Log in first with az login if you're not using Cloud Shell

# Deploy Azure Resource Manager template using template and parameter file locally
az deployment sub create --name <deploymentName> \
                         --location <AzureRegion> \
                         --template-file <pathToTemplateFile> \
                         --parameters <parameters/parameterFile> \
                         --verbose

# Deploy external Azure Resource Manager template, with local parameter file
az deployment sub create --name <deploymentName> \
                         --location <AzureRegion> \
                         --template-uri <templateUri> \
                         --parameters <parameterFile> \
                         --verbose

在Azure 入口網站中部署

若要在Azure 入口網站中部署範本,請遵循下列程式。 這些步驟必須由客戶租使用者中具有 擁有者 角色的使用者完成(或具有 Microsoft.Authorization/roleAssignments/write 許可權的另一個角色)。

  1. 從Azure 入口網站中的 [服務提供者] 頁面,選取 [伺服器提供者供應專案 ]。

  2. 在畫面頂端附近,選取 [新增供應專案] 旁 的箭號,然後選取 [ 透過範本 新增]。

    Screenshot showing the Add via template option in the Azure portal.

  3. 藉由拖放範本來上傳範本,或選取 [ 流覽 檔案] 以尋找並上傳範本。

  4. 如果適用,請選取 [ 我有個別的參數檔案 ] 方塊,然後上傳您的參數檔案。

  5. 上傳範本之後,請選取 [ 上傳 ]。

  6. 在 [ 自訂部署] 畫面中,檢閱顯示的詳細資料。 如有需要,您可以在此畫面中變更這些值,或選取 [編輯參數 ]。

  7. 選取 [檢閱並建立],然後選取 [建立]

幾分鐘後,您應該會看到部署已完成的通知。

提示

或者,從我們的 GitHub 存放庫 ,選取您想要使用的範本旁顯示的 [ 部署至 Azure ] 按鈕(在 [自動部署 ] 資料行中 )。 範例範本會在Azure 入口網站中開啟。 如果您使用此程式,您必須先更新 Msp 供應專案名稱 、Msp 供應專案描述 租使用者識別碼 管理及 授權 的值 ,然後選取 [ 檢閱並建立 ]。

確認成功上線

當客戶訂用帳戶成功上線至 Azure Lighthouse 時,服務提供者租使用者中的使用者將能夠查看訂用帳戶及其資源(如果他們已透過上述程式獲得存取權,個別或作為具有適當許可權的 Microsoft Entra 群組成員)。 若要確認,請檢查並確定訂用帳戶以下列其中一種方式出現。

確認Azure 入口網站

在服務提供者的租使用者中:

  1. 流覽至 [我的客戶] 頁面
  2. 選取 [客戶]
  3. 確認您可以使用您在 Resource Manager 範本中提供的供應專案名稱來查看訂用帳戶。

重要

若要查看 「我的客戶」中的 委派訂用帳戶,服務提供者租使用者中的使用者必須在訂用帳戶上線時獲 授與讀者 角色(或包含讀者存取權的另一個內建 角色)。

在客戶的租使用者中:

  1. 流覽至 [服務提供者] 頁面
  2. 選取 [服務提供者供應項目]
  3. 確認您可以使用您在 Resource Manager 範本中提供的供應專案名稱來查看訂用帳戶。

注意

部署完成之後最多可能需要 15 分鐘的時間,更新才會反映在Azure 入口網站中。 如果您藉由重新整理瀏覽器、登入和登出或要求新的權杖,更新 Azure Resource Manager 權杖,您可能會更快看到更新。

使用 PowerShell 進行確認

# Log in first with Connect-AzAccount if you're not using Cloud Shell

Get-AzContext

# Confirm successful onboarding for Azure Lighthouse

Get-AzManagedServicesDefinition
Get-AzManagedServicesAssignment

使用 Azure CLI 進行確認

# Log in first with az login if you're not using Cloud Shell

az account list

# Confirm successful onboarding for Azure Lighthouse

az managedservices definition list
az managedservices assignment list

如果您需要在客戶上線之後進行變更,您可以 更新委派 。 您也可以 完全移除委派 的存取權。

疑難排解

如果您無法成功將客戶上線,或您的使用者無法存取委派的資源,請檢查下列秘訣和需求,然後再試一次。

  • 在上架程式期間,需要檢視Azure 入口網站客戶資源的使用者必須獲授與 讀者 角色(或包含讀者存取權的另一個內建角色)。
  • managedbyTenantId 不得與要上線之訂用帳戶的租使用者識別碼相同。
  • 您無法在同一個範圍中使用相同的 指派。 mspOfferName
  • Microsoft.ManagedServices 資源提供者必須註冊委派的訂用帳戶。 這應該會在部署期間自動發生,但若非如此,您可以 手動 註冊。
  • 授權不得包含擁有 角色的任何使用者、具有 DataActions 的任何角色,或包含 受限制動作 的任何角色。
  • 群組必須建立, 並將 [群組類型 ] 設定為 [安全性 ],而不是 [Microsoft 365 ]。
  • 如果已將存取權授與群組,請檢查確認使用者為群組成員。 如果不是,您可以使用 Microsoft Entra ID 將其新增至群組,而不需要執行另一個部署。 請注意, 群組擁有者 不一定是他們管理的群組成員,而且可能需要新增才能存取。
  • 針對巢狀群組 啟用 存取之前,可能會有額外的延遲。
  • 您包含在授權中的 Azure 內建角色 不得包含任何已被取代的角色。 如果 Azure 內建角色已被取代,使用該角色上線的所有使用者都將失去存取權,且您無法將其他委派上線。 若要修正此問題,請更新您的範本為只使用支援的內建角色,然後執行新的部署。

下一步