Citrix DaaS

Conexão com ambientes de nuvem do Google

Create and manage connections descreve os assistentes que criam uma conexão. As informações a seguir abrangem detalhes específicos dos ambientes de nuvem do Google.

Nota:

Antes de criar uma conexão com os ambientes de nuvem do Google, você precisa primeiro concluir a configuração da sua conta de nuvem do Google como um local de recursos. Consulte Ambientes do Google Cloud.

Adicionar uma conexão

Na interface Full Configuration, siga as orientações em Criar uma conexão e recursos. A descrição a seguir orienta você para configurar uma conexão de hospedagem:

  1. Em Manage > Full Configuration, selecione Hosting no painel esquerdo.

  2. Selecione Add Connection and Resources na barra de ações.

  3. Na página Connection, selecione Create a new Connection e Citrix provisioning tools, depois selecione Next.

    • Zone name. Selecione a zona (equivalente a um local de recursos) em que você deseja que os recursos do host residam. As zonas são criadas automaticamente quando você cria um local de recursos e adiciona um Cloud Connector a ele. Para obter mais informações, consulte Zonas.
    • Connection type. Selecione Google Cloud no menu.
    • Service account key. Importe a chave contida no arquivo de credenciais do Google (.json). Para isso, localize o seu arquivo de credenciais, abra o arquivo com o Bloco de Notas (ou qualquer editor de texto) e copie o conteúdo. Depois disso, retorne à página Connection, selecione Import key, cole o conteúdo e selecione Save.
    • Service account ID. O campo é preenchido automaticamente com a informação da chave importada.
    • Connection name. Digite um nome para a conexão.
    • Route traffic through Citrix Cloud Connectors. Para rotear as solicitações de API através de um Citrix Cloud Connector disponível, marque essa caixa de seleção. Você também pode marcar a caixa de seleção Enable Google Cloud Build to use private pools para obter uma camada adicional de segurança.

      Como alternativa, você pode ativar esse recurso usando o PowerShell. Para obter mais informações, consulte Criar um ambiente seguro para o tráfego gerenciado do GCP.

    Nota:

    Essa opção está disponível somente quando há Citrix Cloud Connectors ativos em sua implantação. Atualmente, esse recurso não é suportado por Connector Appliances.

  4. Na página Region, selecione um nome de projeto no menu, selecione uma região que contenha os recursos que você deseja usar e, em seguida, selecione Next.

  5. Na página Network, digite um nome para os recursos, selecione uma rede virtual no menu, selecione um subconjunto e, em seguida, selecione Next. O nome do recurso ajuda a identificar a combinação de região e rede. As redes virtuais com o sufixo (Shared) anexado ao nome representam VPCs compartilhadas. Se você configurar uma função do IAM no nível da sub-rede para uma VPC compartilhada, somente sub-redes específicas da VPC compartilhada aparecem na lista de sub-redes.

    Nota:

    • O nome do recurso pode conter de 1 a 64 caracteres e não pode conter apenas espaços em branco ou os caracteres \ / ; : # . * ? = < > | [ ] { } " ' ( ) ' ).
  6. Na página Summary, confirme as informações e selecione Finish para sair da janela Add Connection and Resources.

Depois de criar a conexão e os recursos, a conexão e os recursos que você criou são listados. Para configurar a conexão, selecione a conexão e, em seguida, selecione a opção aplicável na barra de ações.

Da mesma forma, você pode excluir, renomear ou testar os recursos criados na conexão. Para fazer isso, selecione o recurso na conexão e, em seguida, selecione a opção aplicável na barra de ações.

URLs do ponto de extremidade de serviço

Você deve ter acesso às seguintes URLs:

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

Projetos do Google Cloud

Existem basicamente dois tipos de projetos do Google Cloud:

  • Projeto de provisionamento: nesse caso, a conta de administrador atual é proprietária das máquinas provisionadas no projeto. Esse projeto também é conhecido como projeto local.
  • Projeto de VPC compartilhada: projeto no qual máquinas criadas no projeto de provisionamento usam a VPC do projeto de VPC compartilhada. A conta de administrador usada para provisionar o projeto tem permissões limitadas nesse projeto – especificamente, somente permissões para usar a VPC.

Criar um ambiente seguro para o tráfego gerenciado do GCP

Você só pode permitir o acesso privado do Google aos seus projetos do Google Cloud. Essa implementação aumenta a segurança para manipular dados confidenciais. Para isso:

  1. Instale os Cloud Connectors na VPC onde você deseja aplicar os controles do serviço VPC. Consulte VPC Service Controls para obter mais informações.
  2. Adicione ProxyHypervisorTrafficThroughConnector em CustomProperties no caso de uma implantação do Citrix Cloud. Se você estiver usando um pool de workers privado, adicione UsePrivateWorkerPool em CustomProperties. Para obter informações sobre o pool de workers privado, consulte Visão geral dos pools privados.

Nota:

Atualmente, esse recurso não é suportado pelo Connector Appliance.

Requisitos para criar um ambiente seguro para o tráfego gerenciado do GCP

Os requisitos para criar um ambiente seguro para o tráfego gerenciado do GCP são:

  • Certifique-se de que a conexão de hospedagem esteja no modo de manutenção ao atualizar as propriedades personalizadas.
  • Para usar pools de workers privados, as seguintes alterações são necessárias:
    • Para a conta de serviço do Citrix Cloud, adicione as seguintes funções do IAM:
      • Cloud Build Service Account
      • Compute Instance Admin
      • Service Account User
      • Service Account Token Creator
      • Cloud Build WorkerPool Owner
    • Crie a conta de serviço do Citrix Cloud no mesmo projeto que você usa para criar uma conexão de hospedagem.
    • Configure zonas DNS para private.googleapis.com e gcr.io conforme descrito em Configuração do DNS.

      Zonas DNS para private-googleapis-com

      Zonas DNS para gcr.io

    • Configure a conversão de endereços de rede (NAT) privada ou use a conexão de serviço privada. Para obter mais informações, consulte Acessar APIs do Google por endpoints.

      Conexão de serviço privada

    • Se estiver usando uma VPC emparelhada, crie uma zona de peering no Cloud DNS para a VPC emparelhada. Para obter mais informações, consulte Criar uma zona de peering.

      Criar uma zona de peering

    • Nos controles de serviço da VPC, configure regras de saída Egress para que as APIs e as VMs possam se comunicar com a Internet. As regras de entrada Ingress são opcionais. Por exemplo:

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

Habilitar o proxy

Para ativar o proxy, defina as propriedades personalizadas da seguinte forma na conexão do host:

  1. Abra uma janela do PowerShell a partir do host do Delivery Controller ou use o Remote PowerShell SDK. Para obter mais informações sobre o Remote PowerShell SDK, consulte SDKs e APIs.
  2. Execute os seguintes comandos:

    1. Add-PSSnapin citrix*
    2. cd XDHyp:\Connections\
    3. dir
  3. Copie o CustomProperties da conexão para um bloco de notas.
  4. Anexe a configuração da propriedade da seguinte forma:

    • No caso de implantação na nuvem (usando pools públicos): anexe a configuração da propriedade <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True"/> a CustomProperties para habilitar o proxy. Por exemplo:

       <CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
       <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True"/>
       </CustomProperties>
       <!--NeedCopy-->
      

      Permita a regra de entrada na conta de serviço do Cloud Build no perímetro de serviço da VPC. Por exemplo:

       Ingress Rule 1
       From:
       Identities:
       <ProjectID>@cloudbuild.gserviceaccount.com
       Source > All sources allowed
       To:
       Projects =
       All projects
       Services =
       Service name: All services
       <!--NeedCopy-->
      

      Para obter informações sobre o perímetro do serviço da VPC, consulte Detalhes e configuração do perímetro de serviço.

    • No caso de um pool de workers privado em uma implantação na nuvem, anexe a configuração da propriedade <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True"/> e <Property xsi:type="StringProperty" Name="UsePrivateWorkerPool" Value="True"/> a CustomProperties para habilitar o proxy. Por exemplo:

       <CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
       <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True"/>
       <Property xsi:type="StringProperty" Name="UsePrivateWorkerPool" Value="True"/>
       </CustomProperties>
       <!--NeedCopy-->
      
  5. Na janela do PowerShell, atribua uma variável às propriedades personalizadas modificadas. Por exemplo: $customProperty = '<CustomProperties…</CustomProperties>'.
  6. Execute $gcpServiceAccount = "<ENTER YOUR SERVICE ACCOUNT EMAIL HERE>".
  7. Execute $gcpPrivateKey = "<ENTER YOUR SERVICE ACCOUNT PRIVATE KEY HERE AFTER REMOVING ALL INSTANCES OF \n >".
  8. Execute $securePassword = ConvertTo-SecureString $gcpPrivateKey -AsPlainText -Force.
  9. Execute o seguinte para atualizar uma conexão de host existente:

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

Sobre as permissões do GCP

Esta seção tem a lista completa das permissões do GCP. Use o conjunto completo de permissões, conforme indicado na seção, para que a funcionalidade funcione corretamente.

Criar uma conexão de host

  • Permissões mínimas necessárias para a conta de serviço do Citrix Cloud no projeto de provisionamento:

     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-->
    

    As seguintes funções definidas pelo Google têm as permissões listadas acima:

    • Compute Admin
    • Cloud Datastore User
  • Permissões adicionais necessárias para a VPC compartilhada para a conta de serviço do Citrix Cloud no projeto de VPC compartilhada:

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

    As seguintes funções definidas pelo Google têm as permissões listadas acima:

    • Compute Network User

Gerenciamento de energia de VMs

Permissões mínimas necessárias para a conta de serviço do Citrix Cloud no projeto de provisionamento:

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-->

As seguintes funções definidas pelo Google têm as permissões listadas acima:

  • Compute Admin
  • Cloud Datastore User

Criar, atualizar ou excluir VMs

  • Permissões mínimas necessárias para a conta de serviço do Citrix Cloud no projeto de provisionamento:

     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.get
     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-->
    

    As seguintes funções definidas pelo Google têm as permissões listadas acima:

    • Compute Admin
    • Storage Admin
    • Cloud Build Editor
    • Service Account User
    • Cloud Datastore User
  • Permissões adicionais necessárias para a VPC compartilhada para a conta de serviço do Citrix Cloud no projeto de VPC compartilhada para criar uma unidade de hospedagem usando VPC e sub-rede do projeto de VPC compartilhada:

     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-->
    

    As seguintes funções definidas pelo Google têm as permissões listadas acima:

    • Compute Network User
    • Cloud Datastore User
  • Permissões mínimas exigidas para a conta de serviço Cloud Build no projeto de provisionamento exigidas pelo serviço Google Cloud Build ao baixar o disco de instruções de preparação para o 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-->
    

    As seguintes funções definidas pelo Google têm as permissões listadas acima:

    • Cloud Build Service Account
    • Compute Instance Admin
    • Service Account User
  • Permissões mínimas exigidas para a conta do serviço Cloud Compute no projeto de provisionamento exigidas pelo serviço Google Cloud Build ao baixar o disco de instruções de preparação para o MCS:

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

    As seguintes funções definidas pelo Google têm as permissões listadas acima:

    • Compute Network User
    • Storage Account User
    • Cloud Datastore User
  • Permissões adicionais necessárias para a VPC compartilhada para a conta de serviço do Cloud Build no projeto de Provisioning exigido pelo serviço Google Cloud Build ao baixar o disco de instruções de preparação para o MCS:

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

    As seguintes funções definidas pelo Google têm as permissões listadas acima:

    • Compute Network User
    • Storage Account User
    • Cloud Datastore User
  • Permissões adicionais necessárias para o Cloud Key Management Service (KMS) para a conta de serviço do Citrix Cloud no projeto de provisionamento:

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

    As seguintes funções definidas pelo Google têm as permissões listadas acima:

    • Compute KMS Viewer

Permissões gerais

A seguir estão as permissões para a conta do Citrix Cloud Service no projeto Provisioning para todos os recursos suportados no MCS. Essas permissões oferecem a melhor compatibilidade daqui para frente:

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.get
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-->

O que fazer a seguir

Mais informações

Conexão com ambientes de nuvem do Google