使用 Azure 计算画廊,您可以通过应用注册与其他组织共享虚拟机(VM)映像。 有关其他共享选项的信息,请参阅 使用 RBAC 跨订阅和租户共享画廊资源。
但是,如果要在 Azure 租户外部大规模共享映像,则应创建应用注册。 使用应用注册可以启用更复杂的共享方案,例如:
- 当一家公司收购另一家公司时管理共享映像,而 Azure 基础结构分布在单独的租户中。
- Azure 合作伙伴代表客户管理 Azure 基础结构。 自定义映像是在合作伙伴租户中完成的,但基础设施部署将在客户的租户中进行。
创建应用注册
创建将用于两个租户共享图片库资源的应用程序注册。
- 在 Azure 门户中打开应用注册。
- 从页面顶部的菜单中选择 “新建注册 ”。
- 在 “名称”中,键入 myGalleryApp。
- 在支持的帐户类型中,选择任何组织目录中的帐户(任何Microsoft Entra 目录 - 多租户)和个人Microsoft帐户(例如 Skype、Xbox)。
- 在重定向 URI 中,从“选择平台”下拉列表中选择“Web”,然后键入https://www.microsoft.com“注册”。 创建应用注册后,概述页将打开。
- 在概述页上,复制 应用程序(客户端)ID 并保存以供以后使用。
- 选择证书和机密,然后选择新建客户端密码。
- 在 “说明”中,键入 画廊跨租户应用密钥。
- 在 “过期”中,从默认值 6 个月(建议) 更改为 12 个月 ,然后选择“ 添加”。
- 复制机密值并将其保存在安全位置。 离开页面后,无法检索它。
授予应用注册权限以使用相册。
- 在 Azure 门户中,选择要与其他租户共享的 Azure 计算库。
- 选择“访问控制”(IAM),然后在“添加角色分配”下选择“添加”。
- 在“角色”下,选择“读者”。
- 在 “分配访问权限:”下,将此项保留 为Microsoft Entra 用户、组或服务主体。
- 在 “选择成员”下,键入 myGalleryApp ,并在列表中显示时将其选中。 完成后,选择“ 审阅 + 分配”。
授予租户 2 访问权限
通过请求使用浏览器登录向应用程序授予租户 2 访问权限。 将 Tenant2 ID< 替换为>要与之共享映像库的租户的租户 ID。 用户可以使用 Azure CLI 命令 az account show查看其租户 ID。
将应用程序(客户端)ID< 替换为>所创建的应用注册的应用程序 ID。 完成替换作后,将 URL 粘贴到浏览器中,然后按照登录提示登录到租户 2。
https://login.partner.microsoftonline.cn/<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 或 Azure PowerShell。
创建 VM
在使用应用注册从与你共享的映像创建 VM 之前,需要以下信息:
- 源订阅和要在其中创建 VM 的订阅的租户 ID
- 应用注册的客户端 ID 和机密
- 您希望使用的图像的 ID
使用应用 ID、应用密钥和租户 1 的 ID 登录租户 1 的服务主体。 如有必要,可以使用 az account show --query "tenantId" 获取租户 ID。
以下示例演示如何从通用映像创建 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 cloud set -n AzureChinaCloud
az login --service-principal -u $appid -p $secret --tenant $tenant1
az account get-access-token
使用应用 ID、应用密钥以及租户 2 的 ID 来登录租户 2 的服务主体:
az cloud set -n AzureChinaCloud
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
相关内容
- 如果遇到任何问题,可以 排查相册问题。