Citrix DaaS™

Connessione ad AWS EC2

Creare e gestire connessioni e risorse descrive le procedure guidate per la creazione di una connessione. Le seguenti informazioni riguardano i dettagli specifici degli ambienti cloud AWS.

  • Prerequisiti

Eseguire le seguenti operazioni prima di creare una connessione ad AWS EC2:

Definire le autorizzazioni IAM

Prima di creare una connessione host, è necessario definire correttamente un criterio di autorizzazioni IAM per un utente o un ruolo IAM che conceda a Citrix le autorizzazioni appropriate per il provisioning e la gestione delle risorse nell’account AWS per conto dell’utente. Utilizzare le informazioni contenute in questa sezione per definire le autorizzazioni IAM per Citrix DaaS su AWS. Il servizio IAM di Amazon consente agli account di avere più utenti, che possono essere ulteriormente organizzati in gruppi. Questi utenti possono possedere autorizzazioni diverse per controllare la loro capacità di eseguire operazioni associate all’account. Per ulteriori informazioni sulle autorizzazioni IAM, consultare il riferimento ai criteri JSON IAM.

Per applicare i criteri di autorizzazione IAM a un nuovo gruppo di utenti:

  1. Accedere alla console di gestione AWS e selezionare il servizio IAM dall’elenco a discesa.
  2. Selezionare Create a New Group of Users (Crea un nuovo gruppo di utenti).
  3. Digitare un nome per il nuovo gruppo di utenti e selezionare Continue (Continua).
  4. Nella pagina Permissions (Autorizzazioni), scegliere Custom Policy (Criterio personalizzato) quindi Select (Seleziona).
  5. Digitare un nome per il criterio di autorizzazioni.
  6. Nella sezione Policy Document (Documento del criterio), immettere le autorizzazioni pertinenti.

Dopo aver immesso le informazioni sul criterio, selezionare Continue (Continua) per completare l’applicazione del criterio di autorizzazioni IAM al gruppo di utenti. Agli utenti del gruppo vengono concesse le autorizzazioni per eseguire solo le azioni richieste per Citrix DaaS.

Importante:

Utilizzare il testo del criterio fornito nell’esempio presente in questo articolo per elencare le azioni che un Citrix DaaS utilizza per eseguire azioni all’interno di un account AWS senza limitare tali azioni a risorse specifiche. Citrix consiglia di utilizzare l’esempio a scopo di test. Per gli ambienti di produzione, è possibile scegliere di aggiungere ulteriori restrizioni sulle risorse.

  • Aggiungere autorizzazioni IAM

Aggiungere le autorizzazioni nella sezione IAM della console di gestione AWS:

  1. Nel pannello Summary (Riepilogo), selezionare la scheda Permissions (Autorizzazioni).
  2. Selezionare Add permissions (Aggiungi autorizzazioni).

    Identity and Access Management (IAM)

  3. Nella schermata Add Permissions to (Aggiungi autorizzazioni a), concedere le autorizzazioni:

    Concedere autorizzazioni per i criteri IAM

  4. Nella sezione JSON, includere le autorizzazioni AWS richieste per l’ambiente.

    -  ![Esempio JSON](/en-us/citrix-daas/media/aws-iam-json-example.png)
    

Creare una connessione

È possibile creare una connessione ad Amazon EC2 utilizzando:

    -  [Studio](#create-a-connection-using-studio)

Nota:

  • Controllare le restrizioni del server proxy o del firewall e assicurarsi che il seguente indirizzo sia contattabile: https://*.amazonaws.com. Inoltre, assicurarsi che tutti gli indirizzi menzionati in Connettività del servizio Citrix Gateway siano contattabili.

  • Se questi non sono contattabili, potrebbe verificarsi un errore durante la creazione o l’aggiornamento della connessione host.

Creare una connessione tramite Studio

  1. Accedere alla pagina Hosting > Add Connection and Resources (Hosting > Aggiungi connessione e risorse).
  2. Nella pagina Connection (Connessione), seguire questi passaggi per configurare la connessione:

    1. Selezionare Create a new connection (Crea una nuova connessione).
    2. In Zone (Zona), selezionare la posizione delle risorse configurata per l’ambiente AWS.
    3. Selezionare Amazon EC2 come tipo di connessione.
    4. Selezionare uno dei metodi per il provisioning delle risorse:

      • Se si seleziona Use this AWS account to provision resources (Usa questo account AWS per il provisioning delle risorse), selezionare Use IAM user access key (Usa chiave di accesso utente IAM) o Use IAM role (Usa ruolo IAM). Per la chiave di accesso utente IAM, fornire la chiave API e la chiave segreta per l’utente IAM che dispone di un criterio di autorizzazioni IAM appropriato affinché Citrix possa gestire le risorse nell’account AWS. Per il ruolo IAM, assicurarsi di aver assegnato un ruolo IAM all’istanza di Citrix Cloud Connector con un criterio di autorizzazioni IAM appropriato affinché Citrix possa gestire le risorse nell’account AWS. Per ulteriori informazioni, vedere Guida all’autenticazione basata sui ruoli.
      • Se si seleziona Use cross-account access to provision resources (Usa accesso tra account per il provisioning delle risorse), fornire l’ARN del ruolo IAM nell’Account B che i Cloud Connector (o i Delivery Controller) nell’Account A devono assumere ed eseguire le operazioni di provisioning.
    5. Immettere un nome di connessione e fare clic su Next (Avanti).
  3. Nella pagina Virtual Machine Location (Posizione macchina virtuale), specificare la posizione in cui devono essere sottoposte a provisioning le VM. Selezionare la regione cloud, la VPC e la zona di disponibilità o la zona locale per la creazione di nuove VM.
  4. Nella pagina Network (Rete):

    1. Immettere un nome per le risorse selezionate in precedenza nella zona di disponibilità o nella zona locale.
    2. Selezionare una o più subnet nella VPC configurata nel menu precedente.
  5. Fare clic sulle pagine rimanenti fino alla pagina Summary (Riepilogo).
  6. Fare clic su Finish (Fine) per creare la connessione host ad Amazon EC2.

Considerazioni importanti

Quando si crea una connessione tramite Studio:

  • Definire le autorizzazioni IAM appropriate per Citrix per gestire le risorse AWS.
  • Se si utilizza una chiave di accesso utente IAM per consentire a Citrix di gestire le risorse AWS, è necessario fornire i valori della chiave API e della chiave segreta. È possibile esportare il file della chiave contenente tali valori da AWS e quindi importarli. È inoltre necessario fornire la regione, la zona di disponibilità, il nome VPC, gli indirizzi di sottorete, il nome di dominio, i nomi dei gruppi di sicurezza e le credenziali.
  • Se si utilizza un ruolo IAM per consentire a Citrix di gestire le risorse AWS, è necessario assicurarsi di assegnare un ruolo con le autorizzazioni IAM appropriate a tutti i Cloud Connector. Per maggiori informazioni, consultare la guida all’autenticazione basata sui ruoli.
  • Il file delle credenziali per l’account AWS root (recuperato dalla console AWS) non è formattato allo stesso modo dei file delle credenziali scaricati per gli utenti AWS standard. Pertanto, Citrix DaaS non può utilizzare il file per popolare i campi della chiave API e della chiave segreta. Assicurarsi di utilizzare i file delle credenziali di AWS Identity Access Management (IAM).
  • La zona può essere una zona di disponibilità o una zona locale.

Creare una connessione tramite PowerShell

-  1.  Aprire una finestra PowerShell.
-  1.  Eseguire `asnp citrix*` per caricare i moduli PowerShell specifici di Citrix.
-  1.  Eseguire i seguenti comandi. Di seguito è riportato un esempio:

```

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

Per creare una connessione utilizzando l’autenticazione basata sui ruoli, specificare apiKey e apiSecret come role_based_auth.

Limitazione

Se si modifica il nome di un AWS Virtual Private Cloud (VPC) nella console AWS, l’unità di hosting esistente in Citrix Cloud™ si interrompe. Quando l’unità di hosting è interrotta, non è possibile creare cataloghi o aggiungere macchine a cataloghi esistenti. Per risolvere il problema, ripristinare il nome originale del VPC AWS.

Configurazione proxy avanzata per la connessione host AWS

La connessione host AWS può leggere il valore del proxy di sistema WinHTTP configurato durante l’installazione di Cloud Connector se si imposta la proprietà personalizzata UseSystemProxyForHypervisorTrafficOnConnectors su true durante la creazione o l’aggiornamento di una connessione host tramite PowerShell.

Vantaggi

-  Semplifica la configurazione del proxy per le connessioni host AWS.  
  • Riduce la necessità di configurazione manuale tramite PowerShell dei valori di server e porta.
  • Garantisce un utilizzo coerente del proxy tra Cloud Connector e le connessioni host.
  • Migliora il tasso di successo delle chiamate API che richiedono l’accesso tramite proxy.
  • Diminuisce le richieste di supporto relative alla configurazione del proxy.

Prerequisito

Prima di impostare la proprietà personalizzata durante la creazione della connessione host tramite PowerShell, assicurarsi di configurare il proxy WinHTTP sul Cloud Connector.

Creare una nuova connessione con proxy automatico

  1. Aprire PowerShell.
  2. Aggiungere gli snap-in Citrix:

    
    Add-PSSnapin citrix*
    
    <!--NeedCopy-->
    
  3. Definire le variabili per la connessione.

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

    Assicurarsi di sostituire i valori segnaposto nelle variabili $customProperties, $awsEndPoint, $hypConnName, $apiKey, $secretKey e $resourceLocation con i valori appropriati per il proprio ambiente.

  1. Creare la connessione hypervisor.

    
    $hypHc = New-Item -Path xdhyp:\Connections `
    -Name $hypConnName `
    -HypervisorAddress $awsEndPoint `
    -UserName $apiKey `
    -SecurePassword $secureSecretKey `
    -ConnectionType $hypType `
    -CustomProperties $customProperties `
    -Persist `
    -ZoneUid $zoneUid
    
    <!--NeedCopy-->
    
  2. Creare la connessione hypervisor Broker.

    ```

  • $bhc = New-BrokerHypervisorConnection -HypHypervisorConnectionUid $hypHc.HypervisorConnectionUid

    ```

Vedere anche Aggiornare una connessione host esistente con proxy automatico

Provisioning tra account

Esistono casi d’uso in cui i Cloud Connector desiderano essere posizionati in un account AWS separato (account di servizi condivisi o account di componenti del sito) con ruoli IAM che dispongono di accesso tra account (ruolo IAM tra account) e cataloghi di macchine con provisioning MCS in un account AWS secondario separato (account di carichi di lavoro), senza la necessità di Cloud Connector aggiuntivi negli account separati. Per supportare tali scenari, questa funzionalità utilizza il peering VPC e l’accesso tra account tramite ruoli IAM per rendere possibile il provisioning tra diversi account AWS per le aziende che gestiscono più account AWS.

Con il peering VPC, è possibile che il Cloud Connector e le VM con provisioning in diverse regioni o account siano in grado di comunicare tra loro.

Con l’accesso tra account tramite ruoli IAM, si consente all’account primario (account Cloud Connector) di assumere un ruolo IAM per accedere alle risorse AWS nell’account secondario (VM del catalogo macchine).

Per consentire a Cloud Connector di accedere alle risorse dell’account secondario, creare una connessione host dopo aver assunto il ruolo IAM dall’account secondario.

Prerequisiti

Configurare quanto segue prima di creare una connessione host per il provisioning tra account:

Configurare il peering VPC

Si supponga che il VPC A si trovi nell’account primario (Account A) e che contenga i Cloud Connector e Active Directory. Il VPC B si trova nell’account secondario (Account B) dove si desidera eseguire il provisioning delle VM.

Per configurare una connessione di peering VPC tra l’Account A e l’Account B, eseguire le seguenti operazioni:

-  1.  Creare una connessione di peering VPC. Vedere:

-  [Account diverso, stessa regione](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html#different-account-same-region)
-  [Account diverso, regione diversa](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html#different-account-different-region)
  1. Accedere al VPC A e alla tabella di routing associata alla sottorete pubblica.
  2. Fare clic su Modifica route > Aggiungi route. Aggiungere il blocco CIDR del VPC B nella colonna Destinazione e aggiungere il peering VPC creato nella colonna Destinazione.
  3. Ripetere i passaggi 2 e 3, ma con le sottoreti private per il VPC A e il VPC B (aggiungere il blocco CIDR del VPC A). Vedere Aggiornare le tabelle di routing per una connessione di peering VPC.
  4. Accedere al gruppo di sicurezza privato associato al VPC A.
  5. Selezionare Azioni, quindi Modifica regole in entrata.
  6. Selezionare Aggiungi regola. Per il tipo, selezionare Tutto il traffico, quindi nella Colonna origine aggiungere:

    • Se si tratta di una regione diversa, aggiungere il blocco CIDR del VPC B.
    • Se si tratta di un account diverso ma della stessa regione, aggiungere l’ID account e l’ID del gruppo di sicurezza privato del VPC B separati da una barra (Esempio: 123456789012/sg-1a2b3c4d)
  7. Ripetere i passaggi da 5 a 7, ma con il gruppo di sicurezza privato per il VPC B (ma aggiungere il blocco CIDR del VPC A o l’ID account del VPC A e l’ID del gruppo di sicurezza privato della stessa regione, ma di un account diverso). Vedere Aggiornare i gruppi di sicurezza per fare riferimento ai gruppi di sicurezza peer.

Nota:

Non è previsto alcun costo per la creazione di una connessione di peering VPC. Tuttavia, mentre il peering VPC all’interno di una zona di disponibilità è gratuito, si applicano costi quando il trasferimento di dati tramite una connessione di peering VPC avviene tra più zone di disponibilità e regioni. Vedere Prezzi per una connessione di peering VPC.

Delegare l’accesso tra account utilizzando i ruoli IAM

Dopo aver configurato il peering VPC tra account, si delega l’accesso tra account utilizzando i ruoli IAM.

Con l’accesso tra account tramite ruoli IAM, si consente all’account primario (account Cloud Connector) di assumere un ruolo IAM per accedere alle risorse AWS nell’account secondario (VM del catalogo macchine).

Per accedere alle risorse tra account, eseguire le seguenti operazioni:

Ricorda:

Si presume che il VPC A si trovi nell’account primario (Account A) e che contenga il Cloud Connector e Active Directory. Il VPC B si trova nell’account secondario (Account B) dove si desidera eseguire il provisioning delle VM.

  1. Configurare il peering VPC tra account con i passaggi menzionati in precedenza.
  2. Creare un ruolo e una policy IAM nell’Account B con autorizzazioni IAM Citrix minime. Vedere Tutorial IAM: Delegare l’accesso tra account AWS utilizzando i ruoli IAM. Si supponga che l’ARN di questo ruolo sia “arn:aws:iam::5678:role/citrix-role”.
  3. Aggiungere la policy di attendibilità al ruolo “arn:aws:iam::5678:role/citrix-role” in modo che sia consentito l’accesso da parte del ruolo dell’Account A “arn:aws:iam::1234:role/primary-account-citrix-role” come da - Accesso alle risorse tra account in IAM.
  4. Creare il ruolo e la policy IAM nell’Account A con il nome menzionato in precedenza “primary-account-citrix role”, che può assumere il ruolo IAM e passare il ruolo IAM dall’Account B (arn:aws:iam::5678:role/citrix-role).
  5. Assegnare il ruolo “arn:aws:iam::1234:role/primary-account-citrix-role” a tutti i Cloud Connector nell’Account A.

I Cloud Connector possono ora assumere il ruolo dall’Account B (“arn:aws:iam::5678:role/citrix-role”).

Creare una connessione host per il provisioning tra account

Creare una connessione host nell’account secondario (Account B) dove si desidera eseguire il provisioning delle VM. Ciò consente ai Cloud Connector dell’Account A di accedere alle risorse nell’Account B dopo aver assunto il ruolo dall’Account B.

Utilizzare i comandi PowerShell per creare la connessione host e aggiungere le due seguenti proprietà personalizzate:

  • CrossAccountRoleArn: Se non si fornisce la proprietà CrossAccountRoleArn, viene creata la connessione host regolare. In questo caso, MaximumAssumeRoleDurationInSeconds viene ignorato anche se fornito.
  • MaximumAssumeRoleDurationInSeconds: DurationInSeconds deve essere compreso tra 900 secondi e 3600 secondi. Il valore predefinito è 900 secondi. Se si fornisce un valore superiore a 3600, DurationInSeconds viene impostato su 3600.

Esempio:


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

Dopo aver creato la connessione host, creare le unità di hosting utilizzando Studio o PowerShell. Tuttavia, selezionare VPC e Reti.

Modificare una connessione

È possibile modificare una connessione host esistente per:

Modificare le opzioni per fornire le autorizzazioni IAM

  1. Fare clic con il pulsante destro del mouse su una connessione Amazon EC2 esistente.
  2. Nella pagina Proprietà connessione, fare clic su Modifica impostazioni.
  3. Selezionare una delle opzioni per fornire le autorizzazioni IAM a Citrix per gestire le risorse. Immettere i dettagli richiesti e fare clic su Salva.

Modificare il numero massimo di azioni simultanee

Quando si creano connessioni host in Studio per Amazon EC2, vengono visualizzati i seguenti valori predefiniti:

Opzione Assoluto Percentuale
Azioni simultanee (tutti i tipi) 125 100
Numero massimo di nuove azioni al minuto 150 n/d
Numero massimo di operazioni di provisioning simultanee 100 n/d

MCS supporta 100 operazioni di provisioning simultanee massime per impostazione predefinita.

Configurare questi valori accedendo alla sezione Avanzate di Citrix Studio nella schermata Modifica connessione.

Identity and Access Management (IAM)

In alternativa, è possibile utilizzare l’SDK PowerShell remoto per impostare il numero massimo di operazioni simultanee per ottenere impostazioni ottimali per il proprio ambiente.

Utilizzare la proprietà personalizzata di PowerShell, MaximumConcurrentProvisioningOperations, per specificare il numero massimo di operazioni di provisioning AWS simultanee.

Prima della configurazione:

  • Assicurarsi di aver installato l’SDK PowerShell per il cloud.
  • Comprendere che il valore predefinito per MaximumConcurrentProvisioningOperations è 100.

Eseguire i passaggi seguenti per personalizzare il valore MaximumConcurrentProvisioningOperations:

  1. Aprire una finestra PowerShell.
  2. Eseguire asnp citrix* per caricare i moduli PowerShell specifici di Citrix.
  3. Immettere cd xdhyp:\Connections\.
  4. Immettere dir per elencare le connessioni.
  5. Modificare o inizializzare la stringa delle proprietà personalizzate:

    • Se la stringa delle proprietà personalizzate ha un valore, copiare le proprietà personalizzate in Blocco note. Quindi, modificare la proprietà MaximumConcurrentProvisioningOperations con il valore preferito. È possibile immettere un valore compreso tra 1 e 1000. Ad esempio, <Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="xyz"/>.

    • Se la stringa delle proprietà personalizzate è vuota o null, è necessario inizializzare la stringa immettendo la sintassi corretta sia per lo schema che per la proprietà MaximumConcurrentProvisioningOperations.

  6. Nella finestra PowerShell, incollare le proprietà personalizzate modificate da Blocco note e assegnare una variabile alle proprietà personalizzate modificate. Se sono state inizializzate le proprietà personalizzate, aggiungere le righe seguenti dopo la sintassi:

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

    Questa stringa imposta la proprietà MaximumConcurrentProvisioningOperations su 100. Nella stringa delle proprietà personalizzate, è necessario impostare la proprietà MaximumConcurrentProvisioningOperations su un valore che si allinei alle proprie esigenze.

  7. Immettere Get-XDAuthentication, che richiede le credenziali.
  8. Eseguire $cred = Get-Credential, che potrebbe richiedere solo una password (o un nome utente e una password). Potrebbe anche essere richiesto l’ID applicazione e il segreto associato. Per le connessioni che utilizzano l’autenticazione basata sui ruoli, role_based_auth è sia il nome utente che la password. In caso contrario, immettere l’ID API AWS e il segreto.
  9. Eseguire set-item -PSPath 'XDHyp:\Connections<connection-name>' -CustomProperties $customProperties -username $cred.username -Securepassword $cred.password. È necessario impostare <nome-connessione> sul nome della connessione.
  10. Immettere dir per verificare la stringa CustomProperties aggiornata.

Configurare i gruppi di sicurezza per interfaccia di rete

Quando si modifica una connessione host, è ora possibile configurare il numero massimo di gruppi di sicurezza consentiti per interfaccia di rete elastica (ENI) utilizzando un comando PowerShell. Per informazioni sui valori di quota dei gruppi di sicurezza AWS, vedere Gruppi di sicurezza.

Per configurare i gruppi di sicurezza per interfaccia di rete:

  1. Aprire una finestra PowerShell.
  2. Eseguire asnp citrix* per caricare i moduli PowerShell specifici di Citrix.
  3. Eseguire cd xdhyp:\Connections\.
  4. Eseguire dir per elencare le connessioni.
  5. Eseguire il seguente comando PowerShell per configurare i gruppi di sicurezza per interfaccia di rete:

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

    Nota:

    Se non si imposta un valore per AwsMaxENISecurityGroupLimit, questo assume il valore predefinito di 5.

Aggiornare una connessione host esistente con proxy automatico

  1. Aprire una finestra PowerShell.
  2. Eseguire asnp citrix* per caricare i moduli PowerShell specifici di Citrix.
  3. Immettere cd xdhyp:\Connections\.
  4. Immettere dir per elencare le connessioni.
  5. Copiare le proprietà personalizzate in Blocco note e aggiungere l’impostazione della proprietà <Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True".
  6. Nella finestra PowerShell, incollare le proprietà personalizzate modificate da Blocco note e assegnare una variabile alle proprietà personalizzate modificate.
  7. Immettere Get-XDAuthentication, che richiede le credenziali.
  8. Eseguire $cred = Get-Credential, che potrebbe richiedere solo una password (o un nome utente e una password). Potrebbe anche essere richiesto l’ID applicazione e il segreto associato. Per le connessioni che utilizzano l’autenticazione basata sui ruoli, role_based_auth è sia il nome utente che la password. In caso contrario, immettere l’ID API AWS e il segreto.
  9. Eseguire set-item -PSPath 'XDHyp:\Connections<connection-name>' -CustomProperties $customProperties -username $cred.username -Securepassword $cred.password. È necessario impostare <nome-connessione> sul nome della connessione.
  10. Immettere dir per verificare la stringa CustomProperties aggiornata.

URL dell’endpoint del servizio

URL dell’endpoint del servizio per zona standard

Quando si utilizza MCS, viene aggiunta una nuova connessione AWS con una chiave API e un segreto API. Con queste informazioni, insieme all’account autenticato, MCS interroga AWS per le zone supportate utilizzando la chiamata API AWS DescribeRegions EC2. La query viene eseguita utilizzando un URL dell’endpoint del servizio EC2 generico https://ec2.amazonaws.com/. Utilizzare MCS per selezionare la zona per la connessione dall’elenco delle zone supportate. L’URL dell’endpoint del servizio AWS preferito viene selezionato automaticamente per la zona. Tuttavia, dopo aver creato l’URL dell’endpoint del servizio, non è più possibile impostarlo o modificarlo.

URL dell’endpoint del servizio non standard

Ci possono essere situazioni in cui potrebbe non essere necessario l’URL dell’endpoint del servizio AWS scelto automaticamente per la connessione. In questi casi, è possibile utilizzare Citrix Cloud SDK e PowerShell per creare una connessione con un URL dell’endpoint del servizio non standard. Ad esempio, per creare una connessione utilizzando l’URL dell’endpoint del servizio https://ec2.cn-north-1.amazonaws.com.cn:

  1. Configurare il Cloud Connector ospitato su AWS e assicurarsi che disponga di connettività.
  2. Eseguire i seguenti comandi PowerShell per visualizzare l’elenco dei Cloud Connector.

    
     PS C:\> asnp citrix.*
     PS C:\> Get-XDAuthentication
     PS C:\> Get-ConfigEdgeServer
    
    <!--NeedCopy-->
    
  3. Trovare lo ZoneUid dal Cloud Connector appena creato e inserirlo nei seguenti comandi PowerShell. Sostituire gli elementi in corsivo con i valori corrispondenti.

    
    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. Aggiornare la scheda Hosting per verificare che la connessione EC2 sia stata creata.
  5. Aggiungere una posizione risorsa utilizzando la nuova connessione.

Autorizzazioni AWS richieste

Questa sezione contiene l’elenco completo delle autorizzazioni AWS. Utilizzare il set completo di autorizzazioni come indicato nella sezione affinché la funzionalità funzioni correttamente.

Nota:

L’autorizzazione iam:PassRole è necessaria solo per role_based_auth.

  • Creazione di una connessione host

  • Viene aggiunta una nuova connessione host utilizzando le informazioni ottenute da AWS.

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

<!--NeedCopy-->

Gestione dell’alimentazione delle VM

Le VM vengono accese o spente.


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

<!--NeedCopy-->

Creazione, aggiornamento o eliminazione di VM

Un catalogo di macchine viene creato, aggiornato o eliminato con VM fornite come istanze AWS.


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateImage",
                "ec2:CreateLaunchTemplate",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "ec2:CreateVolume",
                "ec2:DeleteVolume",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeIamInstanceProfileAssociations",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSpotInstanceRequests",
                "ec2:DescribeInstanceCreditSpecifications",
                "ec2:DescribeInstanceAttribute",

                "ec2:GetLaunchTemplateData",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

<!--NeedCopy-->

Nota:

-  La sezione EC2 relativa ai SecurityGroup è necessaria solo se è necessario creare un Isolation Security Group per la VM di preparazione durante la creazione del catalogo. Una volta completata questa operazione, queste autorizzazioni non sono più richieste.

Importazione di VM

Un catalogo di macchine viene creato importando le VM.


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

<!--NeedCopy-->

Nota:

L’ec2:DescribeSpotInstanceRequests è necessaria solo se è presente un’istanza spot nella regione AWS da cui verranno importate le VM.

Caricamento e download diretto del disco

Il caricamento diretto del disco elimina il requisito del volume worker per il provisioning del catalogo di macchine, e utilizza invece le API pubbliche fornite da AWS. Questa funzionalità riduce i costi associati agli account di archiviazione aggiuntivi e la complessità per il mantenimento delle operazioni del volume worker.

Nota:

Il supporto per il volume worker è stato rimosso. Le autorizzazioni di caricamento e download diretto del disco sono richieste per il provisioning del catalogo di macchine.

Le seguenti autorizzazioni devono essere aggiunte alla policy:

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

Importante:

  • È possibile aggiungere una nuova VM a cataloghi di macchine esistenti senza alcuna risorsa volume worker come AMI del volume worker e VM del volume worker.
  • Se si elimina un catalogo esistente che in precedenza utilizzava un volume worker, tutti gli artefatti correlati al volume worker vengono eliminati.

Crittografia EBS dei volumi creati

EBS può crittografare automaticamente i volumi appena creati se l’AMI è crittografata o se EBS è configurato per crittografare tutti i nuovi volumi. Tuttavia, per implementare la funzionalità, le seguenti autorizzazioni devono essere incluse nella policy 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:

  • Le autorizzazioni possono essere limitate a chiavi specifiche includendo un blocco Resource e Condition a discrezione dell’utente. Ad esempio, Autorizzazioni KMS con condizione:


{
     "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 seguente istruzione di policy chiave è l’intera policy chiave predefinita per le chiavi KMS necessaria per consentire all’account di utilizzare le policy IAM per delegare l’autorizzazione per tutte le azioni (kms:*) sulla chiave KMS.


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

<!--NeedCopy-->

Per maggiori informazioni, consultare la documentazione ufficiale di AWS Key Management Service.

Autenticazione basata su ruolo IAM

Le seguenti autorizzazioni vengono aggiunte per supportare l’autenticazione basata su ruolo.


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

<!--NeedCopy-->

Policy di autorizzazioni IAM minime

Il seguente JSON può essere utilizzato per tutte le funzionalità attualmente supportate. È possibile creare connessioni host, creare, aggiornare o eliminare VM ed eseguire la gestione dell’alimentazione utilizzando questa policy. La policy può essere applicata agli utenti come spiegato nelle sezioni Definizione delle autorizzazioni IAM oppure è possibile utilizzare l’autenticazione basata su ruolo utilizzando la chiave di sicurezza e la chiave segreta role_based_auth.

Importante:

Per utilizzare role_based_auth, configurare prima il ruolo IAM desiderato sull’istanza EC2 del connettore cloud durante la configurazione del connettore cloud. Utilizzando Citrix Studio, aggiungere la connessione di hosting e fornire role_based_auth per la chiave di autenticazione e la chiave segreta. Una connessione di hosting con queste impostazioni utilizzerà quindi l’autenticazione basata su ruolo.


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateImage",
                "ec2:CreateLaunchTemplate",
                "ec2:CreateNetworkInterface",
                "ec2:CreateTags",
                "ec2:CreateVolume",
                "ec2:DeleteLaunchTemplate",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteSecurityGroup",
                "ec2:DeleteSnapshot",
                "ec2:DeleteTags",
                "ec2:DeleteVolume",
                "ec2:DeregisterImage",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeIamInstanceProfileAssociations",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSpotInstanceRequests",
                "ec2:DescribeInstanceCreditSpecifications",
                "ec2:DescribeInstanceAttribute",
                "ec2:GetLaunchTemplateData",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RebootInstances",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:GenerateDataKey",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*"
        }
    ]
}

<!--NeedCopy-->

Nota:

  • La sezione EC2 relativa ai SecurityGroups è necessaria solo se deve essere creato un Security Group di isolamento per la VM di preparazione durante la creazione del catalogo. Una volta fatto ciò, queste autorizzazioni non sono più richieste.
  • La sezione KMS è richiesta solo quando si utilizza la crittografia del volume EBS.
  • La sezione di autorizzazione iam:PassRole è necessaria solo per role_based_auth.
  • È possibile aggiungere autorizzazioni specifiche a livello di risorsa anziché l’accesso completo, in base alle proprie esigenze e all’ambiente. Fare riferimento ai documenti AWS Demystifying EC2 Resource-Level Permissions e Access management for AWS resources per maggiori dettagli.
  • Utilizzare le autorizzazioni ec2:CreateNetworkInterface ed ec2:DeleteNetworkInterface solo se si utilizza il metodo del volume worker.

Convalida delle autorizzazioni sulla connessione host

È possibile convalidare le autorizzazioni su una connessione host per eseguire attività relative alla creazione e alla gestione dei cataloghi di macchine MCS. Questa implementazione aiuta a individuare in anticipo le autorizzazioni mancanti richieste per diversi scenari, come la creazione, l’eliminazione e l’aggiornamento delle VM, la gestione dell’alimentazione delle VM e la crittografia EBS, in modo da evitare blocchi in momenti critici.

È possibile convalidare le autorizzazioni su una connessione host utilizzando il comando PowerShell Test-HypHypervisorConnection. Il risultato del comando viene acquisito come un elenco in cui ogni elemento dell’elenco è suddiviso in tre sezioni.

  • Categoria: l’azione o l’attività che un utente può eseguire per creare e gestire un catalogo di macchine MCS.
  • Azione correttiva: il passaggio che un amministratore deve eseguire per risolvere una discrepanza di autorizzazioni mancanti degli utenti.
  • Autorizzazione mancante: l’elenco delle autorizzazioni mancanti per una categoria.

Per convalidare le autorizzazioni, eseguire le seguenti operazioni:

  1. Creare una connessione host ad AWS.
  2. Aprire una finestra PowerShell dall’host Delivery Controller™.
  3. Eseguire asnp citrix* per caricare i moduli PowerShell specifici di Citrix.
  4. Eseguire il seguente comando per verificare se si dispone delle autorizzazioni richieste per cercare le proprie autorizzazioni.

    
    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon"
    
    <!--NeedCopy-->
    
  5. Dopo aver aggiunto le autorizzazioni mancanti richieste per cercare le proprie autorizzazioni, eseguire il seguente comando per verificare se si dispone delle autorizzazioni nelle seguenti categorie:

    • Crea, aggiorna, elimina
    • Gestione dell’alimentazione
    • Crittografia EBS
    
    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" [-SecurePassword -Password] "password" -UserName "" -CustomProperties ""
    
    <!--NeedCopy-->
    

Per maggiori informazioni sull’aggiunta di autorizzazioni, consultare Aggiungere autorizzazioni IAM.

Dove andare dopo

Maggiori informazioni

Connessione ad AWS EC2