Conexão com AWS
Criar e gerenciar conexões e recursos descreve os assistentes que criam uma conexão. As informações a seguir cobrem detalhes específicos para ambientes de nuvem AWS.
Nota:
Antes de criar uma conexão com a AWS, você precisa primeiro concluir a configuração da sua conta AWS como um local de recurso. Consulte Ambientes de nuvem AWS.
Criar uma conexão
Ao criar uma conexão no Web 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 depois 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ê está 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 |
Por padrão, o MCS suporta um máximo de 100 operações de provisionamento simultâneas.
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 de Endpoint de Serviço EC2 genérica https://ec2.amazonaws.com/. Use o MCS para selecionar a zona para a conexão na lista de zonas suportadas. A URL de endpoint de serviço AWS preferencial é 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.
Definir permissões IAM
Use as informações nesta seção para definir permissões IAM para Citrix Virtual Apps and Desktops na AWS. O serviço IAM da Amazon permite contas com vários usuários, que podem ser ainda 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 a referência de política JSON do IAM.
Para aplicar a política de permissões IAM a um novo grupo de usuários:
- Faça login no console de gerenciamento da AWS e selecione o serviço IAM na lista suspensa.
- Selecione Criar um Novo Grupo de Usuários.
- Digite um nome para o novo grupo de usuários e selecione Continuar.
- Na página Permissions, escolha Custom Policy. Selecione Select.
- Digite um nome para a Permissions policy.
- Na seção Policy Document, insira as permissões relevantes.
Após 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 apenas as ações necessárias para o Citrix Virtual Apps and Desktops.
Importante:
Use o texto da política fornecido no exemplo anterior para listar as ações que o Citrix Virtual Apps and Desktops usa para executar ações em 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.
Definir permissões IAM
Defina as permissões na seção IAM do AWS Management Console:
- No painel Summary, selecione a guia Permissions.
- Selecione Add permissions.

Na tela Add Permissions to, conceda permissões:

Use o seguinte como exemplo na guia 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 no AWS para obter mais informações.
Permissões AWS necessárias
Esta seção contém a lista completa de permissões 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 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",
"ec2:DescribeInstanceStatus"
],
"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: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: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 grupos de segurança é 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 de manter as operações do volume worker.
Nota:
O suporte para volume worker foi descontinuado.
As seguintes permissões devem ser adicionadas à política:
ebs:StartSnapshotebs:GetSnapshotBlockebs:PutSnapshotBlockebs:CompleteSnapshotebs:ListSnapshotBlocksebs:ListChangedBlocksec2:CreateSnapshotec2:DeleteSnapshotec2:DescribeLaunchTemplates
Importante:
- Você pode adicionar uma VM a catálogos de máquinas existentes sem nenhuma operação de volume worker, como AMI de volume worker e VM de volume worker.
- 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 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 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 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 do 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 do 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 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 gerenciamento de energia usando esta política. A política pode ser aplicada aos usuários conforme explicado nas seções Definir permissões do 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 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 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: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:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CreateSecurityGroup",
"ec2:DeleteSecurityGroup",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"s3:CreateBucket",
"s3:DeleteBucket",
"s3:DeleteObject",
"s3:GetObject",
"s3:PutBucketAcl",
"s3:PutObject",
"s3:PutBucketTagging",
"s3:PutObjectTagging"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::citrix*"
},
{
"Action": [
"ebs:StartSnapshot",
"ebs:GetSnapshotBlock",
"ebs:PutSnapshotBlock",
"ebs:CompleteSnapshot",
"ebs:ListSnapshotBlocks",
"ebs:ListChangedBlocks",
"ec2:CreateSnapshot"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:Decrypt",
"kms:DescribeKey",
"kms:GenerateDataKeyWithoutPlainText",
"kms:GenerateDataKey",
"kms:ReEncryptTo",
"kms:ReEncryptFrom"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::*:role/*"
}
]
}
<!--NeedCopy-->
Nota:
- A seção EC2 relacionada a SecurityGroups só é 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. 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.
Validar permissões na conexão do host
Você pode validar as permissões em uma conexão de host para realizar tarefas relacionadas à criação e gerenciamento de catálogos de máquinas MCS. Essa implementação ajuda você a descobrir as permissões ausentes necessárias para diferentes cenários, como criação, exclusão e atualização de VMs, gerenciamento de energia de VMs e criptografia EBS, com antecedência, para que você possa evitar ser bloqueado em momentos críticos.
Você pode validar as permissões em uma conexão de host usando o comando PowerShell Test-HypHypervisorConnection. O resultado do comando é capturado como uma lista, onde cada item da lista é dividido em três seções.
- Categoria: A ação ou tarefa que um usuário pode realizar para criar e gerenciar um catálogo de máquinas MCS.
- Ação Corretiva: A etapa que um administrador deve realizar para resolver uma discrepância de permissões ausentes de um usuário.
- Permissão ausente: A lista de permissões ausentes para uma categoria.
Para validar as permissões, faça o seguinte:
- Crie uma conexão de host com a AWS.
- Abra uma janela do PowerShell a partir do host do Delivery Controller™.
- Execute
asnp citrix*para carregar os módulos PowerShell específicos da Citrix. -
Execute o seguinte comando para verificar se você tem as permissões necessárias para consultar suas permissões.
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" <!--NeedCopy--> -
Depois de adicionar as permissões ausentes necessárias para consultar suas permissões, execute o seguinte comando para verificar se você tem permissões nas seguintes categorias:
- Criar Atualizar excluir
- Gerenciamento de Energia
- Criptografia EBS
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" [-SecurePassword -Password] "password" -UserName "" -CustomProperties "" <!--NeedCopy-->
Para obter mais informações sobre como adicionar permissões, consulte Definir permissões IAM.
Onde ir em seguida
- Se você estiver no processo de implantação inicial, consulte Criar catálogos de máquinas
- Para obter informações específicas do AWS, consulte Criar um catálogo AWS