使用 RBAC 跨订阅和租户共享库资源

由于 Azure Compute Gallery、定义和版本都是资源,因此可以使用内置的原生 Azure 基于角色的访问控制 (RBAC) 角色来共享它们。 使用 Azure RBAC 角色可与其他用户、服务主体和组共享这些资源。 甚至可以与创建这些资源的租户外部的个人共享访问权限。 用户获得访问权限后,便可使用该库资源来部署 VM 或虚拟机规模集。 以下共享矩阵可以帮助你了解用户有权访问哪些资源:

与用户共享 Azure Compute Gallery 映像定义 映像版本
Azure Compute Gallery
映像定义

建议在库级别共享以获得最佳体验。 建议不要共享单独的映像版本。 有关 Azure RBAC 的详细信息,请参阅分配 Azure 角色

Azure Compute Gallery 中有一种共享映像的主要方法,具体取决于要与谁共享:

共享对象: 人员 Service Principal 特定订阅(或)租户中的所有用户 与 Azure 中的所有用户公开共享
RBAC 共享

使用 RBAC 进行共享

使用 RBAC 共享库时,需要向从映像创建 VM 或规模集的任何人员提供 imageID。 部署 VM 或规模集的人员无法列出使用 RBAC 与之共享的映像。

如果你将库资源共享给 Azure 租户外部的其他人,则他们需要使用你的 tenantID 来登录并让 Azure 验证其有权访问该资源,然后才能在自己的租户中使用它。 你需要向他们提供你的 tenantID,组织外部的人员无法查询你的 tenantID

重要

RBAC 共享可用于与组织内部的用户(或)组织外部的用户(跨租户)共享资源。 下面是使用与 RBAC 共享的映像以及创建 VM/VMSS 的说明:

RBAC - 在组织内共享

RBAC - 从另一个租户共享

使用电子邮件地址和 Get-AzADUser cmdlet 获取用户的对象 ID,然后使用 New-AzRoleAssignment 为用户授予对库的访问权限。 请将此示例中的示例电子邮件地址 alinne_montes@contoso.com 替换为你自己的信息。

# Get the object ID for the user
$user = Get-AzADUser -StartsWith alinne_montes@contoso.com
# Grant access to the user for our gallery
New-AzRoleAssignment `
   -ObjectId $user.Id `
   -RoleDefinitionName Reader `
   -ResourceName $gallery.Name `
   -ResourceType Microsoft.Compute/galleries `
   -ResourceGroupName $resourceGroup.ResourceGroupName

后续步骤