使用 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 共享库时,需要向从映像创建 VM 或规模集的任何人员提供 imageID
。 部署 VM 或规模集的人员无法列出使用 RBAC 与之共享的映像。
如果你将库资源共享给 Azure 租户外部的其他人,则他们需要使用你的 tenantID
来登录并让 Azure 验证其有权访问该资源,然后才能在自己的租户中使用它。 你需要向他们提供你的 tenantID
,组织外部的人员无法查询你的 tenantID
。
重要
RBAC 共享可用于与组织内部的用户(或)组织外部的用户(跨租户)共享资源。 下面是使用与 RBAC 共享的映像以及创建 VM/VMSS 的说明:
使用电子邮件地址和 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