Citrix Virtual Apps and Desktops

Ambientes de nuvem AWS

Este artigo orienta você na configuração da sua conta AWS como um local de recurso que pode ser usado com o Citrix Virtual Apps and Desktops. O local de recurso 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. Após concluir essas tarefas, você pode instalar VDAs, provisionar máquinas, criar catálogos de máquinas e criar Grupos de Entrega.

Ao concluir as tarefas neste artigo, seu local de recurso inclui 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 funciona como um Controlador de Domínio do Active Directory e 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 de administração. Depois de concluir a configuração do seu local de recurso, você pode desligar essa instância para que ela não esteja mais prontamente acessível. Quando precisar gerenciar outras instâncias na sub-rede privada, como instâncias VDA, você pode reiniciar a instância do host bastion.

Limitação

A partir do Citrix Virtual Apps and Desktops 2203 LTSR e versões posteriores, o plug-in MCS AWS faz a chamada de API AWS DescribeInstanceTypes e, se for bem-sucedida, o MCS usa o nome de inventário criado a partir da resposta da API.

Portanto, ao atualizar do CVAD 1912 para 2203 ou posterior, desabilite a permissão DefineInstanceType na AWS e, em seguida, atualize o catálogo existente usando o comando Set-ProvScheme para corresponder ao esquema de nomenclatura da AWS. Em seguida, adicione as permissões DescribeInstanceType novamente após a conclusão da atualização do catálogo e o serviço oferecido corresponder ao esquema de nomenclatura da AWS.

Visão geral da tarefa

Configure uma nuvem privada virtual (VPC) com sub-redes públicas e privadas. Ao concluir esta tarefa, a AWS implanta um gateway NAT com um endereço IP Elástico na sub-rede pública. Essa ação permite que as 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 em sua VPC.

Crie um conjunto de opções DHCP. Com uma VPC da Amazon, os serviços DHCP e DNS são fornecidos por padrão, o que afeta como você configura o DNS em seu Controlador de Domínio do Active Directory. O DHCP da Amazon não pode ser desabilitado 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 o domínio e os servidores de nomes entregues às instâncias via 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 em sua VPC. Para garantir que os registros Host (A) e Reverse Lookup (PTR) sejam registrados automaticamente quando as instâncias ingressarem no domínio, você configura as propriedades do adaptador de rede para cada instância que adicionar à sub-rede privada.

Adicione um host bastion e um Controlador de Domínio à VPC. Através do host bastion, você pode fazer logon em instâncias na sub-rede privada para configurar o domínio e ingressar instâncias no domínio.

Tarefa 1: Configurar a VPC

  1. No console de gerenciamento da AWS, selecione VPC.
  2. No Painel da VPC, selecione Criar VPC.
  3. Selecione VPC e mais.
  4. Em gateways NAT ($), selecione Em 1 AZ ou 1 por AZ.
  5. Em opções de DNS, deixe Habilitar nomes de host DNS selecionado.
  6. Selecione Criar VPC. A AWS cria as sub-redes públicas e privadas, o gateway da Internet, as tabelas de rotas e o grupo de segurança padrão.

Tarefa 2: Configurar grupos de segurança

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

  • Um grupo de segurança público para associar às instâncias em sua sub-rede pública.
  • Um grupo de segurança privado para associar às instâncias em sua sub-rede privada.

Para criar os grupos de segurança:

  1. No Painel da VPC, selecione Grupos de Segurança.
  2. Crie um grupo de segurança para o grupo de segurança público. Selecione Criar Grupo de Segurança e insira uma tag de nome e uma descrição para o grupo. Em VPC, selecione a VPC que você criou anteriormente. Selecione Sim, Criar.

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 Regras de Entrada e selecione Editar para criar as seguintes regras:

    Tipo Origem
    Todo o Tráfego Selecione o grupo de segurança privado.
    Todo o Tráfego 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 (Confiabilidade da Sessão) 0.0.0.0/0
    3389 (RDP) 0.0.0.0/0
  3. Ao terminar, selecione Salvar.

  4. Selecione a guia Regras de Saída e selecione Editar para criar as seguintes regras:

    Tipo Destino
    Todo o Tráfego Selecione o grupo de segurança privado.
    Todo o Tráfego 0.0.0.0/0
    ICMP 0.0.0.0/0
  5. Ao terminar, selecione Salvar.

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, deve definir as portas TCP; selecione a guia Regras de Entrada e selecione Editar para criar as seguintes regras:

    Tipo Origem
    Todo o Tráfego Selecione o grupo de segurança privado.
    Todo o Tráfego 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 (Confiabilidade da Sessão) 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. Ao terminar, selecione Salvar.

  4. Selecione a guia Regras de Saída e selecione Editar para criar as seguintes regras:

    Tipo Destino
    Todo o Tráfego Selecione o grupo de segurança privado.
    Todo o Tráfego 0.0.0.0/0
    ICMP 0.0.0.0/0
    UDP 53 (DNS) 0.0.0.0/0
  5. Ao terminar, selecione Salvar.

Tarefa 3: Iniciar instâncias

Siga as etapas abaixo para criar duas instâncias EC2 e descriptografar a senha padrão do Administrador que a Amazon gera:

  1. No console de gerenciamento da AWS, selecione EC2.
  2. No Painel do EC2, selecione Iniciar Instância.
  3. Selecione uma imagem de máquina do Windows Server e um tipo de instância.
  4. Na página Configurar Detalhes da Instância, insira um nome para a instância e selecione a VPC que você configurou anteriormente.
  5. Em Sub-rede, faça as seguintes seleções para cada instância:

    • Host bastion: Selecione a sub-rede pública
    • Controlador de Domínio: Selecione a sub-rede privada
  6. Em Atribuir automaticamente endereço IP público, faça as seguintes seleções para cada instância:

    • Host bastion: Selecione Habilitar.
    • Controlador de Domínio: Selecione Usar configuração padrão ou Desabilitar.
  7. Em Interfaces de Rede, insira um endereço IP primário dentro do intervalo de IP da sua sub-rede privada para o Controlador de Domínio.
  8. Se necessário, na página Adicionar Armazenamento, modifique o tamanho do disco.
  9. Na página Marcar Instância, insira um nome amigável para cada instância.
  10. Na página Configurar Grupos de Segurança, selecione Selecionar um grupo de segurança existente e, em seguida, faça as seguintes seleções para cada instância:

    • Host bastion: Selecione o grupo de segurança público.
    • Controlador de Domínio: Selecione o grupo de segurança privado.
  11. Revise suas seleções e, em seguida, selecione Iniciar.
  12. Crie um novo par de chaves ou selecione um 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 padrão do Administrador para a instância.
  13. Selecione Iniciar Instâncias. Selecione Visualizar Instâncias para exibir uma lista de suas instâncias. Aguarde até que a instância recém-iniciada tenha passado por todas as verificações de status antes de acessá-la.
  14. Adquira a senha padrão do Administrador para cada instância:

    1. Na lista de instâncias, selecione a instância e, em seguida, selecione Conectar.
    2. Vá para a guia Cliente RDP, selecione Obter Senha e carregue seu arquivo de chave privada (.pem) quando solicitado.
    3. Selecione Descriptografar Senha para obter a senha legível. A AWS exibe a senha padrão.
  15. Repita as etapas a partir da etapa 2 até ter criado duas instâncias:

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

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

  1. No Painel da VPC, selecione Conjuntos de Opções DHCP.

  2. Insira as seguintes informações:

    • Tag de nome: Insira um nome amigável para o conjunto.
    • Nome de domínio: Insira o nome de domínio totalmente qualificado que você usa ao configurar a instância do Controlador de Domínio.
    • Servidores de nomes de domínio: Insira o endereço IP privado que você atribuiu à instância do Controlador de Domínio e a string AmazonProvidedDNS, separados por vírgulas.
    • Servidores NTP: Deixe este campo em branco.
    • Servidores de nomes NetBIOS: Insira o endereço IP privado da instância do Controlador de Domínio.
    • Tipo de nó NetBIOS: Insira 2.
  3. Selecione Sim, Criar.

  4. Associe o novo conjunto à sua VPC:

    1. No Painel da VPC, selecione Suas VPCs e, em seguida, selecione a VPC que você configurou anteriormente.
    2. Selecione Ações > Editar Conjunto de Opções DHCP.
    3. Quando solicitado, selecione o novo conjunto que você criou e, em seguida, selecione Salvar.

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 da 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 você deseja configurar. Quando solicitado, insira as credenciais de Administrador para a instância.

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

    1. Selecione Iniciar > Painel de Controle > Rede e Internet > Central de Rede e Compartilhamento > Alterar 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 habilitadas e selecione OK:

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

    1. Usando o Gerenciador do Servidor, adicione a função Serviços de Domínio Active Directory 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 que você especificou ao criar o conjunto de opções DHCP. Reinicie a instância quando solicitado.

Criar uma conexão

Ao criar 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 chave contendo esses valores da AWS e, em seguida, importá-los. Você também deve fornecer a região, zona de disponibilidade, nome da VPC, endereços de sub-rede, nome de domínio, nomes de grupos de segurança e credenciais.
  • O arquivo de credenciais para a conta raiz da AWS (recuperado do console da AWS) não é 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. Certifique-se de que você esteja usando 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 firewall e certifique-se de que o seguinte endereço possa ser contatado: https://*.amazonaws.com.

Valores padrão de conexão de host

Ao criar conexões de host em ambientes de nuvem 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  

O MCS suporta 100 operações de provisionamento simultâneas no máximo por padrão.

URL do endpoint de serviço

URL do endpoint de serviço da zona padrão

Ao usar o MCS, uma nova conexão 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 para as zonas suportadas usando a chamada de API AWS DescribeRegions EC2. A consulta é feita usando uma URL genérica de Endpoint de Serviço EC2 https://ec2.amazonaws.com/. Use o MCS para selecionar a zona para a conexão na lista de zonas suportadas. A URL preferencial do endpoint de serviço da AWS é selecionada automaticamente para a zona. No entanto, depois de criar a URL do endpoint de serviço, você não pode mais definir ou modificar a URL.

Tenancy da AWS

A AWS oferece as seguintes opções de tenancy: tenancy compartilhada (o tipo padrão) e tenancy dedicada. Tenancy compartilhada significa que várias instâncias Amazon EC2 de diferentes clientes podem residir na mesma peça de hardware físico. Tenancy dedicada significa que suas instâncias EC2 são executadas apenas em hardware com outras instâncias que você implantou. Outros clientes não usam a mesma peça de hardware.

Você pode usar o MCS para provisionar hosts dedicados da AWS usando o PowerShell.

Configurar a tenancy de host dedicado da AWS usando o PowerShell

Você pode criar um catálogo de máquinas com tenancy de host definida via PowerShell.

Um host dedicado Amazon [EC2] é 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.

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

Os requisitos para provisionamento em hosts AWS incluem:

  • Uma imagem BYOL (traga sua própria licença) importada (AMI). Com hosts dedicados, use e gerencie suas licenças existentes.
  • Uma alocação de hosts dedicados com utilização suficiente para satisfazer as solicitações de provisionamento.
  • Habilitar auto-placement.

Para provisionar para 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 Desenvolvedor Citrix para obter mais informações.

Captura de propriedades de instância 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/golden desse catálogo. A partir dessa AMI, o MCS usa um snapshot do disco. Em versões anteriores, se você quisesse funções ou tags em suas máquinas, usaria o console da AWS para configurá-las individualmente. Essa funcionalidade é habilitada por padrão.

Dica:

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

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

As propriedades capturadas incluem:

  • Funções IAM – aplicadas às instâncias provisionadas.
  • Tags - aplicadas às instâncias provisionadas, seus discos e NICs. Essas tags são aplicadas a recursos Citrix® transitórios, incluindo: bucket e objetos S3, recursos de volume e worker, e AMIs, snapshots e modelos de lançamento.

Dica:

A marcação de recursos Citrix transitórios é opcional e configurável usando a propriedade personalizada AwsOperationalResourcesTagging.

Capturando a propriedade da instância AWS

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

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

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

Aplicando propriedades de instância AWS e marcando 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 IAM e tag serão aplicadas a essas máquinas. Você também pode controlar se as tags de máquina serão aplicadas aos recursos operacionais.

Marcação de recursos operacionais da AWS

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

Importante:

A criação de catálogos capturando uma propriedade de instância e um modelo de lançamento é necessária para usar a marcação de recursos operacionais.

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

  • Máquinas Virtuais
  • Discos de VM
  • Interfaces de rede de VM
  • Buckets S3
  • Objetos S3
  • Modelos de lançamento
  • AMIs

Marcando 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 os módulos PowerShell específicos da Citrix.

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

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

Definindo permissões IAM

Use as informações nesta seção para definir permissões 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. Esses usuários podem possuir diferentes permissões para controlar sua capacidade de realizar operações associadas à conta. Para obter mais informações sobre permissões IAM, consulte referência de política JSON do IAM.

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

  1. Faça login no console de gerenciamento da AWS e selecione o serviço IAM na lista suspensa.
  2. Selecione Criar um Novo Grupo de Usuários.
  3. Digite um nome para o novo grupo de usuários e selecione Continuar.
  4. Na página Permissões, escolha Política Personalizada. Selecione Selecionar.
  5. Digite um nome para a Política de permissões.
  6. Na seção Documento de Política, insira as permissões relevantes.

Após inserir as informações da política, selecione Continuar para concluir o grupo de usuários. Os usuários do grupo recebem permissões para realizar apenas as ações necessárias para o Citrix DaaS.

Importante:

Use o texto da política fornecido no exemplo acima para listar as ações que um Citrix DaaS usa para realizar ações dentro de uma conta 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.

Adicionando permissões IAM

Defina as permissões na seção IAM do Console de Gerenciamento da AWS:

  1. No painel Resumo, selecione a guia Permissões.
  2. Selecione Adicionar permissões.

Identity and Access Management (IAM)

Na tela Adicionar Permissões a, conceda permissões:

Conceder permissões para políticas IAM

Use o seguinte como exemplo na guia JSON:

Exemplo JSON

Dica:

O exemplo JSON mencionado pode não incluir todas as permissões para o seu ambiente. Consulte Como Definir Permissões de Gerenciamento de Acesso de Identidade Executando Citrix Virtual Apps and Desktops na 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 apenas para role_based_auth.

Criando uma conexão de host

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

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

Gerenciamento de energia de VMs

As instâncias de máquina sã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-->

Criando, atualizando ou excluindo VMs

Um catálogo de máquinas é criado, atualizado ou excluído com VMs provisionadas como instâncias 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 EC2 relacionada a SecurityGroups é necessária apenas se um Grupo de Segurança de Isolamento precisar ser criado para a VM de Preparação durante a criação do catálogo. Uma vez feito isso, essas permissões não são mais necessárias.

Upload e download direto de disco

O upload direto de disco elimina a necessidade de um volume worker para o provisionamento de catálogos de máquinas e, em vez disso, usa APIs públicas fornecidas pela AWS. Essa funcionalidade reduz o custo associado a contas de armazenamento extras 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:DeleteSnapshot
  • ec2:DescribeLaunchTemplates

Importante:

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

Criptografia EBS de 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 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 de Recurso e Condição, a critério do usuário. Por exemplo, Permissões 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 seguinte declaração de política de chave é a política de chave padrão completa para chaves KMS que é necessária para permitir que a conta use políticas IAM para delegar permissão para todas as ações (kms:*) na chave 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 em função IAM

As seguintes permissões são adicionadas para suportar a 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 IAM mínima

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 esta política. A política pode ser aplicada aos usuários conforme explicado nas seções Definindo permissões IAM ou você também pode usar a autenticação baseada em função usando a chave de segurança e a chave secreta role_based_auth.

Importante:

Para usar role_based_auth, primeiro configure a função IAM desejada na instância EC2 do conector de nuvem ao configurar o conector de nuvem. 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 então 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 EC2 relacionada a SecurityGroups é necessária apenas se um Grupo de Segurança de Isolamento precisar ser criado para a VM de Preparação durante a criação do catálogo. Uma vez feito isso, essas permissões não são mais necessárias.
  • A seção KMS é necessária apenas ao usar a criptografia de volume EBS.
  • A seção de permissão iam:PassRole é necessária apenas para role_based_auth.
  • Permissões específicas em nível de recurso podem ser adicionadas em vez de acesso total, com base em seus requisitos e ambiente. Consulte os documentos da AWS Desmistificando as Permissões em Nível de Recurso do EC2 e Gerenciamento de acesso para recursos da AWS para obter mais detalhes.

Mais informações