Citrix DaaS

与 Microsoft Azure 的连接

创建和管理连接介绍了创建连接的向导。以下信息涵盖了特定于 Azure Resource Manager 云环境的详细信息。

注意:

在创建与 Microsoft Azure 的连接之前,您需要先完成将 Azure 帐户设置为资源位置。请参阅 Microsoft Azure Resource Manager 云环境

与 Azure Resource Manager 的连接

注意事项:

  • Citrix 建议使用具有贡献者角色的服务主体。但是,请参阅最低权限部分以获取最低权限列表。
  • 在创建第一个连接时,Azure 会提示您为其授予必要的权限。对于将来的连接,您仍然必须进行身份验证,但是 Azure 会记住您以前同意的情况,并且不会再显示提示。
  • 用于身份验证的帐户必须是订阅的协管理员。
  • 用于身份验证的帐户必须是订阅的目录的成员。需要注意两种类型的帐户:“工作或学校”和“个人 Microsoft 帐户”。有关详细信息,请参阅 CTX219211
  • 虽然可以通过将现有 Microsoft 帐户添加为订阅目录的成员来使用该帐户,但如果以前已为用户授予对其中一个目录的资源的来宾访问权限,则可能会出现复杂情况。在这种情况下,他们可能在目录中有一个不会授予其必要权限的占位符条目,并会返回错误。

    通过从目录中删除资源并明确重新添加来改正此问题。但是,请谨慎使用此方法,因为它会对帐户可以访问的其他资源产生意外影响。

  • 有一个已知问题,即某些帐户实际上是成员时,会被检测为目录来宾。此类配置通常发生在已建立的较旧的目录帐户中。解决方法:向目录中添加一个帐户,该帐户采用适当的成员身份值。
  • 资源组只是资源的容器,它们可以包含来自自己所在区域以外的区域的资源。如果您希望资源组的区域中显示的资源可用,这可能会引起混淆。
  • 请确保您的网络和子网足够大,可以容纳您需要的计算机数量。这需要一些先见之明,但 Microsoft 会帮助您指定合适的值,并提供有关地址空间容量的指导。

可以通过两种方式建立与 Azure 的主机连接:

  • 通过向 Azure 进行身份验证以创建服务主体。
  • 使用之前创建的服务主体的详细信息连接到 Azure。

创建服务主体

重要:

此功能尚不适用于 Azure 中国和 Azure 德国订阅。

在开始之前,请向 Azure 进行身份验证。确保:

  • 在订阅的 Azure Active Directory 租户中具有一个用户帐户。
  • Azure AD 用户帐户也是您希望用来预配资源的 Azure 订阅的协管理员。
  • 您拥有全局管理员、应用程序管理员或应用程序开发者权限进行身份验证。创建主机连接后,可以撤消权限。有关角色的更多信息,请参阅 Azure AD 内置角色

向 Azure 进行身份验证以创建服务主体时,应用程序将在 Azure 中注册。密钥(客户端密码)是为已注册的应用程序创建的。注册的应用程序使用客户端密钥向 Azure AD 进行身份验证。请务必在客户端密码到期之前进行更改。在密钥到期之前,您会在控制台上收到警报。请参阅应用程序密钥和密钥到期日期

要向 Azure 进行身份验证以创建服务主体,请在添加连接和资源向导中完成以下步骤:

  1. 连接页面上,选择创建新连接Microsoft Azure 连接类型和您的 Azure 环境。

  2. 选择可以使用哪些工具来创建虚拟机,然后选择下一步

  3. 连接详细信息页面上,输入 Azure 订阅 ID 和连接的名称。输入订阅 ID 后,将启用新建按钮。

    注意:

    连接名称可以包含 1-64 个字符,不能仅包含空格或字符 \/;:#.*?=<>|[]{}"'()'

  4. 选择新建,然后输入 Azure Active Directory 帐户用户名和密码。

  5. 选择登录

  6. 选择接受以将列出的权限授予 Citrix Virtual Apps and Desktops。Citrix Virtual Apps and Desktops 会创建一个允许它代表指定的用户管理 Azure 资源的服务主体。

  7. 选择接受后,您将返回到向导中的连接页面。

    注意:

    成功对 Azure 进行身份验证后,新建使用现有按钮将消失。此时将显示连接成功文本,并带有一个绿色复选标记,指示已成功连接到您的 Azure 订阅。

  8. 连接详细信息页面上,选择下一步

    注意:

    在成功对 Azure 进行身份验证并同意授予所需的权限之后,才能进入下一页。

  9. 为连接配置资源。资源由区域和网络组成。

    • 区域页面上,选择一个区域。
    • 网络页面上,执行以下操作:
      • 键入 1–64 字符的资源名称以帮助确定区域和网络组合。资源名称不能仅包含空格,也不能包含字符 \/;:#.*?=<>|[]{}"'()'
      • 选择一个虚拟网络/资源组对。(如果您有多个具有相同名称的虚拟网络,将网络名称与资源组配对可提供唯一的组合。)如果您在上一个页面上选择的区域不具有任何虚拟网络,请返回到该页面并选择一个具有虚拟网络的区域。
  10. 摘要页面上,查看设置的摘要,然后选择完成以完成您的设置。

使用之前创建的服务主体的详细信息连接到 Azure

要手动创建服务主体,请连接到 Azure Resource Manager 订阅并使用以下部分中提供的 PowerShell cmdlet。

必备条件:

  • SubscriptionId: 您希望预配 VDA 的订阅的 Azure Resource Manager SubscriptionID
  • ActiveDirectoryID:您在 Azure AD 中注册的应用程序的租户 ID。
  • ApplicationName: 要在 Azure AD 中创建的应用程序的名称。

要创建服务主体,请执行以下操作:

  1. 连接到您的 Azure Resource Manager 订阅。

    Connect-AzAccount

  2. 选择您要创建服务主体的 Azure Resource Manager 订阅。

    Get-AzSubscription -SubscriptionId $subscriptionId | Select-AzSubscription

  3. 在您的 AD 租户中创建应用程序。

    $AzureADApplication = New-AzADApplication -DisplayName $ApplicationName

  4. 创建服务主体。

    New-AzADServicePrincipal -ApplicationId $AzureADApplication.AppId

  5. 向服务主体分配角色。

    New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.AppId –scope /subscriptions/$SubscriptionId

  6. 在 PowerShell 控制台的输出窗口中,记下 ApplicationId。请在创建主机连接时提供该 ID。

添加连接和资源向导中,执行以下操作:

  1. 连接页面上,选择创建新连接Microsoft Azure 连接类型和您的 Azure 环境。

  2. 选择可以使用哪些工具来创建虚拟机,然后选择下一步

  3. 连接详细信息页面上,输入 Azure 订阅 ID 和连接的名称。

    注意:

    连接名称可以包含 1-64 个字符,不能仅包含空格或字符 \/;:#.*?=<>|[]{}"'()'

  4. 选择使用现有。在现有服务主体详细信息窗口中,输入现有服务主体的以下设置。输入详细信息后,将会启用保存按钮。选择保存。除非提供有效的详细信息,否则无法跳过此页面。

    • 订阅 ID。输入您的 Azure 订阅 ID。要获取您的订阅 ID,请登录 Azure 门户并导航到订阅 > 概述
    • Active Directory ID(租户 ID)。输入您在 Azure AD 中注册的应用程序的目录(租户)ID。
    • 应用程序 ID。输入您在 Azure AD 中注册的应用程序的应用程序(客户端)ID。
    • 应用程序机密。创建密码(客户端密码)。注册的应用程序使用密钥向 Azure AD 进行身份验证。出于安全考虑,我们建议您定期更改密钥。请务必保存密钥,因为以后将无法检索密钥。请参阅应用程序密钥和密钥到期日期
    • 机密过期日期。输入应用程序机密的过期日期。在密钥到期之前,您会在控制台上收到警报。但是,如果密钥过期,您会收到错误。

      注意:

      出于安全考虑,有效期从现在起不得超过两年。

    • 身份验证 URL。此字段将自动填充且不可编辑。
    • 管理 URL。此字段将自动填充且不可编辑。
    • 存储后缀。此字段将自动填充且不可编辑。

      在 Azure 中创建 MCS 目录需要访问以下端点。访问这些端点可优化您的网络与 Azure 门户及其服务之间的连接。

  5. 选择保存后,您将返回到连接详细信息页面。选择下一步进入下一页。

  6. 为连接配置资源。资源由区域和网络组成。

    • 区域页面上,选择一个区域。
    • 网络页面上,执行以下操作:
      • 键入 1–64 字符的资源名称以帮助确定区域和网络组合。资源名称不能仅包含空格,也不能包含字符 \/;:#.*?=<>|[]{}"'()'
      • 选择一个虚拟网络/资源组对。(如果您有多个具有相同名称的虚拟网络,将网络名称与资源组配对可提供唯一的组合。)如果您在上一个页面上选择的区域不具有任何虚拟网络,请返回到该页面并选择一个具有虚拟网络的区域。
  7. 摘要页面上,查看设置的摘要,然后选择完成以完成您的设置。

应用程序密钥和密钥到期日期

查看应用程序 ID

您可以在“完整配置”界面中查看应用程序 ID。

在“添加连接和资源”向导中,选择连接以查看详细信息。“详细信息”选项卡显示应用程序 ID。

“添加连接和资源”页上的应用程序 ID

查看应用程序密钥

您可以在 Azure 门户中查看应用程序密钥。

  1. 从完整配置界面获取 应用程序 ID
  2. 登录 Azure 门户。
  3. 在 Azure 中,选择 Azure Active Directory
  4. 从 Azure AD 中的应用程序注册中,选择您的应用程序。
  5. 转到证书和密钥
  6. 单击“客户机密钥”。

Azure 门户中的应用程序密钥

更改密钥到期日期

使用完整配置界面添加或修改正在使用的应用程序密钥的到期日期。

  1. 在“添加连接和资源”向导中,右键单击连接,然后单击“编辑连接”。
  2. 在“连接属性”页上,单击“密钥到期日期”以添加或修改正在使用的应用程序密钥的过期日期。

更改密钥到期日期

创建新的应用程序密钥

您可以通过 Azure 门户为连接创建新的应用程序密钥。

  1. 选择 Azure Active Directory
  2. 从 Azure AD 中的应用程序注册中,选择您的应用程序。
  3. 转到证书和密钥
  4. 单击“客户端密钥”>“新建客户端密钥”。

    创建新的应用程序密钥

  5. 提供密码的说明并指定持续时间。完成后,选择添加

    注意:

    请务必保存客户端密钥,因为您以后将无法检索该密钥。

  6. 复制客户端密钥值和到期日期。
  7. 在“完整配置”界面中,编辑相应的连接,并将应用程序密钥密钥到期日期字段中的内容替换为您复制的值。

Azure 主机连接

Azure 限制

Azure Resource Manager 限制订阅和租户的请求,从而根据定义的限制路由流量,根据提供商的特定需求量身定制。请参阅 Microsoft 站点上的限制 Resource Manager 请求,了解详细信息。订阅和租户存在限制,在这些情况下,管理许多计算机可能会成问题。例如,包含许多计算机的订阅可能会遇到与电源操作有关的性能问题。

提示:

有关详细信息,请参阅使用 Machine Creation Services 提高 Azure 性能

为了帮助缓解这些问题,Citrix DaaS 允许您删除 MCS 内部限制,以使用 Azure 中的更多可用请求配额。

我们建议在大型订阅(例如,包含 1,000 个 VM 的订阅)中打开或关闭 VM 的电源时采用以下最佳设置:

  • 绝对同时操作:500
  • 每分钟最大新操作数:2000
  • 操作的最大并发数:500

使用“完整配置”界面为给定主机连接配置 Azure 操作:

  1. 管理 > 完整配置中,选择左侧窗格中的托管
  2. 选择与 Azure 有关的连接以对其进行编辑。
  3. 编辑连接向导中,选择高级
  4. 高级页面上,使用配置选项指定同时操作的数量、每分钟执行的最大新操作数以及任何其他连接选项。

Azure 限制

默认情况下,MCS 最多支持 500 个并发操作。或者,您可以使用远程 PowerShell SDK 设置最大并发操作数。

使用 PowerShell 属性 MaximumConcurrentProvisioningOperations 可指定并发 Azure 预配操作的最大数量。使用此属性时,请注意:

  • MaximumConcurrentProvisioningOperations 的默认值为 500。
  • 使用 PowerShell 命令 Set-item 配置 MaximumConcurrentProvisioningOperations 参数。

与同一租户中的另一个服务主体共享映像

要在 Azure Compute Gallery 中选择属于其他订阅的映像,必须与该订阅的服务主体 (SPN) 共享该映像。

例如,如果存在服务主体 (SPN 1),则在 Studio 中将其配置为:

服务主体:SPN 1

订阅:订阅 1

租户:租户 1

该映像处于不同的订阅中,在 Studio 中配置为:

订阅:订阅 2

租户:租户 1

如果您想与订阅 1 (SPN 1) 共享订阅 2 中的镜像,请转到订阅 2,然后与 SPN1 共享资源组。

必须使用 Azure 基于角色的访问控制 (RBAC) 与其他 SPN 共享映像。Azure RBAC 是用于管理 Azure 资源访问权限的授权系统。有关 Azure RBAC 的更多信息,请参阅 Microsoft 文档基于 Azure 角色的访问控制 (Azure RBAC) 是什么。要授予访问权限,您可以使用贡献者角色将角色分配给资源组范围内的服务主体。要分配 Azure 角色,您必须拥有 Microsoft.Authorization/roleAssignments/write 权限,例如用户访问管理员或所有者。有关与其他 SPN 共享映像的详细信息,请参阅 Microsoft 文档 Assign Azure roles using the Azure portal(使用 Azure 门户分配 Azure 角色)。

在 Azure 租户之间共享映像

要使用 Azure Compute Gallery 在租户之间共享映像,请创建应用程序注册。

例如,如果有两个租户(租户 1 和租户 2),并且您想与租户 1 共享您的映像库,那么:

  1. 为租户 1 创建应用程序注册。有关更多信息,请参阅创建应用程序注册

  2. 通过使用浏览器请求登录,授予租户 2 对应用程序的访问权限。将 Tenant2 ID 替换为租户 1 的租户 ID。将 Application (client) ID 替换为您创建的应用程序注册的应用程序 ID。完成替换后,将 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
    <!--NeedCopy-->
    

    有关更多信息,请参阅授予租户 2 访问权限

  3. 授予应用程序访问租户 2 资源组的权限。以租户 2 的身份登录,并向应用程序提供具有图库图像的资源组的注册访问权限。有关更多信息,请参阅对跨租户的请求进行身份验证

更新主机连接自定义属性

使用 Set-Item 可使用共享租户 ID 和订阅 ID 更新托管连接自定义属性。在 CustomProperties 中添加属性 SharedTenantsShared Tenants 的格式是:

[{"Tenant":"94367291-119e-457c-bc10-25337231f7bd","Subscriptions":["7bb42f40-8d7f-4230-a920-be2781f6d5d9"]},{"Tenant":"50e83564-c4e5-4209-b43d-815c45659564","Subscriptions":["06ab8944-6a88-47ee-a975-43dd491a37d0"]}]
<!--NeedCopy-->

例如:

Set-Item -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
<Property xsi:type=`"StringProperty`" Name=`"SubscriptionId`" Value=`"123`" />
<Property xsi:type=`"StringProperty`" Name=`"ManagementEndpoint`" Value=`"https://management.azure.com/`" />
<Property xsi:type=`"StringProperty`" Name=`"AuthenticationAuthority`" Value=`"https://login.microsoftonline.com/`" />
<Property xsi:type=`"StringProperty`" Name=`"StorageSuffix`" Value=`"core.windows.net`" />
<Property xsi:type=`"StringProperty`" Name=`"TenantId`" Value=`"123abc`" />
<Property xsi:type=`"StringProperty`" Name=`"SharedTenants`" Value=`"`[ { 'Tenant':'123abc', 'Subscriptions':['345', '567'] } ]`"` />
</CustomProperties>"
-LiteralPath @("XDHyp:\Connections\aazure") -PassThru -UserName "advc345" -SecurePassword
$psd
<!--NeedCopy-->

注意:

您可以添加多个租户。每个租户可以有多个订阅。

使用共享映像以使用完整配置创建或更新计算机目录

在完整配置界面中创建或更新计算机目录时,可以选择来自不同 Azure 租户和订阅的共享映像(通过 Azure 计算库共享)。该功能要求您为关联的主机连接提供共享租户和订阅信息。完成以下连接步骤:

  1. 管理 > 完整配置中,选择左侧窗格中的托管
  2. 选择连接,然后在操作栏中选择编辑连接
  3. 共享租户中,执行以下操作:
    1. 提供与订阅连接相关的应用程序 ID 和应用程序密钥。DaaS 使用这些信息向 Azure AD 进行身份验证。
    2. 通过订阅连接添加共享 Azure 计算库的租户和订阅。最多可以为每个租户添加八个共享租户和八个订阅。
  4. 完成后,选择“应用”以应用所做的更改并保持窗口处于打开状态,或者选择“确定”以应用更改并关闭窗口。

使用 PowerShell 从不同的订阅中选择映像

可以在 Azure Compute Gallery 中选择属于同一 Azure 租户中不同共享订阅的映像,以使用 PowerShell 命令创建和更新 MCS 目录。

  1. 在托管单元根文件夹中,Citrix 创建了一个名为 sharedsubscription 的新共享订阅文件夹。
  2. 列出租户中的所有共享订阅。

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\sharedsubscription.folder"
    <!--NeedCopy-->
    
  3. 选择一个共享订阅,然后列出该共享订阅的所有共享资源组。

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription"
    <!--NeedCopy-->
    
  4. 选择一个资源组,然后列出该资源组的所有库。

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup"
    <!--NeedCopy-->
    
  5. 选择一个库,然后列出该库的所有映像定义。

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\testgallery.gallery"
    <!--NeedCopy-->
    
  6. 选择一个映像定义,然后列出该映像定义的所有映像版本。

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\sigtestdef.imagedefinition"
    <!--NeedCopy-->
    
  7. 使用以下元素创建和更新 MCS 目录:

    • 资源组
    • 库映像定义
    • 库映像版本

    有关如何使用远程 PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/

使用 PowerShell 从其他租户中选择映像

您可以在 Azure 计算库中选择属于不同 Azure 租户的映像,使用 PowerShell 命令创建和更新 MCS 目录。

  1. 在托管单元根文件夹中,Citrix 创建了一个名为 sharedsubscription 的新共享订阅文件夹。
  2. 列出所有共享的订阅。

    Get-ChildItem XDHyp:\HostingUnits\azres\sharedsubscription.folder
    <!--NeedCopy-->
    
  3. 选择一个共享订阅,然后列出该共享订阅的所有共享资源组。

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription
    <!--NeedCopy-->
    
  4. 选择一个资源组,然后列出该资源组的所有库。

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup
    <!--NeedCopy-->
    
  5. 选择一个库,然后列出该库的所有映像定义。

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery
    <!--NeedCopy-->
    
  6. 选择一个映像定义,然后列出该映像定义的所有映像版本。

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery\hij.imagedefinition
    <!--NeedCopy-->
    
  7. 使用以下元素创建和更新 MCS 目录:

    • 资源组
    • 库映像定义
    • 库映像版本

    有关如何使用远程 PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/

关于 Azure 权限

本部分包含 Azure 所需的最低权限和一般权限。

最低权限

最低权限可提供更好的安全控制。但是,由于仅使用最低权限,因此,需要额外的权限的新功能将失败。

创建主机连接

使用从 Azure 获取的信息添加新的主机连接。

"Microsoft.Network/virtualNetworks/read",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/disks/read",
<!--NeedCopy-->

VM 的电源管理

打开或关闭计算机实例的电源。

"Microsoft.Compute/virtualMachines/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
<!--NeedCopy-->

创建、更新或删除 VM

创建计算机目录,然后添加、删除、更新计算机和删除计算机目录。

下面是主映像为托管磁盘或快照与托管连接位于同一区域时所需的最低权限列表。

"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
<!--NeedCopy-->

您需要根据以下功能的最低权限获得下列额外的权限:

  • 如果主映像是与托管连接位于同一区域的存储帐户中的 VHD:

     "Microsoft.Storage/storageAccounts/read",
     "Microsoft.Storage/storageAccounts/listKeys/action",
     <!--NeedCopy-->
    
  • 如果主映像是共享映像库中的映像版本:

     "Microsoft.Compute/galleries/read",
     "Microsoft.Compute/galleries/images/read",
     "Microsoft.Compute/galleries/images/versions/read",
     <!--NeedCopy-->
    
  • 如果主映像是托管磁盘。快照或 VHD 与托管连接位于不同的区域中:

     "Microsoft.Storage/storageAccounts/read",
     "Microsoft.Storage/storageAccounts/listKeys/action",
     "Microsoft.Storage/storageAccounts/write",
     "Microsoft.Storage/storageAccounts/delete",
     <!--NeedCopy-->
    
  • 如果您使用 Citrix 管理的资源组:

     "Microsoft.Resources/subscriptions/resourceGroups/write",
     "Microsoft.Resources/subscriptions/resourceGroups/delete",
     <!--NeedCopy-->
    
  • 如果将主映像放置在共享映像库中:

     "Microsoft.Compute/galleries/write",
     "Microsoft.Compute/galleries/images/write",
     "Microsoft.Compute/galleries/images/versions/write",
     "Microsoft.Compute/galleries/read",
     "Microsoft.Compute/galleries/images/read",
     "Microsoft.Compute/galleries/images/versions/read",
     "Microsoft.Compute/galleries/delete",
     "Microsoft.Compute/galleries/images/delete",
     "Microsoft.Compute/galleries/images/versions/delete",
     <!--NeedCopy-->
    
  • 如果您使用 Azure 专用主机支持:

     "Microsoft.Compute/hostGroups/read",
     "Microsoft.Compute/hostGroups/write",
     "Microsoft.Compute/hostGroups/hosts/read",
     <!--NeedCopy-->
    
  • 如果您将服务器端加密 (SSE) 与客户托管密钥 (CMK) 结合使用:

     "Microsoft.Compute/diskEncryptionSets/read",
     <!--NeedCopy-->
    
  • 如果您使用 ARM 模板(计算机配置文件)部署 VM:

     "Microsoft.Resources/deployments/write",
     "Microsoft.Resources/deployments/operationstatuses/read",
     "Microsoft.Resources/deployments/read",
     "Microsoft.Resources/deployments/delete",
     <!--NeedCopy-->
    
  • 如果使用 Azure 模板规范作为计算机配置文件:

     "Microsoft.Resources/templateSpecs/read",
     "Microsoft.Resources/templateSpecs/versions/read",
     <!--NeedCopy-->
    

创建、更新和删除包含非托管磁盘的计算机

下面是主映像为 VHD 并使用管理员提供的资源组时所需的最低权限列表:

"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action"
<!--NeedCopy-->

一般权限

贡献者角色拥有管理所有资源的完全访问权限。这组权限不会阻止您获取新功能。

以下权限集提供了将来的最佳兼容性,尽管它包含的权限超过了当前功能集所需的权限亦如此:

"Microsoft.Compute/diskEncryptionSets/read",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/galleries/delete",
"Microsoft.Compute/galleries/images/delete",
"Microsoft.Compute/galleries/images/read",
"Microsoft.Compute/galleries/images/versions/delete",
"Microsoft.Compute/galleries/images/versions/read",
"Microsoft.Compute/galleries/images/versions/write",
"Microsoft.Compute/galleries/images/write",
"Microsoft.Compute/galleries/read",
"Microsoft.Compute/galleries/write",
"Microsoft.Compute/hostGroups/hosts/read",
"Microsoft.Compute/hostGroups/read",
"Microsoft.Compute/hostGroups/write",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Resources/deployments/operationstatuses/read",
"Microsoft.Resources/deployments/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Resources/deployments/write",
"Microsoft.Resources/deployments/delete",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/delete",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
"Microsoft.Resources/templateSpecs/read",
"Microsoft.Resources/templateSpecs/versions/read",
<!--NeedCopy-->

下一步的去向

更多信息

与 Microsoft Azure 的连接