Conexão com a AWS
Criar e gerenciar conexões e recursos Descreve os assistentes que criam uma conexão. As informações a seguir abrangem detalhes específicos dos ambientes de nuvem da AWS.
Observação:
Antes de criar uma conexão com a AWS, você precisa primeiro concluir a configuração da AWS como um local de recurso. Ver Ambientes de virtualização da AWS.
Criar uma conexão
Quando você cria uma conexão usando o Studio:
- Você deve fornecer os valores da chave de API e da chave secreta. Você pode exportar o arquivo de chave que contém esses valores da AWS e importá-los. Você também deve fornecer a região, a zona de disponibilidade, o nome da VPC, os endereços de sub-rede, o nome de domínio, os nomes dos grupos de segurança e as credenciais.
- O arquivo de credenciais da 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 Citrix DaaS não pode usar o arquivo para preencher os campos de chave de API e chave secreta. Certifique-se de estar usando arquivos de credenciais do AWS Identity Access Management (IAM).
Observação:
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 servidor proxy ou do firewall e certifique-se de que o seguinte endereço possa ser contatado:
https://*.amazonaws.com
.
Limitação
Se você alterar o nome de uma AWS Virtual Private Cloud (VPC) no console da AWS, a unidade de hospedagem existente no Citrix Cloud será interrompida. Quando a unidade de hospedagem está quebrada, você não pode criar catálogos ou adicionar máquinas a catálogos existentes. Para resolver o problema, altere o nome da AWS VPC de volta para o nome original.
Valores padrão de conexão de host
Quando você cria conexões de host no Studio para o ambiente de nuvem da AWS, os seguintes valores padrão são exibidos:
Opção | Absoluto | Porcentagem |
---|---|---|
Ações simultâneas (todos os tipos) | 125 | 100 |
Máximo de novas ações por minuto | 150 | n/a |
Máximo de operações de provisionamento simultâneas | 100 | n/a |
O MCS oferece suporte a 100 operações de provisionamento simultâneas no máximo por padrão.
Você pode configurar esses valores acessando o Citrix Studio Avançado sobre o Editar conexão tela:
Como alternativa, você pode usar o SDK do PowerShell Remoto para definir o número máximo de operações simultâneas para configurações ideais de acordo com seu ambiente.
Use a propriedade personalizada do PowerShell, MaximumConcurrentProvisioningOperations
, para especificar o número máximo de operações simultâneas de provisionamento da AWS.
Antes da configuração:
- Verifique se você instalou o SDK do PowerShell para Nuvem.
- Entenda que o valor padrão para
MaximumConcurrentProvisioningOperations
é 100.
Execute as etapas a seguir para personalizar o MaximumConcurrentProvisioningOperations
valor:
- Abra um PowerShell janela.
- Execute
asnp citrix*
para carregar os módulos PowerShell específicos do Citrix. - Digite ‘cd xdhyp:\Conexões'.
- Entrar
Dir
para listar as conexões. -
Altere ou inicialize a cadeia de caracteres de propriedades personalizadas:
-
Se a cadeia de caracteres Propriedades personalizadas tiver um valor, copie as Propriedades personalizadas para o Bloco de Notas. Em seguida, altere o
MaximumConcurrentProvisioningOperations
ao valor de sua preferência. Você pode inserir um valor que varia de 1 a 1000. Por exemplo<Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="xyz"/>
. -
Se a cadeia de caracteres de Propriedades Personalizadas estiver vazia ou nula, você deverá inicializar a cadeia de caracteres inserindo a sintaxe adequada para o esquema e a
MaximumConcurrentProvisioningOperations
propriedade.
-
-
No 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>'
.Essa string define o
MaximumConcurrentProvisioningOperations
propriedade para 100. Na cadeia de caracteres Propriedades Personalizadas, você deve definir oMaximumConcurrentProvisioningOperations
a um valor que se alinhe às suas necessidades. - Entrar
Get-XDAuthentication
, que solicita suas credenciais. - Correr
$cred = Obter credencial
, que pode solicitar apenas uma senha (ou um nome e senha). Você também pode ser solicitado a fornecer a ID do aplicativo e o segredo associado. Para conexões que usam autenticação baseada em função, role_based_auth é o Nome e a Senha. Caso contrário, insira o ID e o segredo da API da AWS. - Correr
set-item -PSPath 'XDHyp:\Conexões<connection-name>' -CustomProperties $customProperties -nome de usuário $cred.username -Securepassword $cred.senha
. Você deve definir o <nome da conexão> ao nome da conexão. - Entrar
Dir
para verificar a cadeia de caracteres 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 ENI (interface de rede elástica) usando um comando do PowerShell. Para obter informações sobre os valores de cota dos grupos de segurança da AWS, consulte Grupos de segurança.
Para configurar grupos de segurança por adaptador de rede:
- Abra uma janela do PowerShell.
- Execute
asnp citrix*
para carregar os módulos PowerShell específicos do Citrix. - Execute ‘cd xdhyp:\Conexões'.
- Correr
Dir
para listar as conexões. -
Execute o seguinte comando do PowerShell para configurar grupos de segurança por adaptador 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
, então ele assume o valor padrão de 5.
URL do ponto de extremidade de serviço
URL do ponto de extremidade de serviço da zona padrão
Quando você usa o MCS, uma nova conexão da AWS é adicionada com uma chave de API e um segredo de API. Com essas informações, juntamente com a conta autenticada, o MCS consulta a AWS para as zonas compatíveis usando a chamada de API do EC2 do AWS DescribeRegions. A consulta é feita usando um URL genérico do endpoint de serviço do EC2 https://ec2.amazonaws.com/
. Use o MCS para selecionar a zona para a conexão na lista de zonas compatíveis. O URL do endpoint de serviço preferencial da AWS é selecionado automaticamente para a zona. No entanto, depois de criar a URL do ponto de extremidade de serviço, você não poderá mais definir ou modificar a URL.
URL do ponto de extremidade de serviço não padrão
Pode haver situações em que você pode não precisar do URL do endpoint de serviço da AWS escolhido 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 ponto de extremidade de serviço https://ec2.cn-north-1.amazonaws.com.cn
:
- Configure o Cloud Connector hospedado pela AWS e verifique se ele tem conectividade.
-
Execute os comandos do PowerShell a seguir para ver a lista de Cloud Connectors.
PS C:\> asnp citrix.* PS C:\> Get-XDAuthentication PS C:\> Get-ConfigEdgeServer <!--NeedCopy-->
-
Localize o ZoneUid do Cloud Connector recém-criado e insira-o nos seguintes comandos do PowerShell. Substitua os itens em itálico pelos respectivos valores.
PS C:\> $hyp= New-Item -Path xdhyp:\Connections -ZoneUid
ZoneUid-Name
“My New Connection”-ConnectionType "AWS" -HypervisorAddress @("https://ec2.cn-north-1.amazonaws.com.cn") -UserName
“APIkey”-Password
“API Secret”-Persist
PS C:\> New-BrokerHypervisorConnection -HypHypervisorConnectionUid $hyp. HypervisorConnectionUid
- Atualize o Hospedagem para verificar se a conexão do EC2 foi criada.
- Adicione um local de recurso usando a nova conexão.
Definir permissões do IAM
Use as informações nesta seção para definir permissões do IAM para o Citrix DaaS na AWS. O serviço IAM da Amazon permite contas com vários usuários, que podem ser organizados em grupos. Esses usuários podem possuir permissões diferentes para controlar sua capacidade de executar operações associadas à conta. Para obter mais informações sobre permissões do IAM, consulte o Referência de política JSON do IAM.
Para aplicar a política de permissões do IAM a um novo grupo de usuários:
- Faça login no Console de Gerenciamento da AWS e selecione a opção Serviço do IAM na lista suspensa.
- Selecionar Criar um novo grupo de usuários.
- Digite um nome para o novo grupo de usuários e selecione Continuar.
- No Permissões página, escolha Política personalizada então Selecionar.
- Digite um nome para o Política de permissões.
- No Documento de política , insira as permissões relevantes.
Depois de 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 fornecido neste artigo para listar as ações que um Citrix DaaS usa para executar ações em uma conta da AWS sem restringir essas ações a recursos específicos. A Citrix recomenda que você use o exemplo para fins de teste. Para ambientes de produção, você pode optar por adicionar mais restrições aos recursos.
Adicionar permissões do IAM
Adicione as permissões no IAM do Console de Gerenciamento da AWS:
- No Resumo , selecione o ícone Permissões guia.
- Selecionar Adicione permissões.
No Adicionar permissões a tela, conceda permissões:
Use o seguinte como exemplo no JSON guia:
Dica:
O exemplo JSON observado pode não incluir todas as permissões para seu ambiente. Ver Sobre as permissões da AWS para obter mais informações.
Permissões necessárias da AWS
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:
O
iam:PassRole
permissão é 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:DescribeSubnets",
"ec2:DescribeVpcs",
"ec2:DescribeRegions",
],
"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"
],
"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 da AWS.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:AttachVolume",
"ec2:AssociateIamInstanceProfile",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CreateImage",
"ec2:CreateLaunchTemplate",
"ec2:CreateSecurityGroup",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:DeleteVolume",
"ec2:DescribeAccountAttributes",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeIamInstanceProfileAssociations",
"ec2:DescribeImages",
"ec2:DescribeInstances",
"ec2:DescribeInstanceTypes",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeLaunchTemplateVersions",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeRegions",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSnapshots",
"ec2:DescribeSubnets",
"ec2:DescribeTags",
"ec2: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": "*"
}
]
}
<!--NeedCopy-->
Observação:
- A seção EC2 relacionada a SecurityGroups só será necessária se um Grupo de Segurança de Isolamento precisar ser criado para a VM de Preparação durante a criação do catálogo. Feito isso, essas permissões não são necessárias.
Upload e download direto do disco
O upload direto de disco elimina o requisito de operador de volume para provisionamento de catálogo 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 de volume de trabalho.
Observação:
O suporte para o volume worker foi preterido.
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 nenhum recurso de operador de volume, como AMI de operador de volume e VM de operador de volume.
- Se você excluir um catálogo existente que usou qualquer trabalhador de volume antes, todos os artefatos relacionados ao trabalhador de volume serão excluídos.
Criptografia do 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 permissões a seguir devem ser incluídas na política do IAM.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:Decrypt",
"kms:DescribeKey",
"kms:GenerateDataKeyWithoutPlainText",
"kms:GenerateDataKey",
"kms:ReEncryptTo",
"kms:ReEncryptFrom"
],
"Resource": "*"
}
]
}
<!--NeedCopy-->
Observação:
As permissões podem ser limitadas a chaves específicas, incluindo um bloco de Recursos e Condições, a critério do usuário. Por exemplo Permissões do KMS com condição:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:Decrypt",
"kms:DescribeKey",
"kms:GenerateDataKeyWithoutPlainText",
"kms:GenerateDataKey",
"kms:ReEncryptTo",
"kms:ReEncryptFrom"
],
"Resource": [
"arn:aws:kms:us-east-2:123456789012:key/abcd1234-a123-456d-a12b-a123b4cd56ef"
],
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": true
}
}
}
]
}
<!--NeedCopy-->
A declaração de política de chaves a seguir é toda a política de chaves padrão para chaves do KMS necessária para permitir que a conta use políticas do IAM para delegar permissão para todas as ações (kms:*) na chave do KMS.
{
"Sid": "Enable IAM policies",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "kms:",
"Resource": ""
}
<!--NeedCopy-->
Para obter mais informações, consulte o Documentação oficial do AWS Key Management Service.
Autenticação baseada em função do IAM
As permissões a seguir são adicionadas para dar suporte à autenticação baseada em função.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::*:role/*"
}
]
}
<!--NeedCopy-->
Política de permissões mínimas do IAM
O JSON a seguir pode ser usado para todos os recursos com suporte no momento. Você pode criar conexões de host, criar, atualizar ou excluir VMs e fazer o gerenciamento de energia usando essa política. A política pode ser aplicada aos usuários, conforme explicado em Definir permissões do IAM ou você também pode usar a autenticação baseada em função usando role_based_auth chave de segurança e chave secreta.
Importante:
Para usar role_based_auth, primeiro configure a função do 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 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: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/*"
}
]
}
<!--NeedCopy-->
Observação:
- A seção EC2 relacionada a SecurityGroups só será necessária se um Grupo de Segurança de Isolamento precisar ser criado para a VM de Preparação durante a criação do catálogo. Feito isso, essas permissões não são necessárias.
- A seção KMS só é necessária ao usar a criptografia de volume do EBS.
- O
iam:PassRole
permissão é necessária apenas para role_based_auth.- Permissões específicas no nível do 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 no nível do recurso do EC2 e Gerenciamento de acesso para recursos da AWS para mais detalhes.
- Usar
ec2:CreateNetworkInterface
eec2:ExcluirInterface de Rede
somente se você estiver usando o método de volume worker.
Validar permissões na conexão do host
Você pode validar permissões em uma conexão de host para realizar tarefas relacionadas à criação e ao gerenciamento de catálogos de máquinas do 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 do 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 do PowerShell Conexão Test-HypHypervisor
. O resultado do comando é capturado como uma lista em que cada item da lista é dividido em três seções.
- Categoria: a ação ou tarefa que um usuário pode executar para criar e gerenciar um catálogo de máquinas do MCS.
- Ação corretiva: a etapa que um administrador deve executar para resolver a 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 no host do Delivery Controller.
- Execute
asnp citrix*
para carregar os módulos PowerShell específicos do Citrix. -
Execute o comando a seguir para verificar se você tem as permissões necessárias para pesquisar suas permissões.
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" <!--NeedCopy-->
-
Depois de adicionar as permissões ausentes necessárias para pesquisar suas permissões, execute o seguinte comando para verificar se você tem permissões nas seguintes categorias:
- Criar atualização 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 Adicionar permissões do IAM.
Para onde ir a seguir
- Se você estiver no processo de implantação inicial, consulte Criar catálogos de máquinas.
- Para obter informações específicas da AWS, consulte Criar um catálogo da AWS.