La entidad de servicio que utiliza Horizon Cloud para realizar operaciones en los grupos de recursos y la suscripción de Microsoft Azure necesita una función asignada que especifique las operaciones permitidas que puede realizar la entidad de servicio en esa suscripción y sus grupos de recursos. A pesar de que la función integrada de Colaborador de Microsoft Azure proporciona todas las operaciones que necesita Horizon Cloud, lo hace concediendo el mayor número de permisos. En lugar de utilizar la función integrada de Colaborador de Microsoft Azure en el nivel de suscripción, puede crear una función personalizada con el conjunto mínimo de permisos, en el ámbito del conjunto mínimo de operaciones que Horizon Cloud requiere en la suscripción asociada, y asignar esa función personalizada a la entidad de servicio en el nivel de suscripción. Si adopta el enfoque para tener una suscripción independiente para la configuración de la instancia de Unified Access Gateway externa del pod y decide que los recursos de puerta de enlace se implementen en un grupo de recursos que cree y mantenga, tendrá la opción de asignar a la entidad de servicio unos permisos más detallados, de ámbito limitado, dentro de esa suscripción independiente.

El concepto general es que Horizon Cloud necesita realizar ciertas operaciones en la suscripción y sus grupos de recursos para crear y mantener correctamente los recursos necesarios para tener un pod y sus configuraciones de puerta de enlace. Como ejemplo sencillo, debido a que la arquitectura de la puerta de enlace y el pod requieren máquinas virtuales con NIC, Horizon Cloud necesita poder crear máquinas virtuales y NIC en la suscripción, y conectar dichas NIC a subredes en la red virtual de la suscripción. Algunas de las opciones que elija para las implementaciones de pod y de puerta de enlace determinarán el conjunto específico de operaciones que Horizon Cloud debe realizar. Puede restringir las capacidades de Horizon Cloud en su suscripción a las operaciones mínimas requeridas si sigue las reglas que se describen a continuación, según las opciones que esté adoptando para implementar un pod y para su configuración de puerta de enlace externa.

Para obtener más información sobre os roles personalizados en Microsoft Azure y los pasos necesarios para crear un rol personalizado, consulte el tema de la documentación de Microsoft Azure Roles personalizados en los recursos de Azure. Para obtener más información sobre cómo funciona un rol, su estructura y la estructura de las operaciones de administración, consulte Descripción de definiciones de roles para los recursos de Azure en la documentación de Microsoft Azure. Como se describe en ese tema de la documentación, se define un rol como una colección de permisos. Esta es la definición de forma resumida de un rol. El rol enumera las operaciones de administración que puede realizar, así como las operaciones que no puede realizar, la entidad de servicio a la que está asignada ese rol. Una operación de administración es una combinación de los recursos y las acciones realizadas en ese recurso.

Este tema incluye las secciones siguientes.

Descripción general de los casos prácticos disponibles

Cuando se debaten las operaciones requeridas de Horizon Cloud en las suscripciones y los grupos de recursos de Microsoft Azure, existen estos casos prácticos.

Nota: La función de la entidad de servicio creada para la suscripción que se especifica para el resto de los recursos del pod en el caso práctico de dos suscripciones debe seguir las mismas reglas que se necesitan para el caso práctico de una suscripción única.
Caso de uso Descripción
Una sola suscripción utilizada por Horizon Cloud para los pods y sus configuraciones de instancia de Unified Access Gateway externa.

En este caso, se debe conceder acceso a la entidad de servicio en el nivel de suscripción. La función asignada a la entidad de servicio en ese nivel debe permitir que las acciones que Horizon Cloud deba realizar en su suscripción creen correctamente en esa suscripción los recursos necesarios y funcionen en dichos recursos a lo largo del tiempo. Por ejemplo, en este caso, la función debe proporcionar la capacidad de crear los grupos de recursos predeterminados, los grupos de seguridad de red, las máquinas virtuales, etc.

Dos suscripciones, y desea que Horizon Cloud cree automáticamente los recursos y los grupos de recursos necesarios de la puerta de enlace en la suscripción especificada de la puerta de enlace externa, igual que en la suscripción para el resto de los recursos del pod.
  • Una suscripción especificada que se utilice para los recursos de la configuración de la instancia de Unified Access Gateway externa
  • Una suscripción para el resto de los recursos del pod

Cuando se utiliza esta opción, se debe conceder acceso a la entidad de servicio para cada suscripción en el nivel de suscripción, con permisos que permitan que las acciones sean las mismas que las del caso práctico de suscripción única descrito anteriormente.

Dos suscripciones como anteriormente, pero, en lugar de hacer que Horizon Cloud cree automáticamente los grupos de recursos y los recursos necesarios de la puerta de enlace externa, cree un grupo de recursos con anticipación en la suscripción especificada de la puerta de enlace externa y que Horizon Cloud implemente los recursos de la puerta de enlace externa a ese grupo de recursos existente.

Dos opciones para conceder acceso a la entidad de servicio utilizada para implementar la puerta de enlace externa:

  • Conceda acceso al nivel de suscripción, igual que en el caso anterior.
  • Utilice la combinación siguiente:
    • En el nivel de suscripción, conceda acceso con la función integrada de Lector.
    • En el nivel del grupo de recursos designado, conceda acceso con los permisos definidos en una función personalizada. Los permisos concedidos en el nivel de grupo de recursos deben proporcionar las operaciones que Horizon Cloud necesita realizar en el grupo de recursos para implementar y configurar los recursos de la puerta de enlace externa allí.

      Además de los permisos en el grupo de recursos, Horizon Cloud necesita los permisos para realizar las siguientes acciones, en función de los planes de implementación:

      • Si esta implementación va a utilizar subredes creadas previamente en la red virtual de esa suscripción, Horizon Cloud necesita la capacidad de crear NIC y grupos de seguridad de red (NSG) en las subredes. Los permisos necesarios en la red virtual a la que pertenece la subred son Microsoft.Network/virtualNetworks/subnets/* y Microsoft.Network/networkSecurityGroups/*
      • Si esta implementación va a hacer que Horizon Cloud genere las subredes, además de los permisos Microsoft.Network/virtualNetworks/subnets/* y Microsoft.Network/networkSecurityGroups/* anteriores, Horizon Cloud necesita poder crear las subredes. El permiso requerido en la red virtual es Microsoft.Network/virtualNetworks/write
      • Si la implementación de la puerta de enlace externa va a especificar el uso de una dirección IP pública, Horizon Cloud debe poder crear direcciones IP públicas en el grupo de recursos designado. El permiso requerido en el grupo de recursos designado es Microsoft.Network/publicIPAddresses

Cuando se utiliza una sola suscripción para el pod y sus configuraciones de puerta de enlace, o mediante una suscripción independiente para la configuración de la instancia de Unified Access Gateway externa con los permisos establecidos en el nivel de suscripción

En estos casos prácticos, los permisos se asignan en el nivel de suscripción. Para la función personalizada establecida en la entidad de servicio especificada en el paso Suscripción de los flujos de trabajo de Horizon Cloud, se requieren las siguientes acciones en la definición de la función personalizada. El * (carácter comodín) otorga acceso a todas las operaciones que coinciden con la cadena en la operación del proveedor de recursos indicado. Para obtener las descripciones de las operaciones, consulte la documentación de Microsoft Azure en los vínculos que se enumeran a continuación.

Tabla 1. Operaciones de recursos de Microsoft Azure que se deben permitir en la función personalizada al asignar permisos en el nivel de suscripción
Operación Descripción en la documentación de Microsoft Azure
Microsoft.Authorization/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftauthorization
Microsoft.Compute/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/availabilitySets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/disks/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/images/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/locations/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/snapshots/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/virtualMachines/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/virtualMachineScaleSets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.DBforPostgreSQL/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftdbforpostgresql
Microsoft.KeyVault/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.KeyVault/vaults/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.KeyVault/vaults/secrets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.Network/loadBalancers/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/networkInterfaces/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/networkSecurityGroups/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/publicIPAddresses/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/write https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/subnets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.ResourceHealth/availabilityStatuses/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresourcehealth
Microsoft.Resources/subscriptions/resourceGroups/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresources
Microsoft.Resources/deployments/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresources
Microsoft.Storage/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftstorage
Microsoft.Storage/storageAccounts/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftstorage

El siguiente bloque de código JSON es un ejemplo para ilustrar el aspecto que puede tener una definición de función personalizada denominada Horizon Cloud Pod cuando tiene el conjunto de operaciones precedentes. Para obtener una descripción de las propiedades y la información de uso, consulte la sección Propiedades del rol personalizado en el tema de la documentación de Microsoft Azure Roles personalizados en los recursos de Azure. El ID es el identificador único del rol personalizado. Cuando se crea el rol personalizado mediante Azure PowerShell o la CLI de Azure, este ID se genera automáticamente cuando se crea un rol nuevo. Como se describe en el tema Tutorial: Creación de un rol personalizado para los recursos de Azure con la CLI de Azure, mysubscriptionId1 es el ID de su propia suscripción.

Tabla 2. JSON de ejemplo para una función que permite las operaciones requeridas de Horizon Cloud al asignar permisos en el nivel de suscripción
{
"Name": "Horizon Cloud Pod",
"Id": "uuid",
"IsCustom": true,
"Description": "Minimum set of Horizon Cloud pod required operations",
"Actions": [
  "Microsoft.Authorization/*/read"
  "Microsoft.Compute/*/read"
  "Microsoft.Compute/availabilitySets/*"
  "Microsoft.Compute/disks/*"
  "Microsoft.Compute/images/*"
  "Microsoft.Compute/locations/*"
  "Microsoft.Compute/virtualMachines/*"
  "Microsoft.Compute/virtualMachineScaleSets/*"
  "Microsoft.Compute/snapshots/*"
  "Microsoft.DBforPostgreSQL/*"
  "Microsoft.KeyVault/*/read"
  "Microsoft.KeyVault/vaults/*"
  "Microsoft.KeyVault/vaults/secrets/*"
  "Microsoft.Network/loadBalancers/*"
  "Microsoft.Network/networkInterfaces/*"
  "Microsoft.Network/networkSecurityGroups/*"
  "Microsoft.Network/publicIPAddresses/*"
  "Microsoft.Network/virtualNetworks/read"
  "Microsoft.Network/virtualNetworks/write"
  "Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read"
  "Microsoft.Network/virtualNetworks/subnets/*"
  "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read"
  "Microsoft.Resources/subscriptions/resourceGroups/*"
  "Microsoft.ResourceHealth/availabilityStatuses/read"
  "Microsoft.Resources/deployments/*"
  "Microsoft.Storage/*/read"
  "Microsoft.Storage/storageAccounts/*"
  ],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
  "/subscriptions/mysubscriptionId1"
  ]
}

Cuando se utiliza una suscripción independiente para la configuración de la instancia de Unified Access Gateway externa, con una implementación en un grupo de recursos personalizado, con la función de Lector en el nivel de suscripción y los permisos adicionales necesarios asignados en niveles detallados

Para este caso práctico, puede asignar la función de Lector integrada a la entidad de servicio en el nivel de suscripción y, a continuación, conceder acceso en el nivel del grupo de recursos designado mediante una función personalizada que especifique los permisos en la siguiente tabla. Se requieren algunos permisos adicionales en las subredes y en la red virtual, en función de las opciones de implementación planificadas:

  • Si esta implementación de puerta de enlace externa va a utilizar subredes creadas con anticipación, Horizon Cloud necesita la capacidad de crear NIC y grupos de seguridad de red (NSG) en dichas subredes. Los permisos necesarios en la red virtual a la que pertenece la subred son Microsoft.Network/virtualNetworks/subnets/* y Microsoft.Network/networkSecurityGroups/*
  • Si esta implementación de puerta de enlace externa va a hacer que Horizon Cloud genere las subredes, además de los permisos Microsoft.Network/virtualNetworks/subnets/* y Microsoft.Network/networkSecurityGroups/* anteriores, Horizon Cloud necesita poder crear las subredes. El permiso requerido en la red virtual de la suscripción es Microsoft.Network/virtualNetworks/write
  • Si la implementación va a especificar el uso de una dirección IP pública para la configuración de la puerta de enlace externa, Horizon Cloud debe poder crear direcciones IP públicas en el grupo de recursos designado. El permiso requerido en el grupo de recursos designado es Microsoft.Network/publicIPAddresses

Se requieren las siguientes operaciones permitidas en el grupo de recursos designado. El * (carácter comodín) otorga acceso a todas las operaciones que coinciden con la cadena en la operación del proveedor de recursos indicado. Para obtener las descripciones de las operaciones, consulte la documentación de Microsoft Azure en los vínculos que se enumeran a continuación.

Tabla 3. Operaciones de recursos de Microsoft Azure que se deben permitir en el grupo de recursos especificado
Operación Descripción en la documentación de Microsoft Azure
Microsoft.Authorization/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftauthorization
Microsoft.Compute/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/availabilitySets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/disks/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/images/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/locations/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/snapshots/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/virtualMachines/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.Compute/virtualMachineScaleSets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftcompute
Microsoft.DBforPostgreSQL/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftdbforpostgresql
Microsoft.KeyVault/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.KeyVault/vaults/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.KeyVault/vaults/secrets/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault
Microsoft.Network/loadBalancers/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/networkInterfaces/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/publicIPAddresses/*, si la implementación va a especificar el uso de una dirección IP pública para la implementación de la puerta de enlace externa. https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork
Microsoft.ResourceHealth/availabilityStatuses/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresourcehealth
Microsoft.Resources/subscriptions/resourceGroups/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresources
Microsoft.Resources/deployments/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftresources
Microsoft.Storage/*/read https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftstorage
Microsoft.Storage/storageAccounts/* https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftstorage