Citrix DaaS™

Conexión a AWS EC2

Crear y administrar conexiones y recursos describe los asistentes que crean una conexión. La siguiente información cubre detalles específicos de los entornos de nube de AWS.

Requisitos previos

Haz lo siguiente antes de crear una conexión a AWS EC2:

Definir permisos de IAM

Antes de crear una conexión de host, debes definir correctamente una política de permisos de IAM para un usuario o rol de IAM que otorgue a Citrix los permisos adecuados para aprovisionar y administrar recursos en tu cuenta de AWS en tu nombre. Utiliza la información de esta sección para definir los permisos de IAM para Citrix DaaS en AWS. El servicio IAM de Amazon permite que las cuentas tengan varios usuarios, que se pueden organizar en grupos. Estos usuarios pueden tener diferentes permisos para controlar su capacidad de realizar operaciones asociadas a la cuenta. Para obtener más información sobre los permisos de IAM, consulta la referencia de políticas JSON de IAM.

Para aplicar la política de permisos de IAM a un nuevo grupo de usuarios:

  1. Inicia sesión en la consola de administración de AWS y selecciona el servicio IAM en la lista desplegable.
  2. Selecciona Crear un nuevo grupo de usuarios.
  3. Escribe un nombre para el nuevo grupo de usuarios y selecciona Continuar.
  4. En la página Permisos, elige Política personalizada y, a continuación, Seleccionar.
  5. Escribe un nombre para la política de permisos.
  6. En la sección Documento de política, introduce los permisos pertinentes.

Después de introducir la información de la política, selecciona Continuar para completar la aplicación de la política de permisos de IAM al grupo de usuarios. Los usuarios del grupo solo tienen permisos para realizar las acciones necesarias para Citrix DaaS.

Importante:

Utiliza el texto de la política que se proporciona en el ejemplo de este artículo para enumerar las acciones que Citrix DaaS utiliza para realizar acciones dentro de una cuenta de AWS sin restringir esas acciones a recursos específicos. Citrix recomienda que utilices el ejemplo con fines de prueba. Para entornos de producción, puedes optar por añadir más restricciones a los recursos.

Agregar permisos de IAM

Agrega los permisos en la sección IAM de la consola de administración de AWS:

  1. En el panel Resumen, selecciona la ficha Permisos.
  2. Selecciona Agregar permisos.

    Administración de identidades y accesos (IAM)

  3. En la pantalla Agregar permisos a, concede permisos:

    Conceder permisos para políticas de IAM

  4. En la sección JSON, incluye los permisos de AWS necesarios para tu entorno.

    Ejemplo de JSON

Crear una conexión

Puedes crear una conexión a Amazon EC2 mediante:

Nota:

Comprueba las restricciones de tu servidor proxy o firewall y asegúrate de que la siguiente dirección sea accesible: https://*.amazonaws.com. Además, asegúrate de que todas las direcciones mencionadas en Conectividad del servicio Citrix Gateway sean accesibles.

Si no son accesibles, podría producirse un error al crear o actualizar la conexión de host.

Crear una conexión con Studio

  1. Ve a la página Alojamiento > Agregar conexión y recursos.
  2. En la página Conexión, sigue estos pasos para configurar la conexión:

    1. Selecciona Crear una conexión nueva.
    2. En Zona, selecciona la ubicación de recursos que configuraste para tu entorno de AWS.
    3. Selecciona Amazon EC2 como tipo de conexión.
    4. Selecciona uno de los métodos para aprovisionar los recursos:

      • Si seleccionas Usar esta cuenta de AWS para aprovisionar recursos, selecciona Usar clave de acceso de usuario de IAM o Usar rol de IAM. Para la clave de acceso de usuario de IAM, proporciona tu clave de API y clave secreta para el usuario de IAM que tenga la política de permisos de IAM adecuada para que Citrix administre los recursos en tu cuenta de AWS. Para el rol de IAM, asegúrate de haber asignado un rol de IAM a la instancia de Citrix Cloud Connector con la política de permisos de IAM adecuada para que Citrix administre los recursos en tu cuenta de AWS. Consulta la guía de autenticación basada en roles para obtener más información.
      • Si seleccionas Usar acceso entre cuentas para aprovisionar recursos, proporciona el ARN del rol de IAM en la Cuenta B que los Cloud Connectors (o Delivery Controllers) de la Cuenta A deben asumir y en el que deben realizar operaciones de aprovisionamiento.
    5. Introduce un nombre de conexión y haz clic en Siguiente.
  3. En la página Ubicación de la máquina virtual, especifica la ubicación donde se deben aprovisionar las máquinas virtuales. Selecciona la región de la nube, la VPC y la zona de disponibilidad para crear nuevas máquinas virtuales.
  4. En la página Red:

    1. Introduce un nombre para los recursos que seleccionaste anteriormente en la zona de disponibilidad.
    2. Selecciona una o varias subredes en la VPC que configuraste en el menú anterior.
  5. Haz clic en las páginas restantes hasta llegar a la página Resumen.
  6. Haz clic en Finalizar para crear la conexión de host a Amazon EC2.

Consideraciones importantes

Cuando creas una conexión con Studio:

  • Define los permisos de IAM adecuados para que Citrix administre tus recursos de AWS.
  • Si usas una clave de acceso de usuario de IAM para que Citrix administre tus recursos de AWS, debes proporcionar los valores de la clave de API y la clave secreta. Puedes exportar el archivo de claves que contiene esos valores desde AWS y luego importarlos. También debes proporcionar la región, la zona de disponibilidad, el nombre de la VPC, las direcciones de subred, el nombre de dominio, los nombres de los grupos de seguridad y las credenciales.
  • Si usas un rol de IAM para que Citrix administre tus recursos de AWS, debes asegurarte de asignar un rol con los permisos de IAM adecuados a todos tus Cloud Connector. Consulta la Guía de autenticación basada en roles para obtener más información.
  • El archivo de credenciales de la cuenta raíz de AWS (obtenido de la consola de AWS) no tiene el mismo formato que los archivos de credenciales descargados para los usuarios estándar de AWS. Por lo tanto, Citrix DaaS no puede usar el archivo para rellenar los campos de clave de API y clave secreta. Asegúrate de que estás usando archivos de credenciales de AWS Identity Access Management (IAM).

Crear una conexión con PowerShell

  1. Abre una ventana de PowerShell.
  2. Ejecuta asnp citrix* para cargar los módulos de PowerShell específicos de Citrix.
  3. Ejecuta los siguientes comandos. A continuación, se muestra un ejemplo:

    $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 "<name of the connection>" -HypervisorAddress " "@("https://ec2.cn-north-1.amazonaws.com.cn") -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 crear una conexión mediante la autenticación basada en roles, especifica apiKey y apiSecret como role_based_auth.

Limitación

Si cambias el nombre de una Virtual Private Cloud (VPC) de AWS en la consola de AWS, la unidad de alojamiento existente en Citrix Cloud™ se interrumpe. Cuando la unidad de alojamiento está interrumpida, no puedes crear catálogos ni agregar máquinas a los catálogos existentes. Para resolver el problema, cambia el nombre de la VPC de AWS de nuevo al nombre original.

Configuración de proxy mejorada para la conexión de host de AWS

La conexión de host de AWS puede leer el valor del proxy del sistema WinHTTP que se configura durante la instalación de Cloud Connector si estableces la propiedad personalizada UseSystemProxyForHypervisorTrafficOnConnectors en true al crear o actualizar una conexión de host con PowerShell.

Ventajas

  • Simplifica la configuración del proxy para las conexiones de host de AWS.
  • Reduce la necesidad de configurar manualmente los valores de servidor y puerto de PowerShell.
  • Garantiza un uso coherente del proxy entre Cloud Connector y las conexiones de host.
  • Mejora la tasa de éxito de las llamadas a la API que requieren acceso a proxy.
  • Disminuye las solicitudes de asistencia relacionadas con la configuración del proxy.

Requisito previo

Antes de establecer la propiedad personalizada al crear la conexión de host con PowerShell, asegúrate de configurar el proxy WinHTTP en Cloud Connector.

Crear una nueva conexión con proxy automático

  1. Abre PowerShell.
  2. Agrega los complementos de Citrix:

    Add-PSSnapin citrix*
    <!--NeedCopy-->
    
  3. Define las variables para la conexión.

    $hypType = "AWS"
    
    ####################################################################################
    The following items need to be set based on the installed environment
    $customProperties is set to enable using the system proxy
    $customProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" /></CustomProperties>'
    
    $awsEndPoint is set to the desired region for the connection
    
    $awsEndPoint = "https://ec2.us-east-1.amazonaws.com"
    
    $hypConnName is set to the connection name to use
    
    $hypConnName = "ctx-test"
        
    $apiKey is set to the AWS API Key ID or "role_based_auth" if the Cloud Connector instance has an appropriate role
    
    $apiKey = "role_based_auth"
    
    $secretKey is set to the AWS API Key Secret or "role_based_auth" if the Cloud Connector instance has an appropriate role
    
    $secretKey = "role_based_auth"
    
    $resourceLocation is set to the connector resource location name
    
    $resourceLocation = "ctx-test"
    ####################################################################################
    
    $secureSecretKey = ConvertTo-SecureString -String $secretKey -AsPlainText -Force
    $zoneUid = (Get-ConfigZone|Where-Object Name -EQ "$resourceLocation").Uid
    <!--NeedCopy-->
    

    Nota:

    Asegúrate de reemplazar los valores de marcador de posición en las variables $customProperties, $awsEndPoint, $hypConnName, $apiKey, $secretKey y $resourceLocation con los valores adecuados para tu entorno.

  4. Crea la conexión del hipervisor.

    $hypHc = New-Item -Path xdhyp:\Connections `
    -Name $hypConnName `
    -HypervisorAddress $awsEndPoint `
    -UserName $apiKey `
    -SecurePassword $secureSecretKey `
    -ConnectionType $hypType `
    -CustomProperties $customProperties `
    -Persist `
    -ZoneUid $zoneUid
    <!--NeedCopy-->
    
  5. Crea la conexión del hipervisor de Broker.

    $bhc = New-BrokerHypervisorConnection -HypHypervisorConnectionUid $hypHc.HypervisorConnectionUid
    <!--NeedCopy-->
    

Consulta también Actualizar una conexión de host existente con proxy automático

Aprovisionamiento entre cuentas

Hay casos de uso en los que los Cloud Connectors querrían ubicarse en una cuenta de AWS separada (cuenta de servicios compartidos o cuenta de componentes de sitio) con roles de IAM que tienen acceso entre cuentas (rol de IAM entre cuentas) y catálogos de máquinas aprovisionados por MCS en una cuenta secundaria de AWS separada (cuentas de cargas de trabajo), sin la necesidad de Cloud Connectors adicionales en las cuentas separadas. Para admitir tales escenarios, esta función usa el emparejamiento de VPC y el acceso entre cuentas mediante roles de IAM para hacer posible el aprovisionamiento entre diferentes cuentas de AWS para empresas que administran varias cuentas de AWS.

Con el emparejamiento de VPC, puedes hacer que tu Cloud Connector y las máquinas virtuales aprovisionadas en diferentes regiones o cuentas puedan comunicarse entre sí.

Con el acceso entre cuentas mediante roles de IAM, permites que la cuenta principal (cuenta de Cloud Connector) asuma un rol de IAM para acceder a los recursos de AWS en la cuenta secundaria (máquinas virtuales del catálogo de máquinas).

Para permitir que Cloud Connector acceda a los recursos de la cuenta secundaria, crea una conexión de host después de asumir el rol de IAM de la cuenta secundaria.

Requisitos previos

Configura lo siguiente antes de crear una conexión de host para el aprovisionamiento entre cuentas:

Configurar el emparejamiento de VPC

Supongamos que la VPC A está en la cuenta principal (Cuenta A) y tiene los Cloud Connectors y Active Directory. La VPC B está en la cuenta secundaria (Cuenta B) donde quieres aprovisionar las máquinas virtuales.

Para configurar una conexión de emparejamiento de VPC entre la Cuenta A y la Cuenta B, haz lo siguiente:

  1. Crea una conexión de emparejamiento de VPC. Consulta:

  2. Ve a tu VPC A y a la tabla de rutas asociada a la subred pública.
  3. Haz clic en Editar rutas > Agregar ruta. Agrega el bloque CIDR de la VPC B en la columna Destino y agrega el emparejamiento de VPC que creaste en la columna Objetivo.
  4. Repite los pasos 2 y 3, pero con las subredes privadas para la VPC A y la VPC B (agrega el bloque CIDR de la VPC A). Consulta Actualizar las tablas de rutas para una conexión de emparejamiento de VPC.
  5. Ve al grupo de seguridad privado asociado a la VPC A.
  6. Selecciona Acciones y luego Editar reglas de entrada.
  7. Selecciona Agregar regla. Para el tipo, selecciona Todo el tráfico y luego en la Columna de origen agrega:

    • Si es una región diferente, agrega el bloque CIDR de la VPC B.
    • Si es una cuenta diferente pero la misma región, agrega el ID de la cuenta y el ID del grupo de seguridad privado de la VPC B separados por una barra diagonal (Ejemplo: 123456789012/sg-1a2b3c4d)
  8. Repite los pasos 5 a 7, pero con el grupo de seguridad privado para la VPC B (pero agrega el bloque CIDR de la VPC A o el ID de la cuenta de la VPC A y el ID del grupo de seguridad privado de la misma región, pero de una cuenta diferente). Consulta Actualizar los grupos de seguridad para hacer referencia a grupos de seguridad de emparejamiento.

Nota:

No hay ningún cargo por crear una conexión de emparejamiento de VPC. Sin embargo, aunque el emparejamiento de VPC dentro de una zona de disponibilidad es gratuito, se aplican cargos cuando la transferencia de datos a través de una conexión de emparejamiento de VPC se produce entre varias zonas de disponibilidad y regiones. Consulta Precios de una conexión de emparejamiento de VPC.

Delegar el acceso entre cuentas mediante roles de IAM

Después de configurar el emparejamiento de VPC entre cuentas, delega el acceso entre cuentas mediante roles de IAM.

Con el acceso entre cuentas mediante roles de IAM, permitirás a la cuenta principal (cuenta de Cloud Connector) asumir un rol de IAM para acceder a los recursos de AWS en la cuenta secundaria (máquinas virtuales del catálogo de máquinas).

Para acceder a los recursos entre cuentas, haz lo siguiente:

Recuerda:

Se asume que la VPC A está en la cuenta principal (Cuenta A) y tiene el Cloud Connector y Active Directory. La VPC B está en la cuenta secundaria (Cuenta B) donde quieres aprovisionar las máquinas virtuales

  1. Configura el emparejamiento de VPC entre cuentas con los pasos mencionados anteriormente.
  2. Crea un rol y una política de IAM en la Cuenta B con permisos mínimos de IAM de Citrix. Consulta Tutorial de IAM: Delegar acceso entre cuentas de AWS mediante roles de IAM. Supongamos que el ARN de este rol es “arn:aws:iam::5678:role/citrix-role”.
  3. Agrega la política de confianza al rol “arn:aws:iam::5678:role/citrix-role” para que el rol de la Cuenta A “arn:aws:iam::1234:role/primary-account-citrix-role” pueda acceder a él según Acceso a recursos entre cuentas en IAM.
  4. Crea el rol y la política de IAM en la Cuenta A con el nombre mencionado anteriormente “primary-account-citrix role”, que puede asumir el rol de IAM y pasar el rol de IAM de la Cuenta B (arn:aws:iam::5678:role/citrix-role).
  5. Asigna el rol “arn:aws:iam::1234:role/primary-account-citrix-role” a todos los Cloud Connectors de la Cuenta A.

Los Cloud Connectors ahora pueden asumir el rol de la Cuenta B (“arn:aws:iam::5678:role/citrix-role”).

Crear conexión de host para el aprovisionamiento entre cuentas

Crea una conexión de host en la cuenta secundaria (Cuenta B) donde quieres aprovisionar las máquinas virtuales. Esto permite a los Cloud Connectors de la Cuenta A acceder a los recursos de la Cuenta B después de asumir el rol de la Cuenta B.

Usa comandos de PowerShell para crear la conexión de host y agrega las dos propiedades personalizadas siguientes:

  • CrossAccountRoleArn: Si no proporcionas la propiedad CrossAccountRoleArn, se crea la conexión de host normal. En este caso, MaximumAssumeRoleDurationInSeconds se ignora incluso si se proporciona.
  • MaximumAssumeRoleDurationInSeconds: DurationInSeconds debe estar entre 900 y 3600 segundos. El valor predeterminado es de 900 segundos. Si proporcionas un valor superior a 3600, entonces DurationInSeconds se establece en 3600.

Ejemplo:

$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-->

Después de crear la conexión de host, crea unidades de alojamiento mediante Studio o PowerShell. Sin embargo, selecciona VPC y Redes.

Modificar una conexión

Puedes modificar una conexión de host existente para:

Modificar opciones para proporcionar permisos de IAM

  1. Haz clic con el botón derecho en una conexión de Amazon EC2 existente.
  2. En la página Propiedades de conexión, haz clic en Modificar configuración.
  3. Selecciona una de las opciones para proporcionar permisos de IAM para que Citrix administre recursos. Introduce los detalles necesarios y haz clic en Guardar.

Modificar el número máximo de acciones simultáneas

Cuando creas conexiones de host en Studio para Amazon EC2, se muestran los siguientes valores predeterminados:

Opción Absoluto Porcentaje
Acciones simultáneas (todos los tipos) 125 100
Número máximo de acciones nuevas por minuto 150 n/a
Número máximo de operaciones de aprovisionamiento simultáneas 100 n/a

MCS admite 100 operaciones de aprovisionamiento simultáneas como máximo de forma predeterminada.

Configura estos valores accediendo a la sección Avanzado de Citrix Studio en la pantalla Modificar conexión.

Identidad y administración de acceso (IAM)

Alternativamente, puedes usar el SDK de PowerShell remoto para establecer el número máximo de operaciones simultáneas y así obtener una configuración óptima para tu entorno.

Usa la propiedad personalizada de PowerShell, MaximumConcurrentProvisioningOperations, para especificar el número máximo de operaciones de aprovisionamiento simultáneas de AWS.

Antes de la configuración:

  • Asegúrate de haber instalado el SDK de PowerShell para la nube.
  • Ten en cuenta que el valor predeterminado de MaximumConcurrentProvisioningOperations es 100.

Realiza los siguientes pasos para personalizar el valor de MaximumConcurrentProvisioningOperations:

  1. Abre una ventana de PowerShell.
  2. Ejecuta asnp citrix* para cargar los módulos de PowerShell específicos de Citrix.
  3. Introduce cd xdhyp:\Connections\.
  4. Introduce dir para enumerar las conexiones.
  5. Modifica o inicializa la cadena de propiedades personalizadas:

    • Si la cadena de propiedades personalizadas tiene un valor, copia las propiedades personalizadas en el Bloc de notas. A continuación, cambia la propiedad MaximumConcurrentProvisioningOperations a tu valor preferido. Puedes introducir un valor en el rango de 1 a 1000. Por ejemplo, <Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="xyz"/>.

    • Si la cadena de propiedades personalizadas está vacía o es nula, debes inicializar la cadena introduciendo la sintaxis adecuada tanto para el esquema como para la propiedad MaximumConcurrentProvisioningOperations.

  6. En la ventana de PowerShell, pega las propiedades personalizadas modificadas del Bloc de notas y asigna una variable a las propiedades personalizadas modificadas. Si inicializaste las propiedades personalizadas, agrega las siguientes líneas después de la sintaxis:

    $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 cadena establece la propiedad MaximumConcurrentProvisioningOperations en 100. En la cadena de propiedades personalizadas, debes establecer la propiedad MaximumConcurrentProvisioningOperations en un valor que se ajuste a tus necesidades.

  7. Introduce Get-XDAuthentication, que te pedirá tus credenciales.
  8. Ejecuta $cred = Get-Credential, que podría pedirte solo una contraseña (o un nombre y una contraseña). También es posible que se te pida el ID de la aplicación y el secreto asociado. Para las conexiones que usan autenticación basada en roles, role_based_auth es tanto el nombre como la contraseña. De lo contrario, introduce el ID de la API de AWS y el secreto.
  9. Ejecuta set-item -PSPath 'XDHyp:\Connections<connection-name>' -CustomProperties $customProperties -username $cred.username -Securepassword $cred.password. Debes establecer el <nombre-de-la-conexión> como el nombre de la conexión.
  10. Introduce dir para verificar la cadena de propiedades personalizadas actualizada.

Configurar grupos de seguridad por interfaz de red

Al modificar una conexión de host, ahora puedes configurar el número máximo de grupos de seguridad permitidos por interfaz de red elástica (ENI) mediante un comando de PowerShell. Para obtener información sobre los valores de cuota de los grupos de seguridad de AWS, consulta Grupos de seguridad.

Para configurar grupos de seguridad por interfaz de red:

  1. Abre una ventana de PowerShell.
  2. Ejecuta asnp citrix* para cargar los módulos de PowerShell específicos de Citrix.
  3. Ejecuta cd xdhyp:\Connections\.
  4. Ejecuta dir para enumerar las conexiones.
  5. Ejecuta el siguiente comando de PowerShell para configurar los grupos de seguridad por interfaz de red:

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

    Nota:

    Si no estableces un valor para AwsMaxENISecurityGroupLimit, se tomará el valor predeterminado de 5.

Actualizar una conexión de host existente con proxy automático

  1. Abre una ventana de PowerShell.
  2. Ejecuta asnp citrix* para cargar los módulos de PowerShell específicos de Citrix.
  3. Introduce cd xdhyp:\Connections\.
  4. Introduce dir para enumerar las conexiones.
  5. Copia las propiedades personalizadas en un Bloc de notas y anexa la configuración de propiedad <Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True".
  6. En la ventana de PowerShell, pega las propiedades personalizadas modificadas del Bloc de notas y asigna una variable a las propiedades personalizadas modificadas.
  7. Introduce Get-XDAuthentication, que te pedirá tus credenciales.
  8. Ejecuta $cred = Get-Credential, que podría pedirte solo una contraseña (o un nombre y una contraseña). También es posible que se te pida el ID de la aplicación y el secreto asociado. Para las conexiones que usan autenticación basada en roles, role_based_auth es tanto el nombre como la contraseña. De lo contrario, introduce el ID de la API de AWS y el secreto.
  9. Ejecuta set-item -PSPath 'XDHyp:\Connections<connection-name>' -CustomProperties $customProperties -username $cred.username -Securepassword $cred.password. Debes establecer el <nombre-de-la-conexión> como el nombre de la conexión.
  10. Introduce dir para verificar la cadena de propiedades personalizadas actualizada.

URL del punto de conexión del servicio

URL del punto de conexión del servicio de zona estándar

Cuando usas MCS, se agrega una nueva conexión de AWS con una clave de API y un secreto de API. Con esta información, junto con la cuenta autenticada, MCS consulta a AWS las zonas admitidas mediante la llamada a la API de AWS DescribeRegions EC2. La consulta se realiza utilizando una URL genérica del punto de conexión del servicio EC2 https://ec2.amazonaws.com/. Usa MCS para seleccionar la zona de la conexión de la lista de zonas admitidas. La URL preferida del punto de conexión del servicio de AWS se selecciona automáticamente para la zona. Sin embargo, después de crear la URL del punto de conexión del servicio, ya no puedes establecerla ni modificarla.

URL del punto de conexión del servicio no estándar

Puede haber situaciones en las que no necesites la URL de punto de conexión de servicio de AWS elegida automáticamente para la conexión. En tales casos, puedes usar Citrix Cloud SDK y PowerShell para crear una conexión con una URL de punto de conexión de servicio no estándar. Por ejemplo, para crear una conexión usando la URL de punto de conexión de servicio https://ec2.cn-north-1.amazonaws.com.cn:

  1. Configura el Cloud Connector alojado en AWS y asegúrate de que tenga conectividad.
  2. Ejecuta los siguientes comandos de PowerShell para ver la lista de Cloud Connectors.

     PS C:\> asnp citrix.*
     PS C:\> Get-XDAuthentication
     PS C:\> Get-ConfigEdgeServer
    <!--NeedCopy-->
    
  3. Busca el ZoneUid del Cloud Connector recién creado e introdúcelo en los siguientes comandos de PowerShell. Reemplaza los elementos en cursiva con los valores respectivos.

    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
    <!--NeedCopy-->
    
  4. Actualiza la ficha Hosting para verificar que la conexión EC2 se ha creado.
  5. Agrega una ubicación de recursos usando la nueva conexión.

Permisos de AWS necesarios

Esta sección contiene la lista completa de permisos de AWS. Usa el conjunto completo de permisos que se indica en la sección para que la funcionalidad funcione correctamente.

Nota:

El permiso iam:PassRole solo es necesario para role_based_auth.

Creación de una conexión de host

Se agrega una nueva conexión de host usando la información obtenida de AWS.

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

Administración de energía de las máquinas virtuales

Las máquinas virtuales se encienden o apagan.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Creación, actualización o eliminación de máquinas virtuales

Se crea, actualiza o elimina un catálogo de máquinas con máquinas virtuales aprovisionadas como instancias de 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: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:

  • La sección de EC2 relacionada con SecurityGroups solo es necesaria si se debe crear un grupo de seguridad de aislamiento para la máquina virtual de preparación durante la creación del catálogo. Una vez hecho esto, estos permisos no son necesarios.

Importación de máquinas virtuales

Se crea un catálogo de máquinas importando máquinas virtuales.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSubnets",
                "ec2:DescribeVolumes",
                "ec2:DescribeSpotInstanceRequests"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Nota:

El permiso ec2:DescribeSpotInstanceRequests solo es necesario si hay una instancia de spot en la región de AWS desde donde se van a importar las máquinas virtuales.

Carga y descarga directa de discos

La carga directa de discos elimina el requisito de trabajador de volumen para el aprovisionamiento de catálogos de máquinas y, en su lugar, usa las API públicas proporcionadas por AWS. Esta funcionalidad reduce el costo asociado con las cuentas de almacenamiento adicionales y la complejidad de mantener las operaciones del trabajador de volumen.

Nota:

Se ha quitado la compatibilidad con el trabajador de volumen. Los permisos de carga y descarga directa de discos son necesarios para el aprovisionamiento de catálogos de máquinas.

Los siguientes permisos deben agregarse a la política:

  • ebs:StartSnapshot
  • ebs:GetSnapshotBlock
  • ebs:PutSnapshotBlock
  • ebs:CompleteSnapshot
  • ebs:ListSnapshotBlocks
  • ebs:ListChangedBlocks
  • ec2:CreateSnapshot
  • ec2:DeleteSnapshot
  • ec2:DescribeLaunchTemplates

Importante:

  • Puedes agregar una nueva máquina virtual a los catálogos de máquinas existentes sin ningún recurso de trabajador de volumen, como la AMI del trabajador de volumen y la máquina virtual del trabajador de volumen.
  • Si eliminas un catálogo existente que usaba algún trabajador de volumen anteriormente, se eliminan todos los artefactos relacionados con el trabajador de volumen.

Cifrado EBS de volúmenes creados

EBS puede cifrar automáticamente los volúmenes recién creados si la AMI está cifrada o si EBS está configurado para cifrar todos los volúmenes nuevos. Sin embargo, para implementar la funcionalidad, los siguientes permisos deben incluirse en la política de 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:

Los permisos se pueden limitar a claves específicas incluyendo un bloque de recursos y condiciones a discreción del usuario. Por ejemplo, Permisos de KMS con condición:

{
     "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-->

La siguiente declaración de política de clave es la política de clave predeterminada completa para las claves de KMS que se requiere para permitir que la cuenta use políticas de IAM para delegar permisos para todas las acciones (kms:*) en la clave de KMS.

{
"Sid": "Enable IAM policies",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "kms:",
"Resource": ""
}
<!--NeedCopy-->

Para obtener más información, consulta la documentación oficial de AWS Key Management Service.

Autenticación basada en roles de IAM

Se agregan los siguientes permisos para admitir la autenticación basada en roles.

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*"
        }
    ]
}
<!--NeedCopy-->

Política de permisos mínimos de IAM

El siguiente JSON se puede usar para todas las funciones actualmente compatibles. Puedes crear conexiones de host, crear, actualizar o eliminar máquinas virtuales y realizar la administración de energía usando esta política. La política se puede aplicar a los usuarios como se explica en las secciones Definición de permisos de IAM o también puedes usar la autenticación basada en roles usando la clave de seguridad y la clave secreta de role_based_auth.

Importante:

Para usar role_based_auth, primero configura el rol de IAM deseado en la instancia EC2 del conector de la nube al configurar el conector de la nube. Con Citrix Studio, agrega la conexión de alojamiento y proporciona role_based_auth para la clave de autenticación y la clave secreta. Una conexión de alojamiento con esta configuración utiliza entonces la autenticación basada en roles.

{
    "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: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:

  • La sección de EC2 relacionada con SecurityGroups solo es necesaria si se debe crear un grupo de seguridad de aislamiento para la máquina virtual de preparación durante la creación del catálogo. Una vez hecho esto, estos permisos no son necesarios.
  • La sección de KMS solo es necesaria cuando se usa el cifrado de volumen de EBS.
  • La sección de permisos iam:PassRole solo es necesaria para role_based_auth.
  • Se pueden agregar permisos específicos a nivel de recurso en lugar de acceso completo, según tus requisitos y entorno. Consulta los documentos de AWS Demystifying EC2 Resource-Level Permissions y Access management for AWS resources para obtener más detalles.
  • Usa los permisos ec2:CreateNetworkInterface y ec2:DeleteNetworkInterface solo si estás usando el método de trabajador de volumen.

Validar permisos en la conexión de host

Puedes validar los permisos en una conexión de host para realizar tareas relacionadas con la creación y administración de catálogos de máquinas MCS. Esta implementación te ayuda a descubrir los permisos que faltan necesarios para diferentes escenarios, como la creación, eliminación y actualización de máquinas virtuales, la administración de energía de las máquinas virtuales y el cifrado de EBS, con antelación para que puedas evitar bloqueos en momentos críticos.

Puedes validar los permisos en una conexión de host usando el comando de PowerShell Test-HypHypervisorConnection. El resultado del comando se captura como una lista donde cada elemento de la lista se divide en tres secciones.

  • Categoría: La acción o tarea que un usuario puede realizar para crear y administrar un catálogo de máquinas MCS.
  • Acción correctiva: El paso que un administrador debe realizar para resolver una discrepancia de permisos faltantes de un usuario.
  • Permiso faltante: La lista de permisos faltantes para una categoría.

Para validar los permisos, haz lo siguiente:

  1. Crea una conexión de host a AWS.
  2. Abre una ventana de PowerShell desde el host de Delivery Controller™.
  3. Ejecuta asnp citrix* para cargar los módulos de PowerShell específicos de Citrix.
  4. Ejecuta el siguiente comando para verificar si tienes los permisos necesarios para buscar tus permisos.

    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon"
    <!--NeedCopy-->
    
  5. Después de agregar los permisos faltantes necesarios para buscar tus permisos, ejecuta el siguiente comando para verificar si tienes permisos en las siguientes categorías:

    • Crear, actualizar, eliminar
    • Administración de energía
    • Cifrado de EBS
    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" [-SecurePassword -Password] "password" -UserName "" -CustomProperties ""
    <!--NeedCopy-->
    

Para obtener más información sobre cómo agregar permisos, consulta Agregar permisos de IAM.

Dónde ir a continuación

Más información