Citrix DaaS™

Conexão com instâncias gerenciadas do Amazon WorkSpaces Core

Criar e gerenciar conexões e recursos descreve os assistentes que criam uma conexão. As informações a seguir abordam detalhes específicos das instâncias gerenciadas do Amazon WorkSpaces Core.

Definir permissões do IAM

Antes de criar uma conexão de host, uma política de permissões do IAM precisa ser definida corretamente para um usuário ou função do IAM que conceda ao Citrix as permissões adequadas para provisionar e gerenciar recursos em sua conta AWS em seu nome. Use as informações nesta seção para definir as permissões do IAM para o Citrix DaaS em instâncias gerenciadas do Amazon WorkSpaces Core. O serviço IAM da Amazon permite que as contas tenham 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 as permissões do IAM, consulte a referência da política JSON do IAM.

Observação:

Como o Citrix provisiona e gerencia recursos e automação em sua conta AWS em seu nome, a configuração de políticas de permissões do IAM com base em tags específicas ou convenções de nomenclatura de recursos não é compatível.

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 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”.
  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 a aplicação da política de permissões do IAM ao 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 deste artigo para listar as ações que um Citrix DaaS usa para executar ações em uma conta AWS sem restringir essas ações a recursos específicos. O 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

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

  1. No painel “Resumo”, selecione a guia “Permissões”.
    1. Selecione “Adicionar permissões”.
    1. Na tela “Adicionar Permissões a”, conceda as permissões.
  1. Na seção JSON, inclua as Permissões AWS necessárias para seu ambiente.

Criar uma função vinculada ao serviço

Para cada uma de suas contas AWS das quais o Citrix chamará as APIs Core V2, crie uma função vinculada ao serviço (SLR).

As etapas para criar a função:

  • Abra uma Interface de Linha de Comando (CLI) no console de gerenciamento da AWS.
  • Execute o seguinte comando na CLI:

    
     aws iam create-service-linked-role --aws-service-name workspaces-instances.amazonaws.com
    
     <!--NeedCopy-->
    

Você também pode configurar a função vinculada ao serviço usando o console de gerenciamento do Amazon WorkSpaces Core. Consulte Criar uma função vinculada ao serviço (console).

Criar uma conexão

Você pode criar uma conexão com instâncias gerenciadas do Amazon WorkSpaces Core usando:

  • Studio
  • Comandos PowerShell

  • Observação:

    • Verifique as restrições do seu servidor proxy ou firewall e certifique-se de que os seguintes endereços possam ser contatados: https://*.amazonaws.com e https://*.api.aws. Além disso, certifique-se de que todos os endereços mencionados em Conectividade do serviço Citrix Gateway possam ser contatados.

    • Se eles não puderem ser contatados, isso poderá causar falha ao criar ou atualizar a conexão do host.

Criar uma conexão usando o Studio

  1. Navegue até a página “Hospedagem > Adicionar Conexão e Recursos”.
  2. Na página “Conexão”, siga estas etapas para configurar a conexão:

    1. Selecione “Criar uma nova conexão”.
    2. Em “Zona”, selecione o local de recurso que você configurou para seu ambiente AWS.
    3. Selecione “Amazon WorkSpaces Core” como o tipo de conexão.
    4. Selecione “Usar chave de acesso de usuário IAM” ou “Usar função IAM”.

      Para a chave de acesso de usuário IAM, forneça sua chave de API e chave secreta para o usuário IAM que possui a política de permissões IAM adequada para o Citrix gerenciar recursos em sua conta AWS.

      Para a função IAM, certifique-se de ter atribuído uma função IAM à instância do Citrix Cloud Connector com a política de permissões IAM adequada para o Citrix gerenciar recursos em sua conta AWS. Consulte o guia de autenticação baseada em função para obter mais informações.

    5. Para rotear solicitações de API para a AWS por meio dos Citrix Cloud Connectors, selecione a caixa de seleção “Usar o proxy do sistema nos Citrix Cloud Connectors”. Isso garante que a conectividade da AWS funcione corretamente quando os Cloud Connectors não tiverem acesso direto à Internet.
    6. Insira um nome de conexão e clique em “Avançar”.
  3. Na página “Local da Máquina Virtual”, especifique o local onde as VMs devem ser provisionadas. Selecione a região da nuvem, VPC e zona de disponibilidade (ou zona local) para criar novas VMs.
  4. Na página “Rede”:

    1. Insira um nome para os recursos que você selecionou anteriormente na zona de disponibilidade (ou zona local).
    2. Selecione uma ou mais sub-redes na VPC que você configurou no menu anterior.
  5. Clique nas páginas restantes até a página “Resumo”.
  6. Clique em “Concluir” para criar a conexão do host com instâncias gerenciadas do Amazon WorkSpaces Core.

Considerações importantes

Ao criar uma conexão usando o Studio:

  • Defina as permissões IAM adequadas para que o Citrix gerencie seus recursos AWS.
  • Se você usar uma chave de acesso de usuário IAM para o Citrix gerenciar seus recursos AWS, deverá fornecer os valores da chave de API e da chave secreta. Você pode exportar o arquivo de chave contendo esses valores do 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 grupo de segurança e credenciais.
  • Se você usar uma função IAM para o Citrix gerenciar seus recursos AWS, deverá garantir que uma função com as permissões IAM adequadas seja atribuída a todos os seus Cloud Connector(s). Consulte o guia de autenticação baseada em função para obter mais informações.
  • O arquivo de credenciais para a conta raiz do AWS (recuperado do console do AWS) não é formatado da mesma forma que os arquivos de credenciais baixados para usuários AWS padrão. Portanto, o Citrix DaaS não pode usar o arquivo para preencher os campos de chave de API e chave secreta. Certifique-se de que você está usando arquivos de credenciais do AWS Identity Access Management (IAM).
  • A zona pode ser uma zona de disponibilidade ou zona local.

Criar uma conexão usando o PowerShell

  1. Abra uma janela do PowerShell.
  2. Execute asnp citrix* para carregar os módulos PowerShell específicos do Citrix.
  3. Execute os seguintes comandos. A seguir, um exemplo:

    
    $connectionName = "demo-hostingconnection"
    $cloudRegion = "us-east-1"
    $apiKey = "aaaaaaaaaaaaaaaaaaaa"
    $apiSecret = “bbbbb”
    $secureKey = ConvertTo-SecureString -String $apiSecret
    $zoneUid = "00000000-0000-0000-0000-000000000000"
    $connectionPath = "XDHyp:\Connections\" + $connectionName
    
    $connection = New-Item -Path $connectionPath -ConnectionType "AmazonWorkSpacesCoreMachineManagerFactory" -HypervisorAddress " "https://workspaces-instances.$($cloudRegion).api.aws"" -Persist -Scope @() -UserName $apiKey -SecurePassword $secureKey -ZoneUid $zoneUid
    
    New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid
    
    $hostingUnitName = "demo-hostingunit"
    $availabilityzone = "us-east-1a"
    $vpcName = "Default VPC"
    $jobGroup = [Guid]::NewGuid()
    $hostingUnitPath = "XDHyp:\HostingUnits\" + $HostingUnitName
    $rootPath = $connectionPath + "\" + $vpcName + ".virtualprivatecloud\"
    $availabilityZonePath = @($rootPath + $availabilityzone + ".availabilityzone")
    $networkPaths = (Get-ChildItem $availabilityZonePath[0] | Where ObjectType -eq "Network") | Select-Object -ExpandProperty FullPath # will select all the networks in the availability zone
    
    New-Item -Path $hostingUnitPath -AvailabilityZonePath $availabilityZonePath -HypervisorConnectionName $connectionName -JobGroup $jobGroup -PersonalvDiskStoragePath @() -RootPath $rootPath -NetworkPath $networkPaths
    
    <!--NeedCopy-->
    

Nota:

Para criar uma conexão usando a Autenticação Baseada em Função, especifique apiKey e apiSecret como role_based_auth.

Limitação

  • Se você alterar o nome de uma Virtual Private Cloud (VPC) do AWS no console do AWS, a unidade de hospedagem existente no Citrix Cloudâ„¢ será interrompida. Quando a unidade de hospedagem é interrompida, você não pode criar catálogos ou adicionar máquinas a catálogos existentes. Para resolver o problema, altere o nome da VPC do AWS de volta para o nome original.

Criar um ambiente seguro para tráfego gerenciado pelo AWS

Se você tiver um proxy configurado nos Cloud Connectors, deverá criar a conexão de host para usar o proxy, de modo que as chamadas de API feitas pelo MCS sejam roteadas corretamente através do proxy. O MCS permite que o tráfego de rede (chamadas de API do Citrix Cloud para o hipervisor AWS) seja roteado através dos Cloud Connectors em seu ambiente.

-  A conexão de host pode ler o valor do proxy do sistema WinHTTP que é configurado durante a instalação do Cloud Connector. Você pode configurar o proxy usando o [Studio](#create-a-connection-using-studio) ou definindo a propriedade personalizada `UseSystemProxyForHypervisorTrafficOnConnectors` como `True` ao criar ou atualizar uma conexão de host usando o PowerShell.

Nota:

Se o seu ambiente usar um proxy, certifique-se de que a inspeção SSL esteja desabilitada ou que a conexão SSL permaneça inalterada para https://workspaces-instances.*.api.aws/.

Criar uma conexão de host configurada com o proxy

-  1.  Abra uma janela do PowerShell.
-  1.  Execute `asnp citrix*` para carregar os módulos PowerShell específicos do Citrix.
  1. Execute os comandos do PowerShell para configurar o proxy. Por exemplo:

    
    $connectionName = "demo-hostingconnection"
    $cloudRegion = "us-east-1"
    $apiKey = "aaaaaaaaaaaaaaaaaaaa"
    $zoneUid = "00000000-0000-0000-0000-000000000000"
    
    $securePassword = Read-Host 'Please enter your secret key' -AsSecureString
    $connectionPath = "XDHyp:\Connections\" + $connectionName
    
    $customProperties = @"
    <CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
    <Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" />
    </CustomProperties>
    "@
    
    <!--NeedCopy-->
    
  2. Crie uma conexão de hospedagem. Por exemplo:

    
    $connection = New-Item -Path $connectionPath `
    
    -ConnectionType "Custom" -PluginId "AmazonWorkSpacesCoreMachineManagerFactory" `
    -HypervisorAddress "<https://workspaces-instances.$($cloudRegion).api.aws>" `
    -CustomProperties> $customProperties `
    -Persist -Scope @()`
    -UserName $apiKey -SecurePassword $securePassword `
    -ZoneUid $zoneUid
    
    New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid
    
    <!--NeedCopy-->
    

Para habilitar o proxy para uma conexão de host existente, consulte Habilitar o proxy em uma conexão existente.

Provisionamento entre contas

Existem casos de uso em que os Cloud Connectors gostariam de ser colocados em uma conta AWS separada (conta de serviços compartilhados ou conta de componentes de site) com funções IAM que têm acesso entre contas (função IAM entre contas) e catálogos de máquinas provisionados por MCS em uma conta AWS secundária separada (contas de cargas de trabalho), sem a necessidade de Cloud Connectors adicionais nas contas separadas. Para suportar tais cenários, este recurso usa o emparelhamento de VPC e o acesso entre contas usando funções IAM para tornar o provisionamento entre diferentes contas AWS possível para empresas que gerenciam várias contas AWS.

Com o emparelhamento de VPC, você pode ter seu Cloud Connector e VMs provisionadas em diferentes regiões ou contas capazes de se comunicar entre si.

Com o acesso entre contas usando funções IAM, você permite que a conta primária (conta do Cloud Connector) assuma uma função IAM para acessar recursos AWS na conta secundária (VMs do catálogo de máquinas).

-  Para permitir que o Cloud Connector acesse os recursos da conta secundária, crie uma conexão de host após assumir a função IAM da conta secundária.

Pré-requisitos

Configure o seguinte antes de criar uma conexão de host para provisionamento entre contas:

Configurar emparelhamento de VPC

-  Vamos supor que a VPC A esteja na conta primária (Conta A) e tenha os Cloud Connectors e o Active Directory. A VPC B está na conta secundária (Conta B) onde você deseja provisionar as VMs.

-  Para configurar uma conexão de emparelhamento de VPC entre a Conta A e a Conta B, faça o seguinte:
  1. Crie uma conexão de emparelhamento de VPC. Consulte:

  2. Vá para sua VPC A e para a tabela de rotas associada à sub-rede pública.
  3. Clique em “Editar Rotas” > “Adicionar rota”. Adicione o bloco CIDR da VPC B na coluna “Destino” e adicione o emparelhamento de VPC que você criou na coluna “Alvo”.
  4. Repita as Etapas 2 e 3, mas com as sub-redes privadas para VPC A e VPC B (adicione o bloco CIDR da VPC A). Consulte Atualizar suas tabelas de rotas para uma conexão de emparelhamento de VPC.
  5. Vá para o grupo de segurança privado associado à VPC A.
  6. Selecione “Ações” e, em seguida, “Editar regras de entrada”.
  7. Selecione “Adicionar regra”. Para o tipo, selecione “Todo o Tráfego” e, em seguida, na coluna “Origem”, adicione:

    • Se for uma região diferente, adicione o Bloco CIDR da VPC B.
    • Se for uma conta diferente, mas na mesma região, adicione o ID da conta e o ID do grupo de segurança privado da VPC B separados por uma barra (Exemplo: 123456789012/sg-1a2b3c4d)
  8. Repita as Etapas 5 a 7, mas com o grupo de segurança privado para a VPC B (mas adicione o Bloco CIDR da VPC A ou o ID da conta da VPC A e o ID do grupo de segurança privado da mesma região, mas de uma conta diferente). Consulte Atualizar seus grupos de segurança para fazer referência a grupos de segurança de pares.

Observação:

Não há cobrança para criar uma conexão de emparelhamento de VPC. No entanto, embora o emparelhamento de VPC dentro de uma zona de disponibilidade seja gratuito, aplicam-se cobranças quando a transferência de dados por uma conexão de emparelhamento de VPC ocorre em várias zonas de disponibilidade e regiões. Consulte Preços para uma conexão de emparelhamento de VPC.

Delegar acesso entre contas usando funções do IAM

Após configurar o emparelhamento de VPC entre contas, você delega o acesso entre contas usando funções do IAM.

Com o acesso entre contas usando funções do IAM, você permite que a conta primária (conta do Cloud Connector) assuma uma função do IAM para acessar recursos da AWS na conta secundária (VMs do catálogo de máquinas).

  • Para acessar recursos entre contas, faça o seguinte:

Lembre-se:

Presume-se que a VPC A esteja na conta primária (Conta A) e tenha o Cloud Connector e o Active Directory. A VPC B está na conta secundária (Conta B) onde você deseja provisionar as VMs.

  1. Configure o emparelhamento de VPC entre contas com as etapas mencionadas anteriormente.
  1. Adicione a política de confiança à função “arn:aws:iam::5678:role/citrix-role” para que ela possa ser acessada pela função da Conta A “arn:aws:iam::1234:role/primary-account-citrix-role”, conforme Acesso a recursos entre contas no IAM.
  2. Crie a função e a política do IAM na Conta A com o nome mencionado anteriormente “primary-account-citrix role”, que pode assumir a função do IAM e passar a função do IAM da Conta B (arn:aws:iam::5678:role/citrix-role).
  3. Atribua a função “arn:aws:iam::1234:role/primary-account-citrix-role” a todos os Cloud Connectors na Conta A.

Os Cloud Connectors agora podem assumir a função da Conta B (“arn:aws:iam::5678:role/citrix-role”).

  • Criar conexão de host para provisionamento entre contas

  • Crie uma conexão de host na conta secundária (Conta B) onde você deseja provisionar as VMs. Isso permite que os Cloud Connectors da Conta A acessem os recursos na Conta B após assumir a função da Conta B.

Use comandos do PowerShell para criar a conexão de host e adicionar as duas propriedades personalizadas a seguir:

-  `CrossAccountRoleArn`: Se você não fornecer a propriedade `CrossAccountRoleArn`, a conexão de host regular será criada. Nesse caso, `MaximumAssumeRoleDurationInSeconds` é ignorado mesmo que seja fornecido.
-  `MaximumAssumeRoleDurationInSeconds`: `DurationInSeconds` deve estar entre 900 segundos e 3600 segundos. O padrão é 900 segundos. Se você fornecer um valor maior que 3600, `DurationInSeconds` será definido como 3600.

Exemplo:


$connectionName = "cross-account-conn"
$cloudRegion = "us-east-1"
$apiKey = "role_based_auth"
$secretKey = "role_based_auth"
$zoneUid = "xxxxxx"
$secureKey = (ConvertTo-SecureString -String $secretKey -AsPlainText -Force)
$connectionPath = "XDHyp:\Connections\" + $connectionName
$customProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <Property xsi:type="StringProperty" Name="CrossAccountRoleArn" Value="arn:aws:iam::5678:role/citrix-role" /><Property xsi:type="StringProperty" Name="MaximumAssumeRoleDurationInSeconds" Value="3600" />
-  "</CustomProperties>'
 
$connection = New-Item -Path $connectionPath -ConnectionType "AmazonWorkSpacesCoreMachineManagerFactory" -HypervisorAddress "https://workspaces-instances.$($cloudRegion).api.aws" -Persist -Scope @() -UserName $apiKey -SecurePassword $secureKey -ZoneUid $zoneUid -CustomProperties $customProperties
 
New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid

<!--NeedCopy-->
Após a criação da conexão de host, crie unidades de hospedagem usando o Studio ou o PowerShell. No entanto, selecione VPC e Redes.

Ignorar Cloud Connectors para solicitações de API da AWS

Em ambientes de Instância Gerenciada (MI) do Amazon WorkSpaces Core, o plug-in Citrix Machine Creation Services (MCS) normalmente reside no Delivery Controller e roteia as solicitações de API da AWS através do Citrix Cloud Connector via proxy.

Você pode configurar conexões de host para ignorar o Cloud Connector para solicitações de API da AWS. Quando esse recurso é habilitado, o plug-in faz chamadas de API — incluindo aquelas para provisionamento e gerenciamento de energia — diretamente do DDC para os serviços da AWS (como Amazon EC2, EBS e instâncias do WorkSpaces), removendo a dependência de passar pelo Cloud Connector via proxy.

Benefícios

  • Reduzir a dependência de chamadas de API da AWS em Cloud Connectors: Remover a dependência de API da AWS no Cloud Connector é um passo fundamental para clientes que buscam reduzir sua pegada de infraestrutura local ou na nuvem.
  • Consumo de Recursos Reduzido: Menos tráfego através do Cloud Connector reduz os requisitos de computação para a VM do Connector, o que pode levar a economias de custo.
  • Flexibilidade Operacional: Oferece maior disponibilidade ao remover um ponto de falha potencial (o caminho do proxy Cloud Connector/NGS) para tarefas críticas de gerenciamento de energia e provisionamento.

Limitações e considerações

Antes de habilitar este recurso, considere os seguintes requisitos e limitações:

  • Autenticação: A autenticação baseada em função (funções do IAM) não é suportada ao ignorar o Cloud Connector. Você deve configurar a instalação apenas para chaves de acesso de usuário do IAM.
  • Escopo do ambiente: Este recurso é exclusivo para Instâncias Gerenciadas (MI) do Amazon WorkSpaces Core. Não é suportado para conexões de host padrão do AWS EC2.
  • Requisitos de rede: O DDC deve ter um caminho de rede direto para os endpoints de serviço da AWS.
  • Integridade do local do recurso: Se um Cloud Connector foi originalmente provisionado no local do recurso, ele deve permanecer ligado. Componentes não-MCS e verificações de integridade ainda dependem do Cloud Connector, se ele existir.
  • Recursos não suportados:
    • Provisionamento entre contas
    • Uso de proxy do sistema
  • Requisitos do Connector: Embora este recurso remova a dependência da API, existem outras configurações necessárias para reduzir as dependências em Cloud Connectors (os requisitos para Cloud Connectors podem não se limitar aos listados aqui):
    • Ingresso no domínio: Usando máquinas não ingressadas no domínio ou ingressadas no Microsoft Entra híbrido.
    • Registro de VDA: Habilitando o Rendezvous V2 (comunicação direta do DDC para o VDA via WebSockets) para registro de VDA.

Criar uma conexão de host com bypass de API

Ao criar uma conexão de host na Configuração Completa (Studio), agora você pode selecionar locais de recursos do Amazon WorkSpaces Core mesmo que nenhum Cloud Connector esteja presente nesse local.

Para habilitar o bypass via PowerShell, use a propriedade personalizada BypassConnectorForAwsApiRequests.

Exemplo de PowerShell:


$custProp = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation"> 
  <Property xsi:type="StringProperty" Name="BypassConnectorForAwsApiRequests" Value="true" /> 
</CustomProperties>' 
 
$connectionName = "MyWSCConnection" 
$cloudRegion = "us-east-1" 
$apiKey = "YOUR_IAM_ACCESS_KEY" 
$zoneUid = (Get-ConfigZone | Where-Object {$_.Name -eq "MyResourceLocation"}).Uid 
$securePassword = Read-Host 'Enter your IAM Secret Key' -AsSecureString 
 
$connectionPath = "XDHyp:\Connections\" + $connectionName 
 
$connection = New-Item -Path $connectionPath ` 
    -ConnectionType "Custom" ` 
    -PluginId "AmazonWorkSpacesCoreMachineManagerFactory" ` 
    -HypervisorAddress "https://workspaces-instances.$($cloudRegion).api.aws" ` 
    -Persist -Scope @() ` 
    -CustomProperties $custProp ` 
    -UserName $apiKey -SecurePassword $securePassword ` 
    -ZoneUid $zoneUid 
 
New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid

<!--NeedCopy-->

Gerenciar conexões existentes

Você pode habilitar ou desabilitar o recurso de bypass para conexões de host existentes.

  • Habilitar em conexões existentes: Você pode modificar as propriedades personalizadas de uma conexão existente para incluir BypassConnectorForAwsApiRequests = true.
  • Desabilitar: Se desabilitado, o DDC retoma o roteamento de chamadas de API da AWS através do Cloud Connector via proxy NGS. Observe que isso requer que um Cloud Connector funcional e um caminho de proxy NGS estejam disponíveis no local do recurso.

Solução de problemas

Se você tentar habilitar a propriedade de bypass em condições não suportadas, o sistema retornará um erro de validação:

  • Funções IAM/Contas cruzadas/Proxy: Se habilitado juntamente com funções IAM, provisionamento entre contas ou proxies de sistema, o comando New-Item falhará com:

    
     AmazonWorkSpacesCoreException: Bypassing the Cloud Connector For AWS API requests is not supported for IAM roles, Cross-Account provisioning and System Proxy.
    
     <!--NeedCopy-->
    

    Tipo de conexão não suportado: Se aplicado a uma conexão padrão do Amazon EC2 (AWS), o sistema falhará com:

    
     AmazonWorkSpacesCoreException: Bypassing the Cloud Connector For AWS API requests is not supported for EC2 host connection.
    
     <!--NeedCopy-->
    

Editar uma conexão

Você pode editar uma conexão de host existente para:

Editar opções para fornecer permissões IAM

  1. Clique com o botão direito do mouse em uma conexão existente do Amazon WorkSpaces Core.
  2. Na página “Propriedades da Conexão”, clique em “Editar configurações”.
  3. Selecione uma das opções para fornecer permissões IAM para a Citrix gerenciar recursos. Insira os detalhes necessários e clique em “Salvar”.

Modificar o número máximo de ações simultâneas

Ao criar conexões de host no Studio para instâncias gerenciadas do Amazon WorkSpaces Core, 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 150 n/d
Máximo de operações de provisionamento simultâneas 150 n/d

O MCS suporta 150 operações de provisionamento simultâneas máximas por padrão.

Você pode configurar esses valores acessando a seção “Avançado” do Citrix Studio na tela “Editar Conexão”:

Como alternativa, você pode usar o SDK Remoto do PowerShell para definir o número máximo de operações simultâneas para configurações ideais por ambiente.

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

Antes da configuração:

  • Certifique-se de ter instalado o SDK do PowerShell para Cloud.
  • Entenda que o valor padrão para MaximumConcurrentProvisioningOperations é 150.

Execute as seguintes etapas para personalizar o valor de MaximumConcurrentProvisioningOperations:

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

    • Se a cadeia de caracteres de Propriedades Personalizadas tiver um valor, copie as Propriedades Personalizadas para o Bloco de Notas. Em seguida, altere a propriedade MaximumConcurrentProvisioningOperations para o valor preferido. Você pode inserir um valor no intervalo de 1 a 1000. Por exemplo, <Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="xyz"/>.

    • Se a cadeia de caracteres de Propriedades Personalizadas estiver vazia ou nula, você deve inicializar a cadeia de caracteres inserindo a sintaxe apropriada para o esquema e para a propriedade MaximumConcurrentProvisioningOperations.

  6. Na janela do PowerShell, cole as Propriedades Personalizadas modificadas do Bloco de Notas e atribua uma variável às Propriedades Personalizadas modificadas. Se você inicializou as Propriedades Personalizadas, adicione as seguintes linhas após 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>'
    
    <!--NeedCopy-->
    

    Esta cadeia de caracteres define a propriedade MaximumConcurrentProvisioningOperations como 100. Na cadeia de caracteres de Propriedades Personalizadas, você deve definir a propriedade MaximumConcurrentProvisioningOperations para um valor que se alinhe às suas necessidades.

  7. Insira Get-XDAuthentication, que solicitará suas credenciais.
  8. Execute $cred = Get-Credential, que pode solicitar apenas uma Senha (ou um Nome e uma Senha). Você também pode receber uma solicitação para 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 da API e o segredo da AWS.
  9. Execute set-item -PSPath 'XDHyp:\Connections<connection-name>' -CustomProperties $customProperties -username $cred.username -Securepassword $cred.password. Você deve definir o <nome-da-conexão> para o nome da conexão.
  10. Insira dir para verificar a string CustomProperties atualizada.

Configurar grupos de segurança por interface de rede

Ao editar uma conexão de host, agora você pode configurar o número máximo de grupos de segurança permitidos por interface de rede elástica (ENI) usando um comando PowerShell. Para obter informações sobre os valores de cota de grupos de segurança da AWS, consulte Grupos de segurança.

Para configurar grupos de segurança por interface de rede:

  1. Abra uma janela do PowerShell.
  2. Execute asnp citrix* para carregar os módulos PowerShell específicos da Citrix.
  3. Execute cd xdhyp:\Connections\.
  4. Execute dir para listar as conexões.
  5. Execute o seguinte comando PowerShell para configurar grupos de segurança por interface de rede:

    
    Set-HypHypervisorConnectionMetadata -HypervisorConnectionName aws -Name "Citrix_MachineManagement_Options" -Value " AwsMaxENISecurityGroupLimit=<number>"
    
    <!--NeedCopy-->
    

    Observação:

    Se você não definir um valor para AwsMaxENISecurityGroupLimit, ele assumirá o valor padrão de 5.

Habilitar o proxy em uma conexão existente

  1. Abra uma janela do PowerShell.
  2. Execute os seguintes comandos.

    
    Add-PSSnapin citrix*.
    cd XDHyp:\Connections\
    dir
    
    <!--NeedCopy-->
    
  3. Copie as CustomProperties da conexão para um bloco de notas e anexe a configuração de propriedade <Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" /> às CustomProperties para habilitar o proxy.
  4. Na janela do PowerShell, atribua uma variável às propriedades personalizadas modificadas. Por exemplo:

    
    $customProperty = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
    <Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" />
    </CustomProperties>'
    
    <!--NeedCopy-->
    
  5. Insira Get-XDAuthentication, que solicitará suas credenciais.
  6. Execute $cred = Get-Credential, que pode solicitar apenas uma Senha (ou um Nome e uma Senha). Você também pode receber uma solicitação para 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 da API e o segredo da AWS.

  7. Execute set-item -PSPath 'XDHyp:\Connections<connection-name>' -CustomProperties $customProperties -username $cred.username -Securepassword $cred.password. Você deve definir o <connection-name> para o nome da conexão.
  8. Insira dir para verificar a string CustomProperties atualizada.

URL do endpoint de serviço

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

Ao usar o MCS, uma nova conexão de instâncias gerenciadas do Amazon WorkSpaces Core é 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 regiões e zonas suportadas usando chamadas de API do AWS EC2 e do Amazon WorkSpaces Core Managed Instances. A consulta é feita usando uma URL de endpoint de serviço de instâncias do Workspace https://workspaces-instances.us-east-1.api.aws/ e um endpoint de serviço EC2 https:/ec2.us-east-1.api.aws/.

Observação:

Certifique-se de que https://workspaces-instances.us-east-1.api.aws/ esteja acessível.

  • URL do endpoint de serviço não padrão

  • Pode haver situações em que você não precise da URL do endpoint 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 endpoint de serviço não padrão. Por exemplo, para criar uma conexão usando a URL do endpoint de serviço https://ec2.cn-north-1.amazonaws.com.cn:

    1. Configure o Cloud Connector hospedado na AWS e certifique-se de que ele tenha conectividade.
    1. Execute os seguintes comandos PowerShell para ver a lista de Cloud Connectors.
    
      PS C:\> asnp citrix.*
      PS C:\> Get-XDAuthentication
      PS C:\> Get-ConfigEdgeServer
    
     <!--NeedCopy-->
    
  1. Encontre o ZoneUid do Cloud Connector recém-criado e insira-o nos seguintes comandos PowerShell. Substitua os itens em itálico pelos respectivos valores.

    
    PS C:\> $hyp= New-Item -Path xdhyp:\Connections -ZoneUid ZoneUid -Name “My New Connection” -ConnectionType "Custom" -HypervisorAddress @("https://workspaces-instances.$($cloudRegion).api.aws")-PluginId "AmazonWorkSpacesCoreMachineManagerFactory" -UserName “APIkey” -Password “API Secret” -Persist 
    
    PS C:\> New-BrokerHypervisorConnection -HypHypervisorConnectionUid $hyp. HypervisorConnectionUid
    
    <!--NeedCopy-->
    
  2. Atualize a guia Hosting para verificar se a conexão foi criada.
  3. Adicione um local de recurso usando a nova conexão.

Permissões AWS necessárias

Esta seção contém a lista completa de permissões da AWS. Use o conjunto completo de permissões conforme fornecido na seção para que a funcionalidade funcione corretamente.

Observação:

A permissão iam:PassRole é necessária apenas para usar funções IAM para a Citrix gerenciar recursos.

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:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:DescribeRegions",
                "workspaces-instances:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

<!--NeedCopy-->

Gerenciamento de energia de VMs

As VMs são ligadas ou desligadas.


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeInstances",,
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances",
                "ec2:DescribeInstanceStatus"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
           "Action": [
               "workspaces-instances:*"
           ],
           "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 AWS.


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupEgress",
                "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:DescribeInstanceStatus",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSpotInstanceRequests",
                "ec2:DescribeInstanceCreditSpecifications",
                "ec2:DescribeInstanceAttribute",
                "ec2:GetLaunchTemplateData",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "workspaces-instances:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }

    ]
}

<!--NeedCopy-->

Observação:

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

Carregamento e download direto de disco

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

Criptografia EBS de volumes criados

O EBS pode criptografar automaticamente volumes recém-criados se a AMI for 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:GenerateDataKey",
                 "kms:ReEncryptTo",
-  "kms:ReEncryptFrom"
-  ],
-  "Resource": "*"
        }
    ]
}

<!--NeedCopy-->

Observação:

As permissões podem ser limitadas a chaves específicas, incluindo um bloco de Recurso e Condição, a critério da pessoa usuária. 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: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 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 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 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 às pessoas usuárias conforme explicado nas seções Definir permissões IAM ou você também pode usar a autenticação baseada em função selecionando “Usar função IAM” ao configurar uma conexão de host.

Importante:

Para usar funções IAM para o Citrix gerenciar recursos, 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 selecione a opção “Usar função IAM”. 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:RevokeSecurityGroupEgress",
                "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:DescribeInstanceStatus",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSpotInstanceRequests",
                "ec2:DescribeInstanceCreditSpecifications",
                "ec2:DescribeInstanceAttribute",
                "ec2:GetLaunchTemplateData",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RebootInstances",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "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/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "workspaces-instances:*"
            ],
            "Resource": "*"
        }

    ]
}

<!--NeedCopy-->

Observação:

  • 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 usar funções IAM para o Citrix gerenciar recursos.
  • 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.
  • Use as permissões ec2:CreateNetworkInterface e ec2:DeleteNetworkInterface somente se você estiver usando o método de worker de volume.

Onde ir em seguida

Mais informações

Conexão com instâncias gerenciadas do Amazon WorkSpaces Core