Es necesario asignar una función al registro de la aplicación de Horizon Cloud first-gen para que este pueda realizar llamadas de API en la suscripción del pod (o en la suscripción de puerta de enlace externa opcional) y realizar las operaciones correspondientes relativas a VDI. Por lo general, para este propósito se utiliza la función Contributor
. Aquellas organizaciones que prefieran evitar el uso de la función Contributor
pueden crear una función personalizada y designarla para cumplir el cometido de otorgar al registro de la aplicación Horizon Cloud la capacidad de realizar las llamadas de API requeridas.
Aparte de una función personalizada para el registro de la aplicación de Horizon Cloud en la suscripción del pod, si la organización prefiere tener una suscripción independiente para la configuración de Unified Access Gateway externa del pod y, asimismo, seleccionar que los recursos de puerta de enlace se implementen en una instancia de grupo de recursos específico que la organización configure a tal fin, la función personalizada para la suscripción de esa puerta de enlace puede tener más permisos detallados y de ámbito restringido que la función personalizada para la suscripción del pod.
Breve introducción a las funciones personalizadas
El concepto general es que Horizon Cloud necesita realizar ciertas operaciones en la suscripción del pod 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.
En Microsoft Azure, una función proporciona el conjunto de operaciones de administración que la entidad de servicio de un registro de aplicaciones puede realizar. Una operación de administración es una combinación de los recursos y las acciones realizadas en ese recurso.
Las capacidades de registro de la aplicación de Horizon Cloud en la suscripción del pod y en la suscripción de la puerta de enlace (opcional) se pueden restringir a las operaciones mínimas requeridas, siguiendo para ello las reglas descritas a continuación.
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, existen estos casos prácticos.
Caso práctico | 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 del pod. 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 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:
|
Cuando la VNet tiene rutas personalizadas. La nube de Microsoft Azure tiene una función llamada rutas personalizadas. | Si la VNet tiene rutas personalizadas, se necesita un permiso (además de todos los necesarios en los casos prácticos anteriores): Microsoft.Network/routeTables/join/action . |
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. La función personalizada debe permitir las operaciones incluidas en la siguiente tabla. El carácter *
(carácter comodín) otorga acceso a todas las operaciones que coinciden con la cadena en la operación indicada.
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. El ID es el identificador único del rol personalizado. Cuando se utiliza Azure PowerShell o la CLI de Azure para crear una función personalizada, este ID se genera automáticamente. En la variable mysubscriptionId1, sustituya el ID de la suscripción en la que se va a usar la función personalizada (esto es, la suscripción del pod o la suscripción de puerta de enlace opcional).
{ "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/*" "Microsoft.Compute/galleries/read" "Microsoft.Compute/galleries/write" "Microsoft.Compute/galleries/delete" "Microsoft.Compute/galleries/images/*" "Microsoft.Compute/galleries/images/versions/*" "Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read" "Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/mysubscriptionId1" ] } |
Cuando hay rutas personalizadas en la VNet y sus subredes
La nube de Microsoft Azure tiene una función llamada rutas personalizadas.
Si tiene estas rutas agregadas a la VNet y sus subredes, necesita este permiso adicional.
Operación | Descripción en la documentación de Microsoft Azure |
---|---|
Microsoft.Network/routeTables/join/action |
https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftnetwork |
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
Respecto a este caso práctico, en el nivel de suscripción de la suscripción de la puerta de enlace externa, la organización puede utilizar la función Reader
integrada para el registro de la aplicación de Horizon Cloud, además de una función personalizada en el nivel del grupo de recursos con nombre.
La organización crearía una función personalizada con los permisos de la siguiente tabla. Esa función personalizada se asignaría a continuación al registro de la aplicación de Horizon Cloud para que funcione con el grupo de recursos con nombre designado a tal efecto en la suscripción de la puerta de enlace externa. Usted o su organización habría creado previamente ese grupo de recursos con nombre en la suscripción en la que se está implementando la puerta de enlace externa.
También se requieren algunos permisos específicos en las subredes y en la red virtual, dependiendo 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/*
yMicrosoft.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/*
yMicrosoft.Network/networkSecurityGroups/*
anteriores, Horizon Cloud necesita poder crear las subredes. El permiso requerido en la red virtual de la suscripción esMicrosoft.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.