使用應用程式註冊跨 Azure 租用戶共用資源庫 VM 映像
使用 Azure Compute Gallery,您可以使用應用程式註冊,將映像共用至另一個組織。 如需其他共用選項的詳細資訊,請參閱共用資源庫。
但是,如果您想要在 Azure 租用戶外部大規模地共用映像,應建立應用程式註冊。 使用應用程式註冊可實現更複雜的共用案例,例如:
- 當某家公司收購另一家公司時管理共用映像,Azure 基礎結構會散佈到不同的租用戶。
- Azure 合作夥伴代表其客戶管理 Azure 基礎結構。 映像的自訂是在合作夥伴租用戶內進行,但是基礎結構部署將會在客戶的租用戶中進行。
建立應用程式註冊
建立兩個租用戶用來共用映像庫資源的應用程式註冊。
- 開啟 [Azure 入口網站中的應用程式註冊]。
- 從頁面頂端的功能表中選取 [新增註冊]。
- 在 [名稱] 中,輸入 myGalleryApp。
- 在 [支援的帳戶類型],選取 [任何組織目錄中的帳戶 (任何 Microsoft Entra 目錄 - 多租用戶) 和個人 Microsoft 帳戶 (例如 Skype、Xbox)]。
- 在 [重新導向 URI] 中,從 [選取平台] 下拉式清單中選取 [Web],然後輸入 https://www.microsoft.com,然後選取 [註冊]。 建立應用程式註冊之後,將會開啟 [概觀] 頁面。
- 在 [概觀] 頁面上,複製 [應用程式 (用戶端) 識別碼] 並且儲存以供稍後使用。
- 選取憑證和密碼,然後選取新增用戶端密碼。
- 在 [描述] 中,輸入資源庫跨租用戶應用程式密碼。
- 在 [到期日] 中,從預設的 [6 個月 (建議)] 變更為 [12 個月],然後選取 [新增]。
- 複製祕密的值,並將其儲存到安全的位置。 離開頁面之後,您就無法擷取。
授與應用程式註冊權限,以使用資源庫。
- 在 Azure 入口網站中,選取您要與另一個租用戶共用的 Azure Compute Gallery。
- 選取 [選取存取控制 (IAM)],然後在 [新增角色指派] 底下選取 [新增]。
- 在 [角色] 下,選取 [讀者]。
- 在 [存取權指派對象為:] 底下,保留 [Microsoft Entra 使用者、群組或服務主體]。
- 在 [選取成員] 底下,輸入 myGalleryApp,然後在清單中顯示時加以選取。 當您完成時,選取 [檢閱 + 指派]。
將存取權授與租用戶 2
要求使用瀏覽器登入,將應用程式的存取權授與租用戶 2。 將 <Tenant2 識別碼>取代為您要共用映像資源庫之租用戶的租用戶識別碼。 使用者可以使用 Azure CLI 命令 az account show
來查看其租用戶識別碼。
將<應用程式 (用戶端) 識別碼>取代為您所建立應用程式註冊的應用程式識別碼。 完成取代之後,請將 URL 貼到瀏覽器中,並遵循登入提示以登入租用戶 2。
https://login.microsoftonline.com/<Tenant 2 ID>/oauth2/authorize?client_id=<Application (client) ID>&response_type=code&redirect_uri=https%3A%2F%2Fwww.microsoft.com%2F
在 Azure 入口網站中以租用戶 2 的身分登入,並將應用程式註冊存取權授與您要在其中建立 VM 的資源群組。
- 選取資源群組,然後選取 [存取控制 (IAM)]。 在 [新增角色指派] 底下,選取 [新增]。
- 在 [角色] 下,輸入參與者。
- 在 [存取權指派對象為:] 底下,保留 [Microsoft Entra 使用者、群組或服務主體]。
- 在 [選取] 底下,輸入 myGalleryApp,然後在清單中顯示時加以選取。 當您完成時,選取 [檢閱 + 指派]。
注意
您必須等候映像版本完全完成建立和複寫後,才能使用相同的受控映像來建立另一個映像版本。
重要
您無法使用入口網站從另一個 Azure 租用戶中的映像部署 VM。 若要從租用戶之間共用的映像建立 VM,您必須使用 Azure CLI 或 PowerShell。
建立 VM
在使用應用程式註冊從共用給您的映像建立 VM 之前,您需要滿足以下條件:
- 來源訂用帳戶和您要在其中建立 VM 的訂用帳戶的租用戶識別碼。
- 應用程式註冊的用戶端識別碼和密碼。
- 您想要使用的映像的映像識別碼。
使用 appID、應用程式金鑰和租用戶 1 的識別碼,登入租用戶 1 的服務主體。 您可以視需要使用 az account show --query "tenantId"
來取得租用戶識別碼。
在此範例中,我們會示範如何從一般化映像建立 VM。 如果您想要使用特製化映像,請參閱使用特製化映像版本建立 VM。
tenant1='<ID for tenant 1>'
tenant2='<ID for tenant 2>'
appid='<client ID of the app registration>'
secret='<secret from the app registration>'
az account clear
az login --service-principal -u $appid -p $secret --tenant $tenant1
az account get-access-token
使用 appID、應用程式金鑰和租用戶 2 的識別碼,登入租用戶 2 的服務主體:
az login --service-principal -u $appid -p $secret --tenant $tenant2
az account get-access-token
建立 VM。 以您自己的資訊取代範例中的資訊。
imageid="<ID of the image that you want to use>"
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image $imageid \
--admin-username azureuser \
--generate-ssh-keys