Citrix Virtual Apps and Desktops

Ambientes de nuvem da AWS

Este artigo o orienta na configuração de sua conta da AWS como um local de recursos que você pode usar com 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.
  • Uma instância que atua como um host bastion 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 implantará um gateway NAT com um endereço Elastic IP na sub-rede pública. Essa ação 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 associa 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 bastion host e um Controlador de Domínio à VPC. Por meio do bastion host, você pode fazer login em instâncias na sub-rede privada para configurar o domínio e unir instâncias ao domínio.

Tarefa 1: Configurar a VPC

  1. No console de gerenciamento da AWS, selecione VPC.
  2. No VPC Dashboard, selecione Create VPC.
  3. Selecione VPC and more.
  4. Em NAT gateways ($) selecione In 1 AZ ou 1 per AZ.
  5. Nas opções de DNS, deixe Enable DNS hostnames selecionada.
  6. 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.

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 público a ser associado às instâncias em sua sub-rede pública.
  • Um grupo de segurança privado a ser associado às instâncias em sua sub-rede privada.

Para criar os grupos de segurança:

  1. No VPC Dashboard, selecione Security Groups.
  2. Crie um grupo de segurança para o grupo de segurança pública. 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.

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, é necessário definir portas TCP; selecionar a guia Inbound Rules e selecionar 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 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: Executar instâncias

Siga as etapas a seguir para criar duas instâncias do EC2 e descriptografar 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: 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: 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.
  8. Se necessário, na página Add Storage, modifique o tamanho do disco.
  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: 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 um 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. Vá até a guia RDP client, selecione Get Password e carregue seu arquivo de chave privada (.pem) quando solicitado.
    3. Selecione Decrypt Password para obter a senha legível por humanos. A AWS exibe a senha padrão.
  15. Repita as etapas da etapa 2 até criar duas instâncias:

    • Uma instância do bastion host em sua sub-rede pública
    • Uma instância em sua sub-rede privada que deve ser usada como Controlador de Domínio.

Tarefa 4: 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 5: 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:

      • Registre os endereços desta conexão no DNS
      • Use o sufixo DNS desta conexão no registro de 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.

Criar uma conexão

Quando você cria uma conexão a partir do Studio:

  • 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 em ambientes 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 |

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

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.

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

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.

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âncias da AWS e marcação de recursos operacionais

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

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>

Identificar recursos

A seguir estão as marcas que o MCS adiciona aos recursos na AWS. As tags na tabela são representadas como “key”:”value”.

Nome do recurso Marca
Disco de identificação “Name”: “VMName_IdentityDisk”
  “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
Imagem “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
NIC “Description”: “XD Nic”
  “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
Disco do sistema operacional “Name”: “VMName_rootDisk”
  “XdConfig”: “XdProvisioned=True”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  [quando AwsCaptureInstanceProperties = true] “Citrix Resource”: “”
  [quando AwsCaptureInstanceProperties = true e AwsOperationalResourcesTagging = true] “CitrixOperationalResource”: “”
PrepVM “Name”: “Preparation - CatalogName - xxxxxxxxxx”
  “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  [quando AwsCaptureInstanceProperties = true] “Citrix Resource”: “”
  [quando AwsCaptureInstanceProperties = true e AwsOperationalResourcesTagging = true] “CitrixOperationalResource”: “”
Instantâneo publicado “XdConfig”: “XdProvisioned=true”
  Se não for um instantâneo da AMI do Volume Worker, “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
Template [quando AwsCaptureInstanceProperties = true] “XdConfig”: “XdProvisioned=true”
  [quando AwsCaptureInstanceProperties = true] “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  [quando AwsCaptureInstanceProperties = true] “CitrixResource”: “”
  [quando AwsCaptureInstanceProperties = true e AwsOperationalResourcesTagging = true] “CitrixOperationalResource”: “”
VM in catalog “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  [quando AwsCaptureInstanceProperties = true] “CitrixResource”: “”
  [quando AwsCaptureInstanceProperties = true] “aws:ec2launchtemplate:id”: “lt-xxxx”
  [quando AwsCaptureInstanceProperties = true] “aws:ec2launchtemplate:version”: “n”
  [quando AwsCaptureInstanceProperties = true e AwsOperationalResourcesTagging = true] “CitrixOperationalResource”: “”
Volume worker AMI “XdConfig”: “XdProvisioned=true”
Volume worker bootstraper “Name”: “XenDesktop Temp”
  “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  [quando AwsCaptureInstanceProperties = true e AwsOperationalResourcesTagging = true] “CitrixVolumeWorkerBootstrapper”: “”
Volume worker instance “Name”: “Citrix.XD.Volumeworker-xxxx-xx-xx-xx-xxxx”
  “XdConfig”: “XdProvisioned=true”

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. Selecione 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: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: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 em todos os Delivery Controllers em nosso site. Usando o Web 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: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