Citrix Virtual Apps and Desktops

Ambientes do Google Cloud

O Citrix Virtual Apps and Desktops permite provisionar e gerenciar máquinas no Google Cloud. Este artigo orienta você no uso do Machine Creation Services (MCS) para provisionar máquinas virtuais na implantação do serviço Citrix Virtual Apps ou Citrix Virtual Desktops.

Requisitos

  • Conta do Citrix Cloud. O recurso descrito neste artigo está disponível somente no Citrix Cloud.
  • Assinatura do Citrix DaaS. Para obter detalhes, consulte Introdução.
  • Um projeto do Google Cloud. O projeto armazena todos os recursos de computação associados ao catálogo de máquinas. Pode ser um projeto existente ou um projeto novo.
  • Habilite quatro APIs no seu projeto do Google Cloud. Para obter detalhes, consulte Habilitar as APIs do Google Cloud.
  • Conta de serviço do Google Cloud. A conta de serviço é autenticada no Google Cloud para permitir o acesso ao projeto. Para obter detalhes, consulte Configurar a conta de serviço do Google Cloud.
  • Ative o acesso privado do Google. Para obter detalhes, consulte Ativar o acesso privado do Google.

Habilitar as APIs do Google Cloud

Para usar a funcionalidade do Google Cloud por meio da interface Full Configuration do Citrix Virtual Apps and Desktops, ative estas APIs no seu projeto do Google Cloud:

  • API do Compute Engine
  • API do Cloud Resource Manager
  • API do Identity and Access Management (IAM)
  • API do Cloud Build

No console do Google Cloud, conclua estas etapas:

  1. No menu superior esquerdo, selecione APIs and Services > Dashboard.

    Imagem da seleção de APIs and Services Dashboard

  2. Na tela Dashboard, confirme que a API de Compute Engine está ativada. Caso contrário, siga estes passos:

    1. Navegue para APIs and Services > Library.

      Imagem da biblioteca de APIs e serviços

    2. Na caixa de pesquisa, digite Compute Engine.

    3. Nos resultados da pesquisa, selecione Compute Engine API.

    4. Na página Compute Engine API, selecione Enable.

  3. Ative a API do Cloud Resource Manager.

    1. Navegue para APIs and Services > Library.

    2. Na caixa de pesquisa, digite Cloud Resource Manager.

    3. Nos resultados da pesquisa, selecione Cloud Resource Manager API.

    4. Na página Cloud Resource Manager API, selecione Enable. O status da API é exibido.

  4. Da mesma forma, ative Identity and Access Management (IAM) API e Cloud Build API.

Você também pode usar o Google Cloud Shell para ativar as APIs. Para isso:

  1. Abra o Google Console e carregue o Cloud Shell.
  2. Execute os quatro comandos a seguir no Cloud Shell:

    • gcloud services enable compute.googleapis.com
    • gcloud services enable cloudresourcemanager.googleapis.com
    • gcloud services enable iam.googleapis.com
    • gcloud services enable cloudbuild.googleapis.com
  3. Clique em Authorize se o Cloud Shell solicitar.

Configurar e atualizar contas de serviço

O Citrix Cloud usa três contas de serviço separadas no projeto do Google Cloud:

  • Conta de serviço do Citrix Cloud: essa conta de serviço permite que o Citrix Cloud acesse o projeto do Google, provisione e gerencie máquinas. A conta do Google Cloud é autenticada no Citrix Cloud usando uma chave gerada pelo Google Cloud.

    Você deve criar essa conta de serviço manualmente.

    Você pode identificar essa conta de serviço com um endereço de e-mail. Por exemplo, <my-service-account>@<project-id>.iam.gserviceaccount.com.

    Cada conta (pessoal ou de serviço) tem várias funções que definem o gerenciamento do projeto. Conceda as seguintes funções a essa conta de serviço:

    • Compute Admin
    • Storage Admin
    • Cloud Build Editor
    • Service Account User
    • Cloud Datastore User
  • Conta de serviço Cloud Build: essa conta de serviço é provisionada automaticamente depois que você ativa todas as APIs mencionadas em Habilitar as APIs do Google Cloud.

    Você pode identificar essa conta de serviço pelo endereço de e-mail que começa com ID do projeto e a palavra cloudbuild. Por exemplo, <project-id>@cloudbuild.gserviceaccount.com.

    Conceda as seguintes funções a essa conta de serviço:

    • Cloud Build Service Account
    • Compute Instance Admin
    • Service Account User
  • Conta de serviço do Cloud Compute: essa conta de serviço é adicionada pelo Google Cloud às instâncias criadas no Google Cloud quando a API do Compute é ativada. Essa conta tem a função de editor básico do IAM para realizar as operações. No entanto, se você excluir a permissão padrão para ter um controle mais granular, deverá adicionar a função Storage Admin que exige as seguintes permissões:

    • resourcemanager.projects.get
    • storage.objects.create
    • storage.objects.get
    • storage.objects.list

    Você pode identificar essa conta de serviço pelo endereço de e-mail que começa com ID do projeto e a palavra compute. Por exemplo, <project-id>-compute@developer.gserviceaccount.com.

Criar uma conta de serviço do Citrix Cloud

Para criar uma conta de serviço do Citrix Cloud, siga estas etapas:

  1. No console do Google Cloud, navegue para IAM & Admin > Service accounts.
  2. Na página Service accounts, selecione CREATE SERVICE ACCOUNT.
  3. Na página Create service account, insira as informações necessárias e selecione CREATE AND CONTINUE.
  4. Na página Grant this service account access to project, clique no menu suspenso Select a role e selecione as funções necessárias. Clique em +ADD ANOTHER ROLE se quiser adicionar mais funções.

    Nota:

    Ative todas as APIs para obter a lista completa de funções disponíveis ao criar uma nova conta de serviço.

  5. Clique em CONTINUE.
  6. Na página Grant users access to this service account, adicione usuários ou grupos para conceder acesso para realizarem ações na conta de serviço.
  7. Clique em DONE.
  8. Navegue até o console principal do IAM.
  9. Identifique a conta de serviço criada.
  10. Confirme que as funções foram atribuídas com sucesso.

Considerações:

Ao criar a conta de serviço, considere o seguinte:

  • As etapas Grant this service account access to project e Grant users access to this service account são opcionais. Se você optar por ignorar essas etapas de configuração opcionais, a conta de serviço recém-criada não será exibida na página IAM & Admin > IAM.

  • Para exibir funções associadas a uma conta de serviço, adicione as funções sem ignorar as etapas opcionais. Esse processo garante que as funções apareçam para a conta de serviço configurada.

Chave da conta de serviço do Citrix Cloud

Ao criar uma conta de serviço, existe a opção de criar uma chave para a conta. Você precisa dessa chave ao criar uma conexão no Citrix DaaS. A chave está contida em um arquivo de credencial (.json). O arquivo é baixado automaticamente e salvo na pasta Downloads depois que você cria a chave. Ao criar a chave, certifique-se de definir o tipo de chave como JSON. Caso contrário, a interface Full Configuration do Citrix não pode analisá-la.

Dica:

Crie chaves usando a página Service accounts no console do Google Cloud. Recomendamos que você altere as chaves regularmente por motivos de segurança. Você pode fornecer novas chaves para o aplicativo Citrix Virtual Apps and Desktops editando uma conexão existente do Google Cloud.

Adicionar funções à conta de serviço do Citrix Cloud

Para adicionar funções à conta de serviço do Citrix Cloud:

  1. No console do Google Cloud, navegue para IAM & Admin > IAM.
  2. Na página IAM > PERMISSIONS, localize a conta de serviço que você criou, identificável pelo endereço de e-mail.

    Por exemplo, <my-service-account>@<project-id>.iam.gserviceaccount.com

  3. Selecione o ícone de lápis para editar o acesso à entidade de segurança da conta de serviço.
  4. Na página Edit access to “project-id” da opção de entidade de segurança selecionada, selecione ADD ANOTHER ROLE para adicionar as funções necessárias à sua conta de serviço, uma por uma, e selecione SAVE.

Adicionar funções à conta de serviço do Cloud Build

Para adicionar funções à conta de serviço do Cloud Build:

  1. No console do Google Cloud, navegue para IAM & Admin > IAM.
  2. Na página do IAM, localize a conta de serviço do Cloud Build, identificável pelo endereço de e-mail que começa com ID do projeto e a palavra cloudbuild.

    Por exemplo, <project-id>@cloudbuild.gserviceaccount.com

  3. Selecione o ícone de lápis para editar as funções da conta do Cloud Build.
  4. Na página Edit access to “project-id” da opção de entidade de segurança selecionada, selecione ADD ANOTHER ROLE para adicionar as funções necessárias à sua conta de serviço Cloud Build, uma por uma, e selecione SAVE.

    Nota:

    Habilite todas as APIs para obter a lista completa de funções.

Gerenciamento do bucket e permissões de armazenamento

O Citrix DaaS melhora o processo de relatar falhas de compilação na nuvem do serviço Google Cloud. Esse serviço executa compilações no Google Cloud. O Citrix DaaS cria um intervalo de armazenamento chamado citrix-mcs-cloud-build-logs-{region}-{5 random characters} onde os serviços do Google Cloud capturam informações de registro de compilação. Uma opção é definida nesse bucket que exclui o conteúdo após um período de 30 dias. Esse processo exige que a conta de serviço usada para a conexão tenha as permissões do Google Cloud definidas como storage.buckets.update. Se a conta de serviço não tiver essa permissão, o Citrix DaaS ignorará os erros e prosseguirá com o processo de criação do catálogo. Sem essa permissão, o tamanho dos logs de compilação aumenta e exigem limpeza manual.

Ativar o acesso privado do Google

Quando uma VM não tem um endereço IP externo atribuído à sua interface de rede, os pacotes são enviados apenas para outros destinos de endereços IP internos. Quando você ativa o acesso privado, a VM se conecta ao conjunto de endereços IP externos usados pela API do Google e serviços associados.

Nota:

Independentemente de o acesso privado do Google estar ativado, todas as VMs com e sem endereços IP públicos devem ser capazes de acessar as APIs públicas do Google, especialmente se dispositivos de rede de terceiros tiverem sido instalados no ambiente.

Para garantir que uma VM na sua sub-rede possa acessar as APIs do Google sem um endereço IP público para provisionamento do MCS:

  1. No Google Cloud, acesse a configuração da rede VPC.
  2. Na tela Subnet details, ative Private Google access.

Acesso privado do Google

Para obter mais informações, consulte Como configurar o acesso privado do Google.

Importante:

Se a sua rede está configurada para impedir o acesso da VM à Internet, certifique-se de que a sua organização assuma os riscos associados à ativação do acesso privado do Google para a sub-rede à qual a VM está conectada.

Adicionar uma conexão

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

    • Connection type. Selecione Google Cloud no menu.
    • Connection name. Digite um nome para a conexão.
  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.

Preparar uma instância de VM mestre e um disco permanente

Dica:

Disco permanente é o termo do Google Cloud para disco virtual.

Para preparar a sua instância de VM mestre, crie e configure uma instância de VM com propriedades que correspondam à configuração desejada para as instâncias do VDA clonadas no seu catálogo de máquinas planejado. A configuração não se aplica somente ao tamanho e ao tipo da instância. Também inclui atributos de instância, como metadados, tags, atribuições de GPU, marcas de rede e propriedades da conta de serviço.

Como parte do processo, o MCS usa sua instância de VM mestre para criar o modelo de instância do Google Cloud. O modelo de instância é então usado para criar as instâncias do VDA clonadas que compõem o catálogo de máquinas. As instâncias clonadas herdam as propriedades (exceto as propriedades de VPC, sub-rede e disco permanente) da instância de VM mestre a partir da qual o modelo de instância foi criado.

Depois de configurar as propriedades da instância de VM mestre de acordo com suas especificações, inicie a instância e prepare o disco permanente para a instância.

Recomendamos que você crie manualmente um instantâneo do disco. Isso permite que você use uma convenção de nomenclatura significativa para controlar as versões, oferece mais opções para gerenciar versões anteriores da sua imagem mestre e economiza tempo na criação do catálogo de máquinas. Se você não criar o seu próprio instantâneo, o MCS cria um instantâneo temporário para você (que é apagado no final do processo de provisionamento).

Criar um catálogo de máquinas

Nota:

Crie os seus recursos antes de criar um catálogo de máquinas. Use as convenções de nomenclatura estabelecidas pelo Google Cloud ao configurar catálogos de máquinas. Consulte Diretrizes de nomenclatura de bucket e objeto para obter mais informações.

Siga as orientações em Criar catálogos de máquinas. Atualmente, o Studio não oferece suporte à criação de catálogos no Google Cloud. Use o PowerShell em seu lugar.

Gerenciar catálogo de máquinas

Para adicionar máquinas a um catálogo, atualizar máquinas e reverter uma atualização, consulte Gerenciar catálogos de máquinas.

Gerenciamento de energia

O Citrix DaaS permite o gerenciamento de energia das máquinas do Google Cloud. Use o nó Search no painel de navegação para localizar a máquina cuja energia você deseja gerenciar. As seguintes ações de energia estão disponíveis:

  • Delete
  • Start
  • Restart
  • Force Restart
  • Shut Down
  • Force Shutdown
  • Add to Delivery Group
  • Manage Tags
  • Turn On Maintenance Mode

Você também pode gerenciar as máquinas do Google Cloud usando Autoscale. Para isso, adicione as máquinas do Google Cloud a um grupo de entrega e ative Autoscale para o grupo de entrega. Para obter mais informações sobre Autoscale, consulte Autoscale.

Proteger a exclusão acidental da máquina

O Citrix DaaS permite proteger os recursos do MCS no Google Cloud para evitar exclusão acidental. Configure a VM provisionada definindo o sinalizador deletionProtection como TRUE.

Por padrão, as VMs provisionadas por meio do plug-in do Google Cloud ou MCS são criadas com o InstanceProtection ativado. A implementação é aplicável a catálogos persistentes e não persistentes. Os catálogos não persistentes são atualizados quando as instâncias são recriadas a partir do modelo. Para máquinas persistentes existentes, você pode definir o sinalizador no console do Google Cloud. Para obter mais informações sobre como definir o sinalizador, consulte o site de documentação do Google. Novas máquinas adicionadas a catálogos persistentes são criadas com deletionProtection habilitado.

Se você tentar excluir uma instância de VM para a qual definiu o sinalizador deletionProtection, a solicitação falhará. No entanto, se você receber a permissão compute.instances.setDeletionProtection ou a atribuição da função Compute Admin do IAM, poderá redefinir o sinalizador para permitir que o recurso seja excluído.

Importar máquinas do Google Cloud criadas manualmente

Você pode criar uma conexão com o Google Cloud e a seguir criar um catálogo contendo máquinas do Google Cloud. Em seguida, você pode ligar e desligar manualmente as máquinas do Google Cloud por meio do Citrix DaaS. Com esse recurso, você pode:

  • Importar máquinas com SO multissessão do Google Cloud criadas manualmente para um catálogo de máquinas do Citrix Virtual Apps and Desktops.
  • Remover as máquinas com SO multissessão do Google Cloud criadas manualmente de um catálogo do Citrix Virtual Apps and Desktops.
  • Usar os recursos existentes de gerenciamento de energia do Citrix Virtual Apps and Desktops para gerenciar a energia das máquinas com SO multissessão Windows do Google Cloud. Por exemplo, defina um agendamento de reinicialização para essas máquinas.

Essa funcionalidade não requer alterações no fluxo de trabalho de provisionamento existente do Citrix Virtual Apps and Desktops nem a remoção de qualquer recurso existente. Recomendamos que você use o MCS para provisionar máquinas na interface Full Configuration do Citrix DaaS, em vez de importar máquinas do Google Cloud criadas manualmente.

Nuvem privada virtual compartilhada

Nuvens privadas virtuais compartilhadas (VPCs) compreendem um projeto host, a partir do qual as sub-redes compartilhadas são disponibilizadas, e um ou mais projetos de serviço que usam o recurso. As VPCs compartilhadas são boas opções para instalações maiores porque fornecem controle, uso e administração centralizados dos recursos corporativos compartilhados do Google Cloud. Para obter mais informações, consulte o site de documentação do Google.

Com esse recurso, o MCS (Machine Creation Services) oferece suporte ao provisionamento e ao gerenciamento de catálogos de máquinas implantados em VPCs compartilhadas. Esse suporte, que é funcionalmente equivalente ao suporte fornecido atualmente nas VPCs locais, difere em duas áreas:

  1. Você deve conceder permissões extras para a conta de serviço usada para criar a conexão de host. Esse processo permite que o MCS acesse e use os recursos da VPC compartilhada.
  2. Você deve criar duas regras de firewall, uma para entrada e outra para saída. Essas regras de firewall são usadas durante o processo de masterização de imagens.

Novas permissões necessárias

É necessária uma conta de serviço do Google Cloud com permissões específicas ao criar a conexão do host. Essas permissões adicionais devem ser concedidas a todas as contas de serviço usadas para criar conexões de host baseadas em VPC compartilhada.

Dica:

Essas permissões adicionais não são novas no Citrix DaaS. Elas são usadas para facilitar a implementação de VPCs locais. Com as VPCs compartilhadas, essas permissões adicionais permitem o acesso a outros recursos de VPC compartilhadas.

No máximo quatro permissões extras devem ser concedidas à conta de serviço associada à conexão de host para aceitar à VPC compartilhada:

  1. compute.firewalls.list – Essa permissão é obrigatória. Permite que o MCS recupere a lista de regras de firewall presentes na VPC compartilhada.
  2. compute.networks.list – Essa permissão é obrigatória. Permite que o MCS identifique as redes VPC compartilhadas disponíveis para a conta de serviço.
  3. compute.subnetworks.list – Essa permissão é opcional, dependendo de como você usa as VPCs. Permite que o MCS identifique as sub-redes nas VPCs compartilhadas visíveis. Essa permissão já é necessária ao usar VPCs locais, mas também deve ser atribuída no projeto host da VPC compartilhada.
  4. compute.subnetworks.use – Essa permissão é opcional, dependendo de como você usa as VPCs. É necessário usar recursos de sub-rede nos catálogos de máquinas provisionadas. Essa permissão já é necessária para usar VPCs locais, mas também deve ser atribuída no projeto host da VPC compartilhada.

Ao usar essas permissões, considere que existem abordagens diferentes com base no tipo de permissão usada para criar o catálogo de máquinas:

  • Permissão no nível do projeto:
    • Permite o acesso a todas as VPCs compartilhadas dentro do projeto host.
    • Requer que as permissões 3 e 4 sejam atribuídas à conta de serviço.
  • Permissão no nível da sub-rede:
    • Permite o acesso a sub-redes específicas dentro da VPC compartilhada.
    • As permissões 3 e 4 são intrínsecas à atribuição de nível de sub-rede e, portanto, não precisam ser atribuídas diretamente à conta de serviço.

Selecione a abordagem que corresponde às suas necessidades organizacionais e aos padrões de segurança.

Dica:

Para obter mais informações sobre as diferenças entre as permissões no nível do projeto e no nível da sub-rede, consulte a documentação do Google Cloud.

Regras de firewall

Durante a preparação de um catálogo de máquinas, uma imagem de máquina é preparada para servir como o disco do sistema de imagem mestre para o catálogo. Quando esse processo ocorre, o disco é conectado temporariamente a uma máquina virtual. Essa VM deve ser executada em um ambiente isolado que impeça todo o tráfego de rede de entrada e de saída. Isso é feito por meio de um par de regras de firewall deny-all: uma para tráfego de entrada e outra para tráfego de saída. Ao usar os VCPs locais do Google Cloud, o MCS cria esse firewall na rede local e o aplica à máquina para masterização. Após a conclusão da masterização, a regra de firewall é removida da imagem.

Recomendamos manter um número mínimo de novas permissões necessárias para usar VPCs compartilhadas. As VPCs compartilhadas são recursos corporativos de nível superior e normalmente têm protocolos de segurança mais rígidos. Por esse motivo, crie um par de regras de firewall no projeto host nos recursos da VPC compartilhada, uma para entrada e outra para saída. Atribua a maior prioridade a elas. Aplique uma nova tag de destino a cada uma das regras, usando o seguinte valor:

citrix-provisioning-quarantine-firewall

Quando o MCS cria ou atualiza um catálogo de máquinas, ele procura regras de firewall que contenham essa tag de destino. Em seguida, ele examina as regras quanto à sua exatidão e as aplica à máquina usada para preparar a imagem mestre para o catálogo. Se as regras de firewall não forem encontradas ou se as regras forem encontradas, mas as regras ou suas prioridades estiverem incorretas, uma mensagem semelhante à seguinte será exibida:

"Unable to find valid INGRESS and EGRESS quarantine firewall rules for VPC <name> in project <project>. " Please ensure you have created 'deny all' firewall rules with the network tag 'citrix-provisioning-quarantine-firewall' and proper priority." "Refer to Citrix Documentation for details."

Configurar a VPC compartilhada

Antes de adicionar a VPC compartilhada como uma conexão de host na interface Full Configuration do Citrix DaaS, conclua as etapas a seguir para adicionar contas de serviço do projeto que você pretende provisionar:

  1. Crie uma função do IAM.
  2. Adicione a conta de serviço usada para criar uma conexão de host CVAD à função do IAM do projeto host da VPC compartilhada.
  3. Adicione a conta de serviço do Cloud Build do projeto que você pretende provisionar à função do IAM do projeto host da VPC compartilhada.
  4. Crie regras de firewall.

Crie uma função do IAM

Determine o nível de acesso da função — acesso no nível do projeto ou um modelo mais restrito usando o acesso no nível da sub-rede.

Acesso no nível do projeto para a função do IAM. Para a função do IAM no nível do projeto, inclua as seguintes permissões:

  • compute.firewalls.list
  • compute.networks.list
  • compute.subnetworks.list
  • compute.subnetworks.use

Para criar uma função do IAM no nível do projeto:

  1. No console do Google Cloud, navegue para IAM & Admin > Roles.
  2. Na página Roles, selecione CREATE ROLE.
  3. Na página Create Role, especifique o nome da função. Selecione ADD PERMISSIONS.
    1. Na página Add permissions, adicione permissões à função, individualmente. Para adicionar uma permissão, digite o nome da permissão no campo Filter table. Selecione a permissão e, em seguida, selecione ADD.
    2. Selecione CREATE.

Subnet-level IAM role. Essa função omite a adição das permissões compute.subnetworks.list e compute.subnetworks.use depois de selecionar CREATE ROLE. Para esse nível de acesso do IAM, as permissões compute.firewalls.list e compute.networks.list devem ser aplicadas à nova função.

Para criar uma função do IAM no nível da sub-rede:

  1. No console do Google Cloud, navegue para VPC network > Shared VPC. A página Shared VPC é exibida, mostrando as sub-redes das redes VPC compartilhadas que o projeto host contém.
  2. Na página Shared VPC, selecione a sub-rede que deseja acessar.
  3. No canto superior direito, selecione ADD MEMBER para adicionar uma conta de serviço.
  4. Na página Add members, conclua estas etapas:
    1. No campo New members, digite o nome da sua conta de serviço e selecione a sua conta de serviço no menu.
    2. Selecione o campo Select a role e depois Compute Network User.
    3. Selecione SAVE.
  5. No console do Google Cloud, navegue para IAM & Admin > Roles.
  6. Na página Roles, selecione CREATE ROLE.
  7. Na página Create Role, especifique o nome da função. Selecione ADD PERMISSIONS.
    1. Na página Add permissions, adicione permissões à função, individualmente. Para adicionar uma permissão, digite o nome da permissão no campo Filter table. Selecione a permissão e, em seguida, selecione ADD.
    2. Selecione CREATE.

Adicionar uma conta de serviço à função do IAM do projeto host

Depois de criar uma função do IAM, siga estas etapas para adicionar uma conta de serviço ao projeto host:

  1. No console do Google Cloud, navegue até o projeto host e vá para IAM & Admin > IAM.
  2. Na página IAM, selecione ADD para adicionar uma conta de serviço.
  3. Na página Add members:
    1. No campo New members, digite o nome da sua conta de serviço e selecione a sua conta de serviço no menu.
    2. Selecione um campo de função, digite a função do IAM que você criou e, em seguida, selecione a função no menu.
    3. Selecione SAVE.

Agora, a conta de serviço já está configurada para o projeto host.

Adicionar a conta de serviço do Cloud Build à VPC compartilhada

Cada assinatura do Google Cloud tem uma conta de serviço que tem, como nome, o número do ID do projeto, seguido por cloudbuild.gserviceaccount. Por exemplo: 705794712345@cloudbuild.gserviceaccount.

Você pode determinar qual é o número do ID do projeto selecionando Home e Dashboard no console do Google Cloud:

Painel de navegação do console do Google Cloud

Na tela, procure Project Number abaixo da área Project Info.

Execute as etapas a seguir para adicionar a conta de serviço do Cloud Build à VPC compartilhada:

  1. No console do Google Cloud, navegue até o projeto host e vá para IAM & Admin > IAM.
  2. Na página Permissions, selecione ADD para adicionar uma conta.
  3. Na página Add members, conclua estas etapas:
    1. No campo New members, digite o nome da conta de serviço do Cloud Build e selecione a sua conta de serviço no menu.
    2. Selecione o campo Select a role, digite Computer Network User e, em seguida, selecione a função no menu.
    3. Selecione SAVE.

Criar regras de firewall

Como parte do processo de masterização, o MCS copia a imagem da máquina selecionada e a usa para preparar o disco do sistema de imagem mestre para o catálogo. Durante a masterização, o MCS anexa o disco a uma máquina virtual temporária, que executa scripts de preparação. Essa VM deve ser executada em um ambiente isolado que proíba todo o tráfego de rede de entrada e saída. Para criar um ambiente isolado, o MCS exige duas regras de firewall deny all (uma regra de entrada e uma regra de saída). Portanto, crie duas regras de firewall em Host Project da seguinte forma:

  1. No console do Google Cloud, navegue até o projeto host e, em seguida, para VPC network > Firewall.
  2. Na página Firewall, selecione CREATE FIREWALL RULE.
  3. Na página Create a firewall rule, preencha estes dados:
    • Name. Digite um nome para a regra.
    • Network. Selecione a rede VPC compartilhada à qual a regra de firewall de entrada se aplica.
    • Priority. Quanto menor for o valor, maior será a prioridade da regra. Recomendamos um valor pequeno (por exemplo, 10).
    • Direction of traffic. Selecione Ingress.
    • Action on match. Selecione Deny.
    • Targets. Use o padrão, Specified target tags.
    • Target tags. Digite citrix-provisioning-quarantine-firewall.
    • Source filter. Use o padrão, IP ranges.
    • Source IP ranges. Digite um intervalo que corresponda a todo o tráfego. Digite 0.0.0.0/0.
    • Protocols and ports. Selecione Deny all.
  4. Selecione CREATE para criar a regra.
  5. Repita as etapas de 1 a 4 para criar outra regra. Em Direction of traffic, selecione Egress.

Adicionar uma conexão

Depois de adicionar as interfaces de rede à instância do Cloud Connector, adicione uma conexão.

Habilitar a seleção de zona

O Citrix Virtual Apps and Desktops suporta a seleção de zona. Com a seleção de zona, você especifica as zonas nas quais deseja criar as VMs. Com a seleção de zona, os administradores podem colocar nós de locatário único nas zonas de sua escolha. Para configurar a locação única, você deve fazer o seguinte no Google Cloud:

  • Reservar um nó de locatário único no Google Cloud
  • Criar a imagem mestre do VDA

Como reservar um nó de locatário único no Google Cloud

Para reservar um nó de locatário único, consulte a documentação do Google Cloud.

Importante:

Um modelo de nó é usado para indicar as características de desempenho do sistema reservado no grupo de nós. Essas características incluem o número de vGPUs, a quantidade de memória alocada para o nó e o tipo de máquina usado para máquinas criadas no nó. Para obter mais informações, consulte a documentação do Google Cloud.

Criar a imagem mestre do VDA

Para implantar máquinas no nó de locatário único com sucesso, você precisa executar etapas extras ao criar uma imagem de VM mestre. As instâncias de máquina no Google Cloud têm uma propriedade chamada node affinity labels. As instâncias usadas como imagens mestre para catálogos implantados no nó de locatário único exigem um node affinity label que corresponda ao nome do target node group. Para isso, tenha em mente o seguinte:

Nota:

Se você pretende usar a locação única com uma VPC compartilhada, consulte Nuvem privada virtual compartilhada.

Definir um rótulo de afinidade de nó ao criar uma instância

Para definir o rótulo de afinidade do nó:

  1. No console do Google Cloud, navegue até Compute Engine > VM instances.

  2. Na página VM instances, selecione Create instance.

  3. Na página Instance creation, digite ou configure a informação necessária e selecione management, security, disks, networking, sole tenancy para abrir o painel de configurações.

  4. Na guia Sole tenancy, selecione Browse para visualizar os grupos de nós disponíveis no projeto atual. A página Sole-tenant node é exibida, mostrando uma lista de grupos de nós disponíveis.

  5. Na página Sole-tenant node, selecione o grupo de nós aplicável na lista e selecione Select para voltar à guia Sole tenancy. O campo de rótulos de afinidade do nós é preenchido com as informações selecionadas. Essa configuração garante que os catálogos de máquinas criados a partir da instância sejam implantados no grupo de nós selecionado.

  6. Selecione Create para criar a instância.

Definir um rótulo de afinidade de nó para uma instância existente

Para definir o rótulo de afinidade do nó:

  1. Na janela de terminal do Google Cloud Shell, use o comando gcloud compute instances para definir um rótulo de afinidade de nó. Inclua as seguintes informações no comando gcloud:

    • Nome da VM. Por exemplo, use uma VM existente chamada s*2019-vda-base.*
    • Nome do grupo de nós. Use o nome do grupo de nós que você criou anteriormente. Por exemplo, mh-sole-tenant-node-group-1.
    • A zona em que a instância reside. Por exemplo, a VM reside em *us-east-1b* zone.

    Por exemplo, digite o seguinte comando na janela do terminal:

    • gcloud compute instances set-scheduling "s2019-vda-base" --node-group="mh-sole-tenant-node-group-1" --zone="us-east1-b"

    Para obter mais informações sobre o comando gcloud compute instances, consulte a documentação do Google Developer Tools em https://cloud.google.com/sdk/gcloud/reference/beta/compute/instances/set-scheduling.

  2. Navegue até a página VM instance details da instância e verifique se o campo Node Affinities é preenchido com o rótulo.

Criar um catálogo de máquinas

Depois de definir o rótulo de afinidade do nó, configure o catálogo de máquinas.

Preview: Usar chaves de criptografia gerenciadas pelo cliente (CMEK)

Você pode usar chaves de criptografia gerenciadas pelo cliente (CMEK) para catálogos do MCS. Ao usar essa funcionalidade, você atribui a função CryptoKey Encrypter/Decrypter do serviço Key Management Service do Google Cloud ao agente de serviço do Compute Engine. A conta Citrix DaaS deve ter as permissões corretas no projeto em que a chave está armazenada. Consulte Ajudar a proteger recursos usando chaves do Cloud KMS para obter mais informações.

Seu agente de serviço do Compute Engine está no seguinte formato: service-<Project _Number>@compute-system.iam.gserviceaccount.com. Esse formulário é diferente da conta de serviço padrão do Compute Engine.

Nota:

Essa conta de serviço do Compute Engine talvez não apareça na tela IAM Permissions do Google Console. Nesse caso, use o comando gcloud conforme descrito em Ajudar a proteger recursos usando chaves do Cloud KMS.

Atribuir permissões à conta Citrix DaaS

As permissões do Google Cloud KMS podem ser configuradas de várias maneiras. Você pode fornecer permissões de KMS no nível do projeto ou permissões de KMS no nível do recurso. Consulte Permissões e funções para obter mais informações.

Permissões no nível do projeto

Uma opção é fornecer à conta Citrix DaaS permissões no nível do projeto para navegar pelos recursos do Cloud KMS. Para isso, crie uma função personalizada e adicione as seguintes permissões:

  • cloudkms.keyRings.list
  • cloudkms.keyRings.get
  • cloudkms.cryptokeys.list
  • cloudkms.cryptokeys.get

Atribua essa função personalizada à sua conta Citrix DaaS. Isso permite que você navegue pelas chaves regionais no projeto relevante no inventário.

Permissões de nível do recurso

Na outra opção, de permissões no nível do recurso, no console do Google Cloud, navegue até a cryptoKey que você usa para o provisionamento de MCS. Adicione uma conta Citrix DaaS a um keyring ou chave que você usa para provisionamento de catálogo.

Dica:

Com essa opção, você não pode procurar chaves regionais para o seu projeto no inventário porque a conta do Citrix DaaS não tem permissões de lista de nível do projeto nos recursos do Cloud KMS. No entanto, você ainda pode provisionar um catálogo usando o CMEK especificando o cryptoKeyId correto nas propriedades personalizadas ProvScheme, como descrito abaixo.

Provisionar com CMEK usando propriedades personalizadas

Ao criar o seu esquema de provisionamento via PowerShell, especifique uma propriedade CryptoKeyId em ProvScheme CustomProperties. Por exemplo:

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

cryptoKeyId deve ser especificada no seguinte formato:

projectId:location:keyRingName:cryptoKeyName

Por exemplo, se você quiser usar a chave my-example-key no keyring my-example-key-ring na região us-east1 e no projeto com ID my-example-project-1, suas configurações personalizadas ProvScheme serão semelhantes a:

'<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Property xsi:type="StringProperty" Name="CryptoKeyId" Value="my-example-project-1:us-east1:my-example-key-ring:my-example-key" />
</CustomProperties>'
<!--NeedCopy-->

Todas as imagens e discos provisionados do MCS relacionados a esse esquema de provisionamento usam essa chave de criptografia gerenciada pelo cliente.

Dica:

Se você usar chaves globais, o local das propriedades do cliente deverá indicar global e não o nome da região, que no exemplo acima é us-east1. Por exemplo: <Property xsi:type="StringProperty" Name="CryptoKeyId" Value="my-example-project-1:global:my-example-key-ring:my-example-key" />.

Rotação de chaves gerenciadas pelo cliente

O Google Cloud não é compatível com a rotação de chaves em imagens ou discos permanentes existentes. Depois que uma máquina é provisionada, ela é vinculada à versão da chave em uso no momento em que foi criada. No entanto, uma nova versão da chave pode ser criada, e essa nova chave é usada para máquinas recém-provisionadas ou recursos criados quando um catálogo é atualizado com uma nova imagem mestre.

Considerações importantes sobre keyrings

Os keyrings não podem ser renomeados ou excluídos. Além disso, você pode incorrer em encargos imprevistos ao configurá-los. Ao excluir ou remover um keyring, o Google Cloud exibe uma mensagem de erro:

Sorry, you can't delete or rename keys or key rings. We were concerned about the security implications of allowing multiple keys or key versions over time to have the same resource name, so we decided to make names immutable. (And you can't delete them, because we wouldn't be able to do a true deletion--there would still have to be a tombstone tracking that this name had been used and couldn't be reused).
We're aware that this can make things untidy, but we have no immediate plans to change this.
If you want to avoid getting billed for a key or otherwise make it unavailable, you can do so by deleting all the key versions; neither keys nor key rings are billed for, just the active key versions within the keys.
<!--NeedCopy-->

Dica:

Para obter mais informações, consulte Editing or deleting a key ring from the console.

Compatibilidade de acesso uniforme no nível do bucket

O Citrix DaaS é compatível com a política de controle de acesso uniforme no nível do bucket no Google Cloud. Essa funcionalidade aumenta o uso da política do IAM que concede permissões a uma conta de serviço para permitir a manipulação de recursos, incluindo buckets de armazenamento. Com controle de acesso uniforme no nível do bucket, o Citrix DaaS permite que você use uma lista de controle de acesso (ACL) para controlar o acesso a buckets de armazenamento ou objetos armazenados neles. Consulte Acesso uniforme no nível do bucket para obter informações gerais sobre o acesso uniforme no nível do bucket no Google Cloud. Para obter informações de configuração, consulte Requerer acesso uniforme no nível do bucket.

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.

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

Mais informações