Citrix Virtual Apps and Desktops

Conexión con entornos de Google Cloud

Crear y administrar conexiones y recursos describe los asistentes que crean una conexión. La siguiente información incluye detalles específicos de los entornos de Google Cloud.

Nota:

Antes de crear una conexión con Google Cloud, debe terminar de configurar su cuenta de Google Cloud como ubicación de recursos. Consulte Entornos de Google Cloud.

Agregar una conexión

Siga las instrucciones que se indican en Crear una conexión y recursos. Esta descripción es una guía para configurar una conexión de alojamiento:

  1. En Administrar > Configuración, seleccione Alojamiento en el panel de la izquierda.

  2. Seleccione Agregar conexión y recursos en la barra de acciones.

  3. En la página Conexión, seleccione Crear una conexión y Herramientas de aprovisionamiento de Citrix y, a continuación, seleccione Siguiente.

    • Tipo de conexión. Seleccione Google Cloud en el menú.
    • Nombre de la conexión. Escriba un nombre para la conexión.
  4. En la página Región, seleccione un nombre de proyecto en el menú, seleccione una región que contenga los recursos que quiere utilizar y, a continuación, seleccione Siguiente.

  5. En la página Red, escriba un nombre para los recursos, seleccione una red virtual en el menú, seleccione un subconjunto y, a continuación, seleccione Siguiente. El nombre de los recursos ayuda a identificar esta combinación de región y red. Las redes virtuales con el sufijo (Shared) (Compartida) anexado a su nombre representan VPC compartidas. Si configura un rol de IAM a nivel de subred para una VPC compartida, solo aparecerán subredes específicas de la VPC compartida en la lista de subredes.

    Nota:

    • El nombre de conexión puede contener entre 1 y 64 caracteres, y no puede contener solo espacios en blanco o los caracteres \ / ; : # . * ? = < > | [ ] { } " ' ( ) ' ).
  6. En la página Resumen, confirme la información y seleccione Finalizar para salir de la ventana Agregar conexión y recursos.

Después de crear la conexión y los recursos, podrá verlos. Para configurar la conexión, selecciónela y, a continuación, seleccione la opción correspondiente en la barra de acciones.

Del mismo modo, puede eliminar, cambiar el nombre o probar los recursos creados en la conexión. Para ello, seleccione el recurso de la conexión y, a continuación, seleccione la opción correspondiente de la barra de acciones.

URL de dispositivo de punto final del servicio

Debe tener acceso a las siguientes URL:

  • https://oauth2.googleapis.com
  • https://cloudresourcemanager.googleapis.com
  • https://compute.googleapis.com
  • https://storage.googleapis.com
  • https://cloudbuild.googleapis.com

Proyectos de Google Cloud

Existen básicamente dos tipos de proyectos de Google Cloud:

  • Proyecto de Provisioning: En este caso, la cuenta de administrador actual es propietaria de las máquinas aprovisionadas del proyecto. Este tipo de proyecto se conoce también como proyecto local.
  • Proyecto de nube privada virtual (VPC) compartida: Proyecto en el que las máquinas creadas en el proyecto de aprovisionamiento utilizan la VPC del proyecto de VPC compartida. La cuenta de administrador utilizada para el proyecto de aprovisionamiento tiene permisos limitados en este proyecto, específicamente, solo permisos para usar la nube VPC.

Crear un entorno seguro para el tráfico administrado de GCP

Puede permitir el acceso privado a Google en sus proyectos de Google Cloud. Esta implementación mejora la seguridad a la hora de gestionar datos confidenciales. Para lograrlo, puede optar por una de estas acciones:

  • Incluya estas reglas de entrada de controles de servicio de VPC para la cuenta de servicio de Cloud Build. Si hace este paso, no siga los pasos que se indican a continuación con los que crear un entorno seguro para el tráfico administrado por GCP.

     Ingress Rule 1
     From:
     Identities:
     <ProjectID>@cloudbuild.gserviceaccount.com
     Source > All sources allowed
     To:
     Projects =
     All projects
     Services =
     Service name: All services
     <!--NeedCopy-->
    
  • Si utiliza una agrupación de trabajadores privados, agregue UsePrivateWorkerPool a CustomProperties. Para obtener información sobre la agrupación de trabajadores privados, consulte Private pools overview.

Requisitos para crear un entorno seguro para el tráfico administrado de GCP

Los requisitos para crear un entorno seguro para el tráfico administrado de GCP son los siguientes:

  • Asegúrese de que la conexión de alojamiento esté en modo de mantenimiento al actualizar las propiedades personalizadas.
  • Para usar agrupaciones de trabajadores privados, se requieren los siguientes cambios:
    • Para la cuenta de servicio de Citrix Cloud, agregue los siguientes roles de IAM:
      • Cuenta de servicio de Cloud Build
      • Administrador de instancias de proceso
      • Usuario de cuenta de servicio
      • Creador de tokens de cuentas de servicio
      • Propietario de agrupación de trabajadores de Cloud Build
    • Cree la cuenta de servicio de Citrix Cloud en el mismo proyecto que usa para crear una conexión de alojamiento.
    • Configure las zonas DNS para private.googleapis.com y gcr.io como se describe en la Configuración de DNS.

      Zonas DNS para private-googleapis-com

      Zonas DNS para gcr.io

    • Configure la traducción de direcciones de red (NAT) privada o utilice una conexión de servicio privada. Para obtener más información, consulte Access Google APIs through endpoints.

      Private Service Connect

    • Si usa una VPC emparejada, cree una zona de Cloud DNS que conecte a la VPC emparejada. Para obtener más información, consulte Create a peering zone.

      Create a peering zone

    • En los controles de servicio de VPC, configure las reglas de salida para que las API y las máquinas virtuales puedan comunicarse con Internet. Las reglas de entrada son opcionales. Por ejemplo:

       Egress Rule 1
       From:
       Identities:ANY_IDENTITY
       To:
       Projects =
       All projects
       Service =
       Service name: All services
       <!--NeedCopy-->
      

Habilitar la agrupación privada de trabajadores

Para habilitar la agrupación privada de trabajadores, defina las propiedades personalizadas de esta manera en la conexión de host:

  1. Abra una ventana de PowerShell desde el host del Delivery Controller o utilice el SDK de PowerShell remoto. Para obtener más información sobre el SDK de PowerShell remoto, consulte SDK y API.
  2. Ejecute los comandos siguientes:

    1. Add-PSSnapin citrix*
    2. cd XDHyp:\Connections\
    3. dir
  3. Copie CustomProperties de la conexión a un bloc de notas.
  4. Adjunte el parámetro de propiedad <Property xsi:type="StringProperty" Name="UsePrivateWorkerPool" Value="True"/>. Por ejemplo:

    ```
    <CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
    <Property xsi:type="StringProperty" Name="UsePrivateWorkerPool" Value="True"/>
    </CustomProperties>
    <!--NeedCopy--> ```
    
  5. En la ventana de PowerShell, asigne una variable a las propiedades personalizadas modificadas. Por ejemplo: $customProperty = '<CustomProperties…</CustomProperties>'.
  6. Ejecute $gcpServiceAccount = "<ENTER YOUR SERVICE ACCOUNT EMAIL HERE>".
  7. Ejecute $gcpPrivateKey = "<ENTER YOUR SERVICE ACCOUNT PRIVATE KEY HERE AFTER REMOVING ALL INSTANCES OF \n >".
  8. Ejecute $securePassword = ConvertTo-SecureString $gcpPrivateKey -AsPlainText -Force.
  9. Ejecute lo siguiente para actualizar una conexión de host existente:

    Set-Item -PassThru -Path @('XDHyp:\Connections\\<ENTER YOUR CONNECTION NAME HERE>') -SecurePassword $securePassword -UserName $gcpServiceAccount -CustomProperties $customProperty
    <!--NeedCopy-->
    

Permisos de GCP requeridos

En esta sección, se incluye la lista completa de permisos de GCP. Utilice el conjunto completo de permisos que se indica en la sección para que la funcionalidad opere correctamente.

Crear una conexión de host

  • Permisos mínimos requeridos para la cuenta de servicio de Citrix Cloud en el proyecto de Provisioning:

     compute.instanceTemplates.list
     compute.instances.list
     compute.networks.list
     compute.projects.get
     compute.regions.list
     compute.subnetworks.list
     compute.zones.list
     resourcemanager.projects.get
     <!--NeedCopy-->
    

    Estos roles definidos por Google tienen los permisos que se indican anteriormente:

    • Administrador de procesos
    • Usuario de almacén de datos en la nube
  • Permisos adicionales requeridos para la nube VPC compartida con la cuenta de servicio de Citrix Cloud en el proyecto de nube VPC compartida:

     compute.networks.list
     compute.subnetworks.list
     resourcemanager.projects.get
     <!--NeedCopy-->
    

    Estos roles definidos por Google tienen los permisos que se indican anteriormente:

    • Compute Network User

Administración de energía de las máquinas virtuales

Permisos mínimos requeridos para la cuenta de servicio de Citrix Cloud en el proyecto de Provisioning:

compute.instanceTemplates.list
compute.instances.list
compute.instances.get
compute.instances.reset
compute.instances.resume
compute.instances.start
compute.instances.stop
compute.instances.suspend
compute.networks.list
compute.projects.get
compute.regions.list
compute.subnetworks.list
compute.zones.list
resourcemanager.projects.get
<!--NeedCopy-->

Estos roles definidos por Google tienen los permisos que se indican anteriormente:

  • Administrador de procesos
  • Usuario de almacén de datos en la nube

Creación, actualización o eliminación de máquinas virtuales

  • Permisos mínimos requeridos para la cuenta de servicio de Citrix Cloud en el proyecto de Provisioning:

     cloudbuild.builds.create
     cloudbuild.builds.get
     cloudbuild.builds.list
     compute.acceleratorTypes.list
     compute.diskTypes.get
     compute.diskTypes.list
     compute.disks.create
     compute.disks.createSnapshot
     compute.disks.delete
     compute.disks.get
     compute.disks.list
     compute.disks.setLabels
     compute.disks.use
     compute.disks.useReadOnly
     compute.firewalls.create
     compute.firewalls.delete
     compute.firewalls.list
     compute.globalOperations.get
     compute.images.create
     compute.images.delete
     compute.images.get
     compute.images.list
     compute.images.setLabels
     compute.images.useReadOnly
     compute.instanceTemplates.create
     compute.instanceTemplates.delete
     compute.instanceTemplates.get
     compute.instanceTemplates.list
     compute.instanceTemplates.useReadOnly
     compute.instances.attachDisk
     compute.instances.create
     compute.instances.delete
     compute.instances.detachDisk
     compute.instances.get
     compute.instances.list
     compute.instances.reset
     compute.instances.resume
     compute.instances.setDeletionProtection
     compute.instances.setLabels
     compute.instances.setMetadata
     compute.instances.setServiceAccount
     compute.instances.setTags
     compute.instances.start
     compute.instances.stop
     compute.instances.suspend
     compute.machineTypes.get
     compute.machineTypes.list
     compute.networks.list
     compute.networks.updatePolicy
     compute.nodeGroups.list
     compute.nodeTemplates.get
     compute.projects.get
     compute.regions.list
     compute.snapshots.create
     compute.snapshots.delete
     compute.snapshots.list
     compute.snapshots.setLabels
     compute.snapshots.useReadOnly
     compute.subnetworks.get
     compute.subnetworks.list
     compute.subnetworks.use
     compute.zoneOperations.get
     compute.zoneOperations.list
     compute.zones.get
     compute.zones.list
     iam.serviceAccounts.actAs
     resourcemanager.projects.get
     storage.buckets.create
     storage.buckets.delete
     storage.buckets.get
     storage.buckets.list
     storage.buckets.update
     storage.objects.create
     storage.objects.delete
     storage.objects.get
     storage.objects.list
     <!--NeedCopy-->
    

    Estos roles definidos por Google tienen los permisos que se indican anteriormente:

    • Administrador de procesos
    • Administrador de almacenamiento
    • Editor de compilaciones en la nube
    • Usuario de cuenta de servicio
    • Usuario de almacén de datos en la nube
  • Permisos adicionales requeridos para la nube VPC compartida con la cuenta de servicio de Citrix Cloud en el proyecto de nube VPC compartida a fin de crear una unidad de alojamiento mediante la VPC y la subred del proyecto de VPC compartida:

     compute.firewalls.list
     compute.networks.list
     compute.projects.get
     compute.regions.list
     compute.subnetworks.get
     compute.subnetworks.list
     compute.subnetworks.use
     compute.zones.list
     resourcemanager.projects.get
     <!--NeedCopy-->
    

    Estos roles definidos por Google tienen los permisos que se indican anteriormente:

    • Compute Network User
    • Usuario de almacén de datos en la nube
  • Permisos mínimos requeridos por el servicio Google Cloud Build para la cuenta de servicio de Cloud Build en el proyecto de Provisioning al descargar el disco de instrucciones de preparación en MCS:

     compute.disks.create
     compute.disks.delete
     compute.disks.get
     compute.disks.list
     compute.disks.setLabels
     compute.disks.use
     compute.disks.useReadOnly
     compute.images.get
     compute.images.list
     compute.images.useReadOnly
     compute.instances.create
     compute.instances.delete
     compute.instances.get
     compute.instances.getSerialPortOutput
     compute.instances.list
     compute.instances.setLabels
     compute.instances.setMetadata
     compute.instances.setServiceAccount
     compute.machineTypes.list
     compute.networks.get
     compute.networks.list
     compute.projects.get
     compute.subnetworks.list
     compute.subnetworks.use
     compute.subnetworks.useExternalIp
     compute.zoneOperations.get
     compute.zones.list
     iam.serviceAccounts.actAs
     logging.logEntries.create
     pubsub.topics.publish
     resourcemanager.projects.get
     source.repos.get
     source.repos.list
     storage.buckets.create
     storage.buckets.get
     storage.buckets.list
     storage.objects.create
     storage.objects.delete
     storage.objects.get
     storage.objects.list
     <!--NeedCopy-->
    

    Estos roles definidos por Google tienen los permisos que se indican anteriormente:

    • Cuenta de servicio de Cloud Build
    • Administrador de instancias de proceso
    • Usuario de cuenta de servicio
  • Permisos mínimos requeridos por el servicio Google Cloud Build para la cuenta de servicio de Cloud Compute en el proyecto de Provisioning al descargar el disco de instrucciones de preparación en MCS:

     resourcemanager.projects.get
     storage.objects.create
     storage.objects.get
     storage.objects.list
     <!--NeedCopy-->
    

    Estos roles definidos por Google tienen los permisos que se indican anteriormente:

    • Compute Network User
    • Storage Account User
    • Usuario de almacén de datos en la nube
  • Permisos adicionales requeridos por el servicio Google Cloud Build para la nube VPC compartida con la cuenta de servicio de Cloud Build en el proyecto de Provisioning al descargar el disco de instrucciones de preparación en MCS:

     compute.firewalls.list
     compute.networks.list
     compute.subnetworks.list
     compute.subnetworks.use
     resourcemanager.projects.get
     <!--NeedCopy-->
    

    Estos roles definidos por Google tienen los permisos que se indican anteriormente:

    • Compute Network User
    • Storage Account User
    • Usuario de almacén de datos en la nube
  • Permisos adicionales requeridos para Cloud Key Management Service (KMS) con la cuenta de servicio de Citrix Cloud en el proyecto de Provisioning:

     cloudkms.cryptoKeys.get
     cloudkms.cryptoKeys.list
     cloudkms.keyRings.get
     cloudkms.keyRings.list
     <!--NeedCopy-->
    

    Estos roles definidos por Google tienen los permisos que se indican anteriormente:

    • Compute KMS Viewer

Permisos generales

Estos son los permisos de la cuenta de servicio de Citrix Cloud en el proyecto Provisioning para todas las funciones disponibles en MCS. Estos permisos ofrecen la mejor compatibilidad en el futuro:

resourcemanager.projects.get
cloudbuild.builds.create
cloudbuild.builds.get
cloudbuild.builds.list
compute.acceleratorTypes.list
compute.diskTypes.get
compute.diskTypes.list
compute.disks.create
compute.disks.createSnapshot
compute.disks.delete
compute.disks.get
compute.disks.setLabels
compute.disks.use
compute.disks.useReadOnly
compute.firewalls.create
compute.firewalls.delete
compute.firewalls.list
compute.globalOperations.get
compute.images.create
compute.images.delete
compute.images.get
compute.images.list
compute.images.setLabels
compute.images.useReadOnly
compute.instanceTemplates.create
compute.instanceTemplates.delete
compute.instanceTemplates.get
compute.instanceTemplates.list
compute.instanceTemplates.useReadOnly
compute.instances.attachDisk
compute.instances.create
compute.instances.delete
compute.instances.detachDisk
compute.instances.get
compute.instances.list
compute.instances.reset
compute.instances.resume
compute.instances.setDeletionProtection
compute.instances.setLabels
compute.instances.setMetadata
compute.instances.setTags
compute.instances.start
compute.instances.stop
compute.instances.suspend
compute.instances.update
compute.instances.updateAccessConfig
compute.instances.updateDisplayDevice
compute.instances.updateSecurity
compute.instances.updateShieldedInstanceConfig
compute.instances.updateShieldedVmConfig
compute.machineTypes.get
compute.machineTypes.list
compute.networks.list
compute.networks.updatePolicy
compute.nodeGroups.list
compute.nodeTemplates.get
compute.projects.get
compute.regions.list
compute.snapshots.create
compute.snapshots.delete
compute.snapshots.list
compute.snapshots.setLabels
compute.snapshots.useReadOnly
compute.subnetworks.get
compute.subnetworks.list
compute.subnetworks.use
compute.subnetworks.useExternalIp
compute.zoneOperations.get
compute.zoneOperations.list
compute.zones.get
compute.zones.list
resourcemanager.projects.get
storage.buckets.create
storage.buckets.delete
storage.buckets.get
storage.buckets.list
storage.buckets.update
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
cloudkms.cryptoKeys.get
cloudkms.cryptoKeys.list
cloudkms.keyRings.get
cloudkms.keyRings.list
<!--NeedCopy-->

Qué hacer a continuación

Más información

Conexión con entornos de Google Cloud