Citrix DaaS

Ambientes de nuvem AWS

Este artigo o orienta na configuração de sua conta da Amazon Web Services (AWS) como um local de recursos que você pode usar com o Citrix DaaS (anteriormente serviço Citrix Virtual Apps and Desktops). O local de recursos inclui um conjunto básico de componentes, ideal para uma prova de conceito ou outra implantação que não exija recursos distribuídos por várias zonas de disponibilidade. Depois de concluir essas tarefas, você pode instalar VDAs, provisionar máquinas, criar catálogos de máquinas e criar grupos de entrega.

Quando concluir as tarefas deste artigo, o local de recursos incluirá os seguintes componentes:

  • Uma nuvem privada virtual (VPC) com sub-redes públicas e privadas dentro de uma única zona de disponibilidade.
  • Uma instância que é executada como um controlador de domínio do Active Directory e um servidor DNS, localizada na sub-rede privada da VPC.
  • Duas instâncias ingressadas no domínio nas quais o Citrix Cloud Connector está instalado, localizadas na sub-rede privada da VPC.
  • Uma instância que atua como um host bastion, localizada na sub-rede pública da sua VPC. Essa instância é usada para iniciar conexões RDP com as instâncias na sub-rede privada para fins administrativos. Depois de concluir a configuração do local de recursos, você pode encerrar a instância para que ela não fique mais prontamente acessível. Quando for necessário gerenciar outras instâncias na sub-rede privada, como as instâncias do VDA, você pode reiniciar a instância do host bastion.

Visão geral da tarefa

Configure uma nuvem privada virtual (VPC) com sub-redes pública e privada. Quando você concluir essa tarefa, a AWS implanta uma instância NAT com um endereço Elastic IP na sub-rede pública. Isso permite que instâncias na sub-rede privada acessem a Internet. As instâncias na sub-rede pública são acessíveis ao tráfego público de entrada, enquanto as instâncias na sub-rede privada não são.

Configure grupos de segurança. Os grupos de segurança atuam como firewalls virtuais que controlam o tráfego para as instâncias em sua VPC. Você adiciona regras aos seus grupos de segurança que permitem que as instâncias em sua sub-rede pública se comuniquem com as instâncias em sua sub-rede privada. Você também associará esses grupos de segurança a cada instância na sua VPC.

Crie um conjunto de opções de DHCP. Com uma Amazon VPC, os serviços DHCP e DNS são fornecidos por padrão, o que afeta a forma como você configura o DNS no seu controlador de domínio do Active Directory. O DHCP da Amazon não pode ser desativado e o DNS da Amazon pode ser usado apenas para resolução de DNS público, não para resolução de nomes do Active Directory. Para especificar os servidores de domínio e nome entregues às instâncias por meio do DHCP, crie um conjunto de opções DHCP. O conjunto atribui o sufixo de domínio do Active Directory e especifica o servidor DNS para todas as instâncias na sua VPC. Para garantir que os registros Host (A) e de Pesquisa inversa (PTR) sejam registrados automaticamente quando as instâncias ingressarem no domínio, configure as propriedades do adaptador de rede para cada instância adicionada à sub-rede privada.

Adicione um host bastion, um controlador de domínio e Citrix Cloud Connectors à VPC. Por meio do host bastion, você pode fazer logon em instâncias na sub-rede privada para configurar o domínio, associar instâncias ao domínio e instalar o Citrix Cloud Connector.

Tarefa 1: Configurar a VPC

  1. No console de gerenciamento da AWS, selecione VPC.
  2. No VPC Dashboard, selecione Start VPC Wizard.
  3. Selecione VPC with Public and Private Subnets e Select.
  4. Insira um nome de VPC e altere o bloco CIDR de IP e os intervalos de IP da sub-rede pública e privada, se necessário.
  5. Se um gateway NAT estiver selecionado, selecione Use a NAT Instance instead.
  6. Para a instância NAT, especifique o tipo de instância e o par de chaves que você deseja usar. O par de chaves permite que você se conecte com segurança à instância posteriormente.
  7. Em Enable DNS host names, deixe Yes selecionado.
  8. Selecione Create VPC. A AWS cria as sub-redes pública e privada, o gateway de Internet, as tabelas de rotas e o grupo de segurança padrão.

Nota:

Alterar o nome de uma AWS Virtual Private Cloud (VPC) no console da AWS quebra a unidade de hospedagem existente no Citrix Cloud. Quando a unidade de hospedagem quebra, você não pode criar catálogos ou adicionar máquinas a catálogos existentes. Do problema conhecido: PMCS-7701

Tarefa 2: Configurar grupos de segurança

Essa tarefa cria e configura os seguintes grupos de segurança para a sua VPC:

  • Um grupo de segurança para a instância NAT.
  • Um grupo de segurança público, com o qual as instâncias em sua sub-rede pública serão associadas.
  • Um grupo de segurança privado, com o qual as instâncias em sua sub-rede privada serão associadas.

Para criar os grupos de segurança

  1. No VPC Dashboard, selecione Security Groups.
  2. Crie um grupo de segurança para a instância NAT. Selecione Create Security Group e insira uma marca de nome e uma descrição para o grupo. Em VPC, selecione a VPC que você criou anteriormente. Selecione Yes, Create.
  3. Repita a Etapa 2 para criar um grupo de segurança público e um grupo de segurança privado.

Configurar o grupo de segurança NAT

  1. Na lista de grupos de segurança, selecione o grupo de segurança NAT.

  2. Selecione a guia Inbound Rules e selecione Edit para criar as seguintes regras:

    Tipo Origem
    ALL Traffic Selecione o grupo de segurança privado.
    22 (SSH) 0.0.0.0/0
  3. Quando tiver terminado, selecione Save.

Configurar o grupo de segurança público

  1. Na lista de grupos de segurança, selecione o grupo de segurança público.

  2. Selecione a guia Inbound Rules e selecione Edit para criar as seguintes regras:

    Tipo Origem
    ALL Traffic Selecione o grupo de segurança privado.
    ALL Traffic Selecione o grupo de segurança público.
    ICMP 0.0.0.0/0
    22 (SSH) 0.0.0.0/0
    80 (HTTP) 0.0.0.0/0
    443 (HTTPS) 0.0.0.0/0
    1494 (ICA/HDX) 0.0.0.0/0
    2598 (Session Reliability) 0.0.0.0/0
    3389 (RDP) 0.0.0.0/0
  3. Quando tiver terminado, selecione Save.

  4. Selecione a guia Outbound Rules e selecione Edit para criar as seguintes regras:

    Tipo Destino
    ALL Traffic Selecione o grupo de segurança privado.
    ALL Traffic 0.0.0.0/0
    ICMP 0.0.0.0/0
  5. Quando tiver terminado, selecione Save.

Configurar o grupo de segurança privado

  1. Na lista de grupos de segurança, selecione o grupo de segurança privado.

  2. Se você não configurou o tráfego do grupo de segurança público, será necessário definir portas TCP; selecione a guia Inbound Rules e selecione Edit para criar as seguintes regras:

    Tipo Origem
    ALL Traffic Selecione o grupo de segurança NAT.
    ALL Traffic Selecione o grupo de segurança privado.
    ALL Traffic Selecione o grupo de segurança público.
    ICMP Selecione o grupo de segurança público.
    TCP 53 (DNS) Selecione o grupo de segurança público.
    UDP 53 (DNS) Selecione o grupo de segurança público.
    80 (HTTP) Selecione o grupo de segurança público.
    TCP 135 Selecione o grupo de segurança público.
    TCP 389 Selecione o grupo de segurança público.
    UDP 389 Selecione o grupo de segurança público.
    443 (HTTPS) Selecione o grupo de segurança público.
    TCP 1494 (ICA/HDX) Selecione o grupo de segurança público.
    TCP 2598 (Session Reliability) Selecione o grupo de segurança público.
    3389 (RDP) Selecione o grupo de segurança público.
    TCP 49152–65535 Selecione o grupo de segurança público.
  3. Quando tiver terminado, selecione Save.

  4. Selecione a guia Outbound Rules e selecione Edit para criar as seguintes regras:

    Tipo Destino
    ALL Traffic Selecione o grupo de segurança privado.
    ALL Traffic 0.0.0.0/0
    ICMP 0.0.0.0/0
    UDP 53 (DNS) 0.0.0.0/0
  5. Quando tiver terminado, selecione Save.

Tarefa 3: Associar a instância NAT ao grupo de segurança NAT

  1. No console de gerenciamento da AWS, selecione EC2.
  2. No EC2 Dashboard, selecione Instances.
  3. Selecione a instância NAT e, em seguida, selecione Actions > Networking > Change Security Groups.
  4. Desmarque a caixa de seleção do grupo de segurança padrão.
  5. Selecione o grupo de segurança NAT que você criou anteriormente e, em seguida, selecione Assign Security Groups.

Tarefa 4: Executar instâncias

As etapas a seguir criam quatro instâncias do EC2 e descriptografam a senha de administrador padrão gerada pela Amazon.

  1. No console de gerenciamento da AWS, selecione EC2.

  2. No EC2 Dashboard, selecione Launch Instance.

  3. Selecione uma imagem de máquina do Windows Server e um tipo de instância.

  4. Na página Configure Instance Details, insira um nome para a instância e selecione a VPC que você configurou anteriormente.

  5. Em Subnet, faça as seguintes seleções para cada instância:

    • Bastion host: selecione a sub-rede pública.
    • Domain controller and Connectors: selecione a sub-rede privada.
  6. Em Auto-assign Public IP address, faça as seguintes seleções para cada instância:

    • Bastion host: selecione Enable.
    • Domain controller and Connectors: selecione Use default setting ou Disable.
  7. Em Network Interfaces, insira um endereço IP primário dentro do intervalo de IP da sub-rede privada para o controlador de domínio e as instâncias do Cloud Connector.

  8. Na página Add Storage, modifique o tamanho do disco, se necessário.

  9. Na página Tag Instance, insira um nome amigável para cada instância.

  10. Na página Configure Security Groups, selecione Select an existing security group e faça as seguintes seleções para cada instância:

    • Bastion host: selecione o grupo de segurança público.
    • Domain controller and Cloud Connectors: selecione o grupo de segurança privado.
  11. Revise suas escolhas e selecione Launch.

  12. Crie um novo par de chaves ou selecione um par existente. Se você criar um novo par de chaves, baixe seu arquivo de chave privada (.pem) e mantenha-o em local seguro. Você deve fornecer sua chave privada ao adquirir a senha de administrador padrão para a instância.

  13. Selecione Launch Instances. Selecione View Instances para exibir uma lista de suas instâncias. Aguarde até que a instância recém-executada tenha passado por todas as verificações de status antes de acessá-la.

  14. Adquira a senha de administrador padrão para cada instância:

    1. Na lista de instâncias, selecione a instância e, em seguida, selecione Connect.
    2. Selecione Get Password e forneça o seu arquivo de chave privada (.pem) quando solicitado.
    3. Selecione Decrypt Password. A AWS exibe a senha padrão.
  15. Repita as etapas de 2 a 14 até criar quatro instâncias: uma instância de host bastion na sub-rede pública e três instâncias na sub-rede privada para uso como o controlador de domínio e dois Cloud Connectors.

Tarefa 5: Criar um conjunto de opções de DHCP

  1. No VPC Dashboard, selecione DHCP Options Sets.

  2. Insira as seguintes informações:

    • Name tag: insira um nome amigável para o conjunto.
    • Domain name: insira o nome de domínio totalmente qualificado que você usa ao configurar a instância do controlador de domínio.
    • Domain name servers: insira o endereço IP privado que você atribuiu à instância do controlador de domínio e a cadeia de caracteres AmazonProvidedDNS, separados por vírgula.
    • NTP servers: deixe este campo em branco.
    • NetBIOS name servers: insira o endereço IP privado da instância do controlador de domínio.
    • NetBIOS node type: insira 2.
  3. Selecione Yes, Create.

  4. Associe o novo conjunto à sua VPC:

    1. No VPC Dashboard, selecione Your VPCs e, em seguida, selecione a VPC que você configurou anteriormente.
    2. Selecione Actions > Edit DHCP Options Set.
    3. Quando solicitado, selecione o novo conjunto que você criou e, em seguida, selecione Save.

Tarefa 6: Configurar as instâncias

  1. Usando um cliente RDP, conecte-se ao endereço IP público da instância do host bastion. Quando solicitado, insira as credenciais para a conta de administrador.

  2. Na instância do host bastion, inicie a Conexão de Área de Trabalho Remota e conecte-se ao endereço IP privado da instância que deseja configurar. Quando solicitado, insira as credenciais de administrador para a instância.

  3. Para todas as instâncias na sub-rede privada, defina as configurações de DNS:

    1. Selecione Iniciar > Painel de controle > Rede e Internet > Central de Rede e Compartilhamento > Alterar as configurações do adaptador. Clique duas vezes na conexão de rede exibida.
    2. Selecione Propriedades > Protocolo de Internet versão 4 (TCP/IPv4) > Propriedades.
    3. Selecione Avançado > DNS. Certifique-se de que as seguintes configurações estejam ativadas e selecione OK:

      • Registrar os endereços desta conexão no DNS
      • Usar o sufixo DNS desta conexão no registro do DNS
  4. Para configurar o controlador de domínio:

    1. Usando o Server Manager, adicione a função Active Directory Domain Services com todos os recursos padrão.
    2. Promova a instância a um controlador de domínio. Durante a promoção, habilite o DNS e use o nome de domínio especificado ao criar o conjunto de opções de DHCP. Reinicie a instância quando solicitado.
  5. Para configurar o primeiro Cloud Connector:

    1. Associe a instância ao domínio e reinicie quando solicitado. Na instância do host bastion, reconecte-se à instância usando o RDP.
    2. Faça login no Citrix Cloud. Selecione Resource Locations no menu superior esquerdo.
    3. Baixe o Cloud Connector.
    4. Quando solicitado, execute o arquivo cwcconnector.exe e forneça as suas credenciais do Citrix Cloud. Siga o assistente.
    5. Quando terminar, selecioneAtualizar para exibir a página de locais de recursos. Quando o Cloud Connector é registrado, a instância aparece na página.
  6. Repita a Etapa 5 para configurar o segundo Cloud Connector.

Criar uma conexão

Quando você cria uma conexão a partir da interface Full Configuration:

  • Você deve fornecer os valores da chave de API e da chave secreta. Você pode exportar o arquivo de chaves que contém esses valores da AWS e depois importá-los. Você também deve fornecer a região, a zona de disponibilidade, o nome da VPC, os endereços de sub-rede, o nome do domínio, o nome dos grupos de segurança e as credenciais.
  • O arquivo de credenciais para a conta raiz da AWS (recuperado do console da AWS) não está formatado da mesma forma que os arquivos de credenciais baixados para usuários padrão da AWS. Portanto, o gerenciamento do Citrix Virtual Apps and Desktops não pode usar o arquivo para preencher os campos de chave de API e chave secreta. Verifique se você está usando os arquivos de credenciais do AWS Identity Access Management (IAM).

Nota:

Depois de criar uma conexão, as tentativas de atualizar a chave de API e a chave secreta podem falhar. Para resolver o problema, verifique as restrições do seu servidor proxy ou do firewall e confirme que o seguinte endereço pode ser contatado: https://*.amazonaws.com.

Valores padrão de conexão do host

Quando você cria conexões de host na interface Full Configuration de um ambiente de nuvem da AWS, os seguintes valores padrão são exibidos:

Opção Absoluto Porcentagem
Ações simultâneas (todos os tipos) 125 100
Máximo de novas ações por minuto 125  
Máximo de operações simultâneas de provisionamento 100  

Por padrão, o MCS oferece suporte a 100 operações de provisionamento simultâneas.

Você pode configurar esses valores acessando a seção Advanced na tela Edit Connection no Citrix Studio.

Identity and Access Management (IAM)

Por padrão, o MCS oferece suporte a 100 operações simultâneas no máximo. Como alternativa, você pode usar o SDK remoto do PowerShell para definir o número máximo de operações simultâneas ideal para o seu ambiente.

Use a propriedade personalizada do PowerShell, MaximumConcurrentProvisioningOperations, para especificar o número máximo de operações simultâneas de provisionamento da AWS.

Antes da configuração:

  • Verifique se você instalou o PowerShell SDK for Cloud.
  • Confirme que o valor padrão de MaximumConcurrentProvisioningOperations é 100.

Execute as seguintes etapas para personalizar o valor MaximumConcurrentProvisioningOperations:

  1. Abra a janela do PowerShell.
  2. Execute o comando asnp citrix* para carregar os módulos do PowerShell específicos da Citrix.
  3. Digite cd xdhyp:\Connections\.
  4. Digite dir para listar as conexões.
  5. Altere ou inicialize a cadeia de caracteres Custom Properties:

    • Se a cadeia de caracteres Custom Properties tiver um valor, copie o valor de Custom Properties para o Bloco de Notas. Em seguida, altere a propriedade MaximumConcurrentProvisioningOperations para o valor de sua preferência. Você pode inserir um valor que varia de 1 a 1000. Por exemplo, <Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="xyz"/>.

    • Se a cadeia de caracteres Custom Properties estiver vazia/nula, você deve inicializar a cadeia de caracteres inserindo a sintaxe adequada para o esquema e para a propriedade MaximumConcurrentProvisioningOperations.

  6. Na janela do PowerShell, cole o valor Custom Properties modificado do Bloco de Notas e atribua uma variável à cadeia Custom Properties. Se você inicializou Custom Properties, adicione as linhas abaixo seguindo a sintaxe:

    $customProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="100"/></CustomProperties>'.

    Essa cadeia de caracteres define a propriedade MaximumConcurrentProvisioningOperations como 100. Na cadeia de caracteres Custom Properties, você deve definir a propriedade MaximumConcurrentProvisioningOperations como um valor que se alinhe às suas necessidades.

  7. Digite Get-XDAuthentication, o que solicita suas credenciais.
  8. Execute $cred = Get-Credential, o que pode solicitar apenas uma senha (ou um nome e senha). Você também pode ser solicitado a fornecer o ID do aplicativo e o segredo associado. Para conexões que usam autenticação baseada em função, role_based_auth é o Nome e a Senha. Caso contrário, insira o ID e o segredo da API da AWS.
  9. Execute set-item -PSPath 'XDHyp:\Connections<connection-name>' -CustomProperties $customProperties -username $cred.username -Securepassword $cred.password. Você deve definir <connection-name> com o nome da conexão.
  10. Digite dir para verificar a cadeia de caracteres CustomProperties atualizada.

URL do ponto de extremidade de serviço

URL do ponto de extremidade do serviço de zona padrão

Quando você usa MCS, uma nova conexão da AWS é adicionada com uma chave de API e um segredo de API. Com essas informações, juntamente com a conta autenticada, o MCS consulta a AWS sobre as zonas suportadas usando a chamada de API do EC2 da AWS: DescribeRegions. A consulta é feita usando uma URL genérica do ponto de extremidade de serviço do EC2: https://ec2.amazonaws.com/. Use o MCS para selecionar a zona para a conexão na lista de zonas suportadas. A URL do ponto de extremidade de serviço preferencial da AWS é selecionada automaticamente para a zona. No entanto, depois de criar a URL do ponto de extremidade de serviço, você não pode mais definir ou modificar a URL.

URL do ponto de extremidade de serviço não padrão

Pode haver situações em que não seja necessário ter a URL do ponto de extremidade de serviço da AWS escolhida automaticamente para a conexão. Nesses casos, você pode usar o Citrix Cloud SDK e o PowerShell para criar uma conexão com uma URL de ponto de extremidade de serviço não padrão. Por exemplo, para criar uma conexão usando a URL do ponto de extremidade de serviço https://ec2.cn-north-1.amazonaws.com.cn:

  1. Configure o Cloud Connector hospedado na AWS e confirme que ele tem conectividade.
  2. Execute os seguintes comandos do PowerShell para ver a lista de Cloud Connectors.

     PS C:> asnp citrix.*
     PS C:> Get-XDAuthentication
     PS C:> Get-ConfigEdgeServer
    <!--NeedCopy-->
    
  3. Encontre o ZoneUid do Cloud Connector recém-criado e insira-o nos seguintes comandos do PowerShell. Substitua os itens em itálico pelos respectivos valores.

    PS C:\> $hyp= New-Item -Path xdhyp:\Connections -ZoneUidZoneUid-Name“My New Connection”-ConnectionType "AWS" -HypervisorAddress @("https://ec2.cn-north-1.amazonaws.com.cn") -UserName“APIkey” -Password“API Secret” -Persist PS C:\> New-BrokerHypervisorConnection -HypHypervisorConnectionUid $hyp. HypervisorConnectionUid

  4. Atualize a guia Full Configuration > Hosting para verificar se a conexão do EC2 foi criada.
  5. Adicione um local de recurso usando a nova conexão.

Locação da AWS

A AWS oferece as seguintes opções de locação: locação compartilhada (o tipo padrão) e locação dedicada. Locação compartilhada significa que várias instâncias do Amazon EC2 de clientes diferentes podem residir no mesmo equipamento de hardware físico. Locação dedicada significa que suas instâncias do EC2 são executadas somente no hardware com as outras instâncias que você implantou. Outros clientes não usam o mesmo equipamento de hardware.

Você pode usar o MCS para provisionar hosts dedicados da AWS usando a interface Full Configuration ou o PowerShell.

Configurar a locação de host dedicada da AWS usando a interface Full Configuration

Quando você usa o MCS para criar um catálogo para provisionar máquinas na AWS, a página Machine Catalog Setup > Security apresenta as seguintes opções:

  • Use shared hardware. Essa configuração é adequada para a maioria das implantações. Vários clientes compartilham equipamentos de hardware, mesmo que não interajam entre si. Usar um hardware compartilhado é a opção mais barata para executar suas instâncias do Amazon EC2.

  • Use dedicated host. Um host dedicado do Amazon EC2 é um servidor físico com capacidade de instância do EC2 totalmente dedicada, permitindo que você use licenças de software existentes por soquete ou por VM. Os hosts dedicados têm utilização predefinida com base no tipo de instância. Por exemplo, um único host dedicado alocado dos tipos de instância C4 Large é limitado à execução de 16 instâncias. Consulte o site da AWS para obter mais informações.

    Os requisitos de provisionamento para os hosts da AWS incluem:

    • Uma imagem (AMI) importada da BYOL (traga sua própria licença). Com hosts dedicados, use e gerencie suas licenças existentes.
    • Uma alocação de hosts dedicados com utilização suficiente para atender às solicitações de provisionamento.
    • Ativação do posicionamento automático.

    Essa configuração é adequada para implantações com restrições de licenciamento ou requisitos de segurança que precisam do uso de um host dedicado. Com um host dedicado, você tem um host físico inteiro e é cobrado por hora. Possuir esse host permite que você gire quantas instâncias do EC2 o host permitir, sem mais cobranças.

    Como alternativa, você pode provisionar hosts dedicados da AWS por meio do PowerShell. Para isso, use o cmdlet New-ProvScheme com o parâmetro TenancyType definido como Host. Consulte a Documentação do Citrix Developer para obter mais informações.

  • Use dedicated instance. Esta configuração é mais adequada para implantações com requisitos específicos de segurança ou conformidade. Com uma instância dedicada, você ainda desfruta dos benefícios de ter um host separado de outros clientes da AWS, mas não paga pelo host inteiro. Você não precisa se preocupar com a capacidade do host, mas a taxa cobrada é pelas instâncias é mais alta.

Configurar a locação de host dedicada da AWS usando o PowerShell

Você pode criar um catálogo de máquinas com a locação de host definida por meio do PowerShell.

Um host dedicado [EC2] da Amazon é um servidor físico com capacidade de instância [EC2] totalmente dedicada, permitindo que você use licenças de software existentes por soquete ou por VM.

Os hosts dedicados têm utilização predefinida com base no tipo de instância. Por exemplo, um único host dedicado alocado dos tipos de instância C4 Large é limitado à execução de 16 instâncias. Consulte o site da AWS para obter mais informações.

Os requisitos de provisionamento para os hosts da AWS incluem:

  • Uma imagem (AMI) importada da BYOL (traga sua própria licença). Com hosts dedicados, use e gerencie suas licenças existentes.
  • Uma alocação de hosts dedicados com utilização suficiente para atender às solicitações de provisionamento.
  • Ativar o posicionamento automático.

Para provisionar a um host dedicado na AWS usando o PowerShell, use o cmdlet New-ProvScheme com o parâmetro TenancyType definido como Host.

Consulte a Documentação do Citrix Developer para obter mais informações.

Captura de propriedade de instâncias da AWS

Ao criar um catálogo para provisionar máquinas usando o Machine Creation Services (MCS) na AWS, você seleciona uma AMI para representar a imagem mestre/de ouro do catálogo. A partir dessa AMI, o MCS usa um instantâneo do disco. Em versões anteriores, se você quisesse funções ou marcações em suas máquinas, usaria o console da AWS para defini-las individualmente. Essa funcionalidade é ativada por padrão.

Dica:

Para usar a captura de propriedade da instância da AWS, você deve ter uma VM associada à AMI.

Para melhorar esse processo, o MCS lê as propriedades da instância a partir da qual a AMI foi obtida e aplica a função de Identity Access Management (IAM) e as marcas da máquina às máquinas provisionadas de um determinado catálogo. Ao usar esse recurso opcional, o processo de criação do catálogo localiza a instância de origem da AMI selecionada, lendo um conjunto limitado de propriedades. Essas propriedades são armazenadas em um Launch Template da AWS, que é usado para provisionar máquinas para esse catálogo. Qualquer máquina no catálogo herda as propriedades da instância capturada.

As propriedades capturadas incluem:

  • Funções de IAM – aplicadas a instâncias provisionadas.
  • Marcações – aplicadas a instâncias provisionadas, seus discos e NICs. Essas marcações são aplicadas a recursos temporários da Citrix, incluindo: objetos e bucket S3, recursos de volume e worker, e AMIs, instantâneos e modelos de execução.

Dica:

A marcação de recursos temporários da Citrix é opcional e pode ser configurada usando a propriedade personalizada AwsOperationalResourcesTagging. Para aplicar marcas com êxito e criar um catálogo da AWS com marcação de recursos operacionais, não exclua a instância do EC2 que foi usada para criar a imagem AMI.

Captura da propriedade da instância da AWS

Você pode usar este recurso especificando uma propriedade personalizada, AwsCaptureInstanceProperties, ao criar um esquema de provisionamento para uma conexão de hospedagem da AWS:

New-ProvScheme -CustomProperties “AwsCaptureInstanceProperties,true” …<standard provscheme parameters

Consulte a Documentação do Citrix Developer para obter mais informações.

Aplicação de propriedades de instância da AWS e marcação de recursos operacionais na interface Full Configuration

Ao criar um catálogo para provisionar máquinas na AWS usando o MCS, você pode controlar se as propriedades de função e marcação do IAM devem ser aplicadas a essas máquinas. Você também pode controlar se as marcas de máquina devem ser aplicadas aos recursos operacionais. Você tem as duas opções a seguir:

Propriedades de modelo e marcações de máquina da AWS

  • Aplicar propriedades de modelo de máquina a máquinas virtuais, em Apply machine template properties to virtual machines
    • Controla se as propriedades de marca e função do IAM associadas ao modelo de máquina selecionado devem ser aplicadas às máquinas virtuais no catálogo.
  • Aplicar marcas de máquina a recursos operacionais, em Apply machine tags to operational resources
    • Controla se as marcas de máquina devem ser aplicadas a cada item criado em seu ambiente da AWS, o que facilita o provisionamento de máquinas. Os recursos operacionais são criados como subprodutos da criação de catálogos. Incluem recursos temporários e persistentes, como preparação, instância de VM e AMI.

Marcação de recursos operacionais da AWS

Uma Amazon Machine Image (AMI) representa um tipo de dispositivo virtual usado para criar uma máquina virtual dentro do ambiente de nuvem Amazon Cloud, comumente chamado de EC2. Você usa uma AMI para implantar serviços que usam o ambiente EC2. Quando cria um catálogo para provisionar máquinas usando o MCS para AWS, você seleciona a AMI para atuar como a imagem de ouro do catálogo.

Importante:

A criação de catálogos por meio da captura de uma propriedade de instância e um modelo de execução é necessária para usar a marcação de recursos operacionais.

Para criar um catálogo da AWS, você deve primeiro criar uma AMI para a instância que você quer que seja a imagem de ouro. O MCS lê as marcas dessa instância e as incorpora ao modelo de execução. As marcas do modelo de execução são então aplicadas a todos os recursos da Citrix criados no seu ambiente da AWS, incluindo:

  • Máquinas virtuais
  • Discos VM
  • Interfaces de rede VM
  • Buckets do S3
  • Objetos do S3
  • Modelos de execução
  • AMIs

Marcação de um recurso operacional

Para usar o PowerShell para marcar recursos:

  1. Abra uma janela do PowerShell no host DDC.
  2. Execute o comando asnp citrix para carregar módulos PowerShell específicos da Citrix.

Para marcar um recurso para uma VM provisionada, use a nova propriedade personalizada AwsOperationalResourcesTagging. A sintaxe dessa propriedade é:

New-ProvScheme -CustomProperties “AwsCaptureInstanceProperties,true; AwsOperationalResourcesTagging,true” …<standard provscheme parameters>

Definição de permissões do IAM

Use as informações nesta seção para definir as permissões do IAM para o Citrix DaaS na AWS. O serviço IAM da Amazon permite contas com vários usuários, que podem ser organizados em grupos. Os usuários podem ter permissões diferentes para controlar sua capacidade de realizar operações associadas à conta. Para obter mais informações sobre permissões do IAM, consulte Referência de política JSON do IAM.

Para aplicar a política de permissões do IAM a um novo grupo de usuários:

  1. Faça login no console de gerenciamento da AWS e selecione o serviço do IAM na lista suspensa.
  2. Selecione Create a New Group of Users.
  3. Digite um nome para o novo grupo de usuários e selecione Continue.
  4. Na página Permissions, selecione Custom Policy e Select.
  5. Digite um nome para a Permissions policy.
  6. Na seção Policy Document, insira as permissões relevantes.

Depois de inserir as informações da política, selecione Continue para concluir o grupo de usuários. Os usuários do grupo recebem permissões para executar somente as ações necessárias para o Citrix DaaS.

Importante:

Use o texto de política fornecido no exemplo acima para listar as ações que um Citrix DaaS usa para executar ações em uma conta da AWS sem restringir essas ações a recursos específicos. A Citrix recomenda que você use o exemplo para fins de teste. Para ambientes de produção, você pode optar por adicionar mais restrições aos recursos.

Adicionar permissões do IAM

Defina as permissões na seção IAM do AWS Management Console:

  1. No painel Summary, selecione a guia Permissions.
  2. Selecione Add permissions.

Identity and Access Management (IAM)

Na tela Add Permissions to, conceda permissões:

Políticas de concessão de permissões para IAM

Use o seguinte como exemplo na guia JSON:

Exemplo de JSON

Dica:

O exemplo de JSON observado talvez não inclua todas as permissões para o seu ambiente. Consulte How to Define Identity Access Management Permissions Running Citrix Virtual Apps and Desktops on AWS para obter mais informações.

Sobre as permissões da AWS

Esta seção contém a lista completa de permissões da AWS.

Nota:

A permissão iam:PassRole é necessária somente para role_based_auth.

Criar uma conexão de host

Uma nova conexão de host é adicionada usando as informações obtidas na AWS.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Gerenciamento de energia de VMs

As instâncias de máquina estão ligadas ou desligadas.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:CreateVolume",
                "ec2:DeleteVolume",
                "ec2:DescribeInstances",
                "ec2:DescribeVolumes",
                "ec2:DetachVolume",
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Criar, atualizar ou excluir VMs

Um catálogo de máquinas é criado, atualizado ou excluído com VMs provisionadas como instâncias da AWS.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateImage",
                "ec2:CreateLaunchTemplate",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "ec2:CreateVolume",
                "ec2:DeleteVolume",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeIamInstanceProfileAssociations",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "\*"
        },
        {
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Effect": "Allow",
            "Resource": "\*"
        },
        {
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:PutBucketAcl",
                "s3:PutBucketTagging",
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:PutObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::citrix*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Nota:

A seção do EC2 relacionada a SecurityGroups só será necessária se um grupo de segurança de isolamento precisar ser criado para a VM de preparação durante a criação do catálogo. Feito isso, essas permissões não serão necessárias.

Upload e download direto do disco

O upload direto do disco elimina o requisito do volume worker para o provisionamento do catálogo de máquinas e, em vez disso, usa APIs públicas fornecidas pela AWS. Essa funcionalidade reduz o custo associado a contas extras de armazenamento e a complexidade para manter as operações do volume worker.

As seguintes permissões devem ser adicionadas à política:

  • ebs:StartSnapshot
  • ebs:GetSnapshotBlock
  • ebs:PutSnapshotBlock
  • ebs:CompleteSnapshot
  • ebs:ListSnapshotBlocks
  • ebs:ListChangedBlocks
  • ec2:CreateSnapshot
  • ec2:DescribeLaunchTemplates

Importante:

  • Você pode adicionar uma nova VM aos catálogos de máquinas existentes sem nenhuma operação do volume worker, como volume worker AMI e volume worker VM.
  • Se você excluir um catálogo existente que usava o volume worker antes, todos os artefatos, incluindo os relacionados ao volume worker, serão excluídos.

Criptografia do EBS dos volumes criados

O EBS pode criptografar automaticamente volumes recém-criados se a AMI estiver criptografada ou se o EBS estiver configurado para criptografar todos os novos volumes. No entanto, para implementar a funcionalidade, as seguintes permissões devem ser incluídas na política do IAM.

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:GenerateDataKey",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Nota:

As permissões podem ser limitadas a chaves específicas, incluindo um bloco Resource e Condition a critério do usuário. Por exemplo, Permissões do KMS com condição:

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:GenerateDataKey",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": [
                "arn:aws:kms:us-east-2:123456789012:key/abcd1234-a123-456d-a12b-a123b4cd56ef"
            ],
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        }
    ]
}
<!--NeedCopy-->

A declaração de política de chaves a seguir é a política de chaves padrão completa para chaves do KMS que é necessária para permitir que a conta use políticas do IAM para delegar permissão para todas as ações (kms: *) na chave do KMS.

{
"Sid": "Enable IAM policies",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "kms:",
"Resource": ""
}
<!--NeedCopy-->

Para obter mais informações, consulte a documentação oficial do AWS Key Management Service.

Autenticação baseada na função do IAM

As seguintes permissões são adicionadas para oferecer suporte à autenticação baseada em função.

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::\*:role/\*"
        }
    ]
}
<!--NeedCopy-->

Política de permissões mínimas do IAM

O JSON a seguir pode ser usado para todos os recursos atualmente suportados. Você pode criar conexões de host, criar, atualizar ou excluir VMs, e fazer o gerenciamento de energia usando essa política. A política pode ser aplicada aos usuários conforme explicado nas seções Definição de permissões do IAM ou você também pode usar a autenticação baseada em função usando a chave de segurança role_based_auth e a chave secreta.

Importante:

Para usar role_based_auth, primeiro configure a função do IAM desejada na instância EC2 do Cloud Connector ao configurar o Cloud Connector. Usando o Citrix Studio, adicione a conexão de hospedagem e forneça o role_based_auth para a chave de autenticação e o segredo. Uma conexão de hospedagem com essas configurações usa a autenticação baseada em função.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateImage",
                "ec2:CreateLaunchTemplate",
                "ec2:CreateNetworkInterface",
                "ec2:CreateTags",
                "ec2:CreateVolume",
                "ec2:DeleteLaunchTemplate",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteSecurityGroup",
                "ec2:DeleteSnapshot",
                "ec2:DeleteTags",
                "ec2:DeleteVolume",
                "ec2:DeregisterImage",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeIamInstanceProfileAssociations",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RebootInstances",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "\*"
        },
        {
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Effect": "Allow",
            "Resource": "\*"
        },
        {
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutBucketAcl",
                "s3:PutObject",
                "s3:PutBucketTagging",
                "s3:PutObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::citrix*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "\*"
        },
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:GenerateDataKey",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "\*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::\*:role/\*"
        }
    ]
}
<!--NeedCopy-->

Nota:

  • A seção do EC2 relacionada a SecurityGroups só será necessária se um grupo de segurança de isolamento precisar ser criado para a VM de preparação durante a criação do catálogo. Feito isso, essas permissões não serão necessárias.
  • A seção KMS só é necessária ao usar a criptografia de volume do EBS.
  • A seção de permissão iam:PassRole é necessária somente para role_based_auth.
  • Permissões específicas de nível de recurso podem ser adicionadas em vez de acesso total com base em seus requisitos e ambiente. Consulte os documentos da AWS Demystifying EC2 Resource-Level Permissions e Access management for AWS resources para obter mais detalhes.

Mais informações