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 para ambientes de nuvem AWS.
Nota:
Antes de criar uma conexão com a AWS, você precisa primeiro concluir a configuração da sua AWS como um local de recurso. Consulte Ambientes de virtualização AWS.
Criar uma conexão
Ao criar 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 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 grupo 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 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).
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 esteja acessível:
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 é 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 da AWS de volta para o nome original.
Valores padrão de conexão de host
Ao criar conexões de host no Studio para o ambiente 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 | 150 | n/a |
Máximo de operações de provisionamento simultâneas | 100 | n/a |
O MCS suporta 100 operações de provisionamento simultâneas máximas por padrão.
Você pode configurar esses valores acessando a seção Advanced do Citrix Studio na tela Edit Connection:
Alternativamente, você pode usar o Remote PowerShell SDK 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 AWS simultâneas.
Antes da configuração:
- Certifique-se de ter instalado o PowerShell SDK para Cloud.
- Entenda que o valor padrão para
MaximumConcurrentProvisioningOperations
é 100.
Execute as seguintes etapas para personalizar o valor de MaximumConcurrentProvisioningOperations
:
- Abra uma janela do PowerShell.
- Execute
asnp citrix*
para carregar os módulos PowerShell específicos do Citrix. - Digite
cd xdhyp:\Connections\
. - Digite
dir
para listar as conexões. -
Altere ou inicialize a string de Propriedades Personalizadas:
-
Se a string 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 string de Propriedades Personalizadas estiver vazia ou nula, você deve inicializar a string inserindo a sintaxe apropriada para o esquema e para a propriedade
MaximumConcurrentProvisioningOperations
.
-
-
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>'
.Esta string define a propriedade
MaximumConcurrentProvisioningOperations
como 100. Na string de Propriedades Personalizadas, você deve definir a propriedadeMaximumConcurrentProvisioningOperations
para um valor que se alinhe às suas necessidades. - Digite
Get-XDAuthentication
, que solicitará suas credenciais. - Execute
$cred = Get-Credential
, que pode solicitar apenas uma senha (ou um nome e senha). Você também pode ser solicitado a fornecer 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 da AWS e o segredo. - 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. - Digite
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 Security groups.
Para configurar grupos de segurança por interface de rede:
- Abra uma janela do PowerShell.
- Execute
asnp citrix*
para carregar os módulos PowerShell específicos do Citrix. - Execute
cd xdhyp:\Connections\
. - Execute
dir
para listar as conexões. -
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-->
Nota:
Se você não definir um valor para
AwsMaxENISecurityGroupLimit
, ele assumirá o valor padrão de 5.
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 fazer com que seu Cloud Connector e as VMs provisionadas em diferentes regiões ou contas se comuniquem 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 da 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.
Para permitir que os Cloud Connectors acessem 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:
- Configure o emparelhamento de VPC e configure os grupos de segurança em ambas as regiões ou contas. Consulte Configurar emparelhamento de VPC.
- Delegue o acesso entre contas usando funções IAM. Consulte Delegar acesso entre contas usando funções IAM.
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:
-
Crie uma conexão de emparelhamento de VPC. Consulte:
- Vá para sua VPC A e para a tabela de rotas associada à sub-rede pública.
- Clique em Edit Routes > Add route. Adicione o bloco CIDR da VPC B na coluna Destination e adicione o emparelhamento de VPC que você criou na coluna Target.
- 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 Update your route tables for a VPC peering connection.
- Vá para o grupo de segurança privado associado à VPC A.
- Selecione Actions e, em seguida, Edit inbound rules.
-
Selecione Add rule. Para o tipo, selecione All Traffic e, em seguida, na coluna Source adicione:
- Se for uma região diferente, adicione o Bloco CIDR da VPC B.
- Se for uma conta diferente, mas a 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).
- 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 conta diferente). Consulte Update your security groups to reference peer security groups.
Nota:
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 Pricing for a VPC peering connection.
Delegar acesso entre contas usando funções IAM
Após configurar o emparelhamento de VPC entre contas, você delega o acesso entre contas usando funções IAM.
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 da AWS na conta secundária (VMs do catálogo de máquinas).
Para acessar recursos entre contas, faça o seguinte:
Lembre-se:
Assumindo, a VPC A está na conta primária (Conta A) e tem o Cloud Connector e o Active Directory. A VPC B está na conta secundária (Conta B) onde você deseja provisionar as VMs.
- Configure o emparelhamento de VPC entre contas com as etapas mencionadas anteriormente.
- Crie uma função e política IAM na Conta B com permissões IAM mínimas do Citrix. Consulte IAM tutorial: Delegate access across AWS accounts using IAM roles. Digamos que o ARN dessa função seja “arn:aws:iam::5678:role/citrix-role”.
- 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 Cross account resource access in IAM.
- Crie a função e política IAM na Conta A com o nome mencionado anteriormente “primary-account-citrix role”, que pode assumir a função IAM e passar a função IAM da Conta B (arn:aws:iam::5678:role/citrix-role).
- 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 PowerShell para criar a conexão de host e adicione as duas propriedades personalizadas a seguir:
-
CrossAccountRoleArn
: Se você não fornecer a propriedadeCrossAccountRoleArn
, 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 "AWS" -HypervisorAddress "https://ec2.$($cloudRegion).amazonaws.com" -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.
URL do endpoint de serviço
URL do endpoint de serviço de 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 preferida é 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.
URL do endpoint de serviço não padrão
Pode haver situações em que você não precise da URL de Endpoint de Serviço AWS escolhida automaticamente para a conexão. Para esses 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 de endpoint de serviço https://ec2.cn-north-1.amazonaws.com.cn
:
- Configure o Cloud Connector hospedado na AWS e certifique-se de que ele tenha conectividade.
-
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-->
-
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 "AWS" -HypervisorAddress @("https://ec2.cn-north-1.amazonaws.com.cn") -UserName
“APIkey”-Password
“API Secret”-Persist
PS C:\> New-BrokerHypervisorConnection -HypHypervisorConnectionUid $hyp. HypervisorConnectionUid
- Atualize a guia Hosting para verificar se a conexão EC2 foi criada.
- Adicione um local de recurso usando a nova conexão.
Definir 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 que 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 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 Create a New Group of Users.
- Digite um nome para o novo grupo de usuários e selecione Continue.
- Na página Permissions, escolha Custom Policy e, em seguida, 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 a aplicação da política de permissões 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 neste artigo para listar as ações que um Citrix DaaS usa para realizar 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.
Adicionar permissões IAM
Adicione 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 Sobre as permissões da AWS para obter mais informações.
Permissões AWS necessárias
Esta seção contém a lista completa de permissões AWS. Use o conjunto completo de permissões conforme fornecido na seção para que a funcionalidade funcione corretamente.
Nota:
A permissão
iam:PassRole
é necessária apenas para role_based_auth.
Criar 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-->
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: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-->
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.
Importar VMs
Um catálogo de máquinas é criado importando VMs.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:DescribeInstances",
"ec2:DescribeSecurityGroups",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeSubnets",
"ec2:DescribeVolumes",
"ec2:DescribeSpotInstanceRequests"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
<!--NeedCopy-->
Nota:
O
ec2:DescribeSpotInstanceRequests
é necessário apenas se houver uma instância spot na região da AWS de onde as VMs serão importadas.
Upload e download direto de disco
O upload direto de disco elimina a necessidade de um volume worker para o provisionamento do catálogo de máquinas e, em vez disso, usa APIs públicas fornecidas pela AWS. Essa funcionalidade reduz o custo associado a contas de armazenamento extras e a complexidade para manter as operações do volume worker.
Nota:
O suporte para volume worker foi removido. As permissões de upload e download direto de disco são necessárias para o provisionamento do catálogo de máquinas.
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 quaisquer recursos de volume worker, como AMI de volume worker e VM de volume worker.
- Se você excluir um catálogo existente que usava qualquer volume worker antes, todos os artefatos 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:GenerateDataKey",
"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: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 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 gerenciamento de energia usando esta política. A política pode ser aplicada aos usuários conforme explicado nas seções Definir 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 Cloud Connector ao configurar o Cloud Connector. 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 usará 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: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-->
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 Demystifying EC2 Resource-Level Permissions e Access management for AWS resources para obter mais detalhes.
- Use as permissões
ec2:CreateNetworkInterface
eec2:DeleteNetworkInterface
somente se você estiver usando o método de volume worker.
Validar permissões na conexão de 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 fazer para criar e gerenciar um catálogo de máquinas MCS.
- Ação Corretiva: A etapa que um administrador deve fazer para resolver uma discrepância de permissões ausentes dos usuários.
- 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 seguinte comando para verificar se você tem as permissões necessárias para procurar suas permissões.
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" <!--NeedCopy-->
-
Depois de adicionar as permissões ausentes necessárias para procurar 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 Adicionar permissões IAM.
Onde ir em seguida
- Se você estiver no processo de implantação inicial, consulte Criar catálogos de máquinas.
- Para informações específicas da AWS, consulte Criar um catálogo AWS.