Citrix Virtual Apps and Desktops

Ambienti cloud AWS

Questo articolo illustra la configurazione dell’account AWS (AWS) come posizione risorsa che è possibile utilizzare con Citrix Virtual Apps and Desktops. La posizione risorsa include un set di componenti di base, ideale per una Proof of Concept o un’altra distribuzione che non richiede risorse distribuite in più zone di disponibilità. Dopo aver completato queste attività, è possibile installare VDA, eseguire il provisioning delle macchine, creare cataloghi delle macchine e creare gruppi di consegna.

Una volta completate le attività descritte in questo articolo, la posizione risorsa include i seguenti componenti:

  • Un cloud privato virtuale (VPC) con subnet pubbliche e private all’interno di un’unica zona di disponibilità.
  • Un’istanza che viene eseguita sia come controller di dominio Active Directory che come server DNS, situata nella subnet privata del VPC.
  • Due istanze aggiunte al dominio su cui è installato Citrix Cloud Connector, situate nella subnet privata del VPC.
  • Un’istanza che funge da host bastion, situata nella subnet pubblica del VPC. Questa istanza viene utilizzata per avviare connessioni RDP alle istanze nella subnet privata per scopi amministrativi. Dopo aver completato la configurazione della posizione risorsa, è possibile chiudere questa istanza in modo che non sia più facilmente accessibile. Quando è necessario gestire altre istanze nella subnet privata, come le istanze VDA, è possibile riavviare l’istanza host bastion.

Panoramica delle attività

Configurare un cloud privato virtuale (VPC) con subnet pubbliche e private. Una volta completata questa attività, AWS distribuisce un’istanza NAT con un indirizzo IP elastico nella subnet pubblica. Ciò consente alle istanze nella subnet privata di accedere a Internet. Le istanze nella subnet pubblica sono accessibili al traffico pubblico in entrata, mentre le istanze nella subnet privata non lo sono.

Configurare i gruppi di sicurezza. I gruppi di sicurezza agiscono come firewall virtuali che controllano il traffico per le istanze nel VPC. È possibile aggiungere regole ai gruppi di sicurezza che consentono alle istanze nella subnet pubblica di comunicare con le istanze nella subnet privata. Inoltre, questi gruppi di sicurezza verranno associati a ogni istanza nel VPC.

Creare un set di opzioni DHCP. Con un VPC Amazon, i servizi DHCP e DNS sono forniti per impostazione predefinita, il che influisce sulla configurazione del DNS sul controller di dominio Active Directory. Il DHCP di Amazon non può essere disabilitato e il DNS di Amazon può essere utilizzato solo per la risoluzione DNS pubblica, non per la risoluzione dei nomi di Active Directory. Per specificare i server di dominio e dei nomi trasferiti alle istanze tramite DHCP, creare un set di opzioni DHCP. Il set assegna il suffisso di dominio Active Directory e specifica il server DNS per tutte le istanze nel VPC. Per garantire che i record Host (A) e Ricerca inversa (PTR) vengano registrati automaticamente quando le istanze entrano a far parte del dominio, è necessario configurare le proprietà dell’adattatore di rete per ogni istanza aggiunta alla subnet privata.

Aggiungere un host bastion, un controller di dominio e Citrix Cloud Connector a VPC. Tramite l’host bastion, è possibile accedere alle istanze nella subnet privata per configurare il dominio, unire le istanze al dominio e installare Citrix Cloud Connector.

Attività 1: Configurare il VPC

  1. Dalla console di gestione AWS, selezionare VPC.
  2. Dalla dashboard del VPC, selezionare Start VPC Wizard (Avvia procedura guidata VPC).
  3. Selezionare VPC with Public and Private Subnets (VPC con subnet pubbliche e private), quindi selezionare Select (Seleziona).
  4. Immettere un nome per il VPC e modificare il blocco CIDR IP e gli intervalli IP delle subnet pubbliche e private, se necessario.
  5. Se è selezionato un gateway NAT, selezionare Use a NAT Instance instead (Usa un’istanza NAT).
  6. Per l’istanza NAT, specificate il tipo di istanza e la coppia di chiavi che si desidera utilizzare. La coppia di chiavi consente di connettersi in modo sicuro all’istanza in un secondo momento.
  7. In Enable DNS host names (Abilita nomi host DNS), lasciare l’opzione Yes (Sì) selezionata.
  8. Selezionare Create VPC (Crea VPC). AWS crea le subnet pubbliche e private, il gateway Internet, le tabelle di instradamento e il gruppo di sicurezza predefinito.

Nota:

la modifica del nome di un Virtual Private Cloud (VPC) AWS nella console AWS danneggia l’unità di hosting esistente in Citrix Cloud. Quando l’unità di hosting è danneggiata, non è possibile creare cataloghi o aggiungere macchine ai cataloghi esistenti. Dal problema noto: PMCS-7701

Attività 2: Configurare i gruppi di sicurezza

Questa attività crea e configura i seguenti gruppi di sicurezza per il VPC:

  • Un gruppo di sicurezza per l’istanza NAT.
  • Un gruppo di sicurezza pubblico, a cui verranno associate le istanze della subnet pubblica.
  • Un gruppo di sicurezza privato, a cui verranno associate le istanze della subnet privata.

Per creare i gruppi di sicurezza

  1. Dalla dashboard del VPC, selezionare Security Groups (Gruppi di sicurezza).
  2. Creare un gruppo di sicurezza per l’istanza NAT. Selezionare Create Security Group (Crea gruppo di sicurezza) e immettere un nome e una descrizione per il gruppo. Nel VPC, selezionare il VPC creato in precedenza. Selezionare Yes, Create (Sì, crea).
  3. Ripetere il passaggio 2 per creare un gruppo di sicurezza pubblico e un gruppo di sicurezza privato.

Configurare il gruppo di sicurezza NAT

  1. Dall’elenco dei gruppi di sicurezza, selezionare il gruppo di sicurezza NAT.

  2. Selezionare la scheda Inbound Rules (Regole in entrata) e selezionare Edit (Modifica) per creare le seguenti regole:

    Tipo Origine
    TUTTO il traffico Selezionare il gruppo di sicurezza privato.
    22 (SSH) 0.0.0.0/0
  3. Al termine, selezionare Save (Salva).

Configurare il gruppo di sicurezza pubblico

  1. Dall’elenco dei gruppi di sicurezza, selezionare il gruppo di sicurezza pubblico.

  2. Selezionare la scheda Inbound Rules (Regole in entrata) e selezionare Edit (Modifica) per creare le seguenti regole:

    Tipo Origine
    TUTTO il traffico Selezionare il gruppo di sicurezza privato.
    TUTTO il traffico Selezionare il gruppo di sicurezza pubblico.
    ICMP 0.0.0.0/0
    22 (SSH) 0.0.0.0/0
    80 (HTTP) 0.0.0.0/0
    443 (HTTPS) 0.0.0.0/0
    1494 (ICA/HDX) 0.0.0.0/0
    2598 (affidabilità della sessione) 0.0.0.0/0
    3389 (RDP) 0.0.0.0/0
  3. Al termine, selezionare Save (Salva).

  4. Selezionare la scheda Outbound Rules (Regole in uscita) e selezionare Edit (Modifica) per creare le seguenti regole:

    Tipo Destinazione
    TUTTO il traffico Selezionare il gruppo di sicurezza privato.
    TUTTO il traffico 0.0.0.0/0
    ICMP 0.0.0.0/0
  5. Al termine, selezionare Save (Salva).

Configurare il gruppo di sicurezza privato

  1. Dall’elenco dei gruppi di sicurezza, selezionare il gruppo di sicurezza privato.

  2. Se non è stato impostato il traffico dal gruppo di sicurezza pubblico, è necessario impostare le porte TCP; selezionare la scheda Inbound Rules (Regole in entrata) e selezionare Edit (Modifica) per creare le seguenti regole:

    Tipo Origine
    TUTTO il traffico Selezionare il gruppo di sicurezza NAT.
    TUTTO il traffico Selezionare il gruppo di sicurezza privato.
    TUTTO il traffico Selezionare il gruppo di sicurezza pubblico.
    ICMP Selezionare il gruppo di sicurezza pubblico.
    TCP 53 (DNS) Selezionare il gruppo di sicurezza pubblico.
    UDP 53 (DNS) Selezionare il gruppo di sicurezza pubblico.
    80 (HTTP) Selezionare il gruppo di sicurezza pubblico.
    TCP 135 Selezionare il gruppo di sicurezza pubblico.
    TCP 389 Selezionare il gruppo di sicurezza pubblico.
    UDP 389 Selezionare il gruppo di sicurezza pubblico.
    443 (HTTPS) Selezionare il gruppo di sicurezza pubblico.
    TCP 1494 (ICA/HDX) Selezionare il gruppo di sicurezza pubblico.
    TCP 2598 (affidabilità della sessione) Selezionare il gruppo di sicurezza pubblico.
    3389 (RDP) Selezionare il gruppo di sicurezza pubblico.
    TCP 49152-65535 Selezionare il gruppo di sicurezza pubblico.
  3. Al termine, selezionare Save (Salva).

  4. Selezionare la scheda Outbound Rules (Regole in uscita) e selezionare Edit (Modifica) per creare le seguenti regole:

    Tipo Destinazione
    TUTTO il traffico Selezionare il gruppo di sicurezza privato.
    TUTTO il traffico 0.0.0.0/0
    ICMP 0.0.0.0/0
    UDP 53 (DNS) 0.0.0.0/0
  5. Al termine, selezionare Save (Salva).

Attività 3: Associare l’istanza NAT al gruppo di sicurezza NAT

  1. Dalla Console di gestione AWS, selezionare EC2.
  2. Dalla dashboard di EC2, selezionare Instances (Istanze).
  3. Selezionare l’istanza NAT e quindi selezionare Actions > Networking > Change Security Groups (Azioni > Networking > Modifica gruppi di sicurezza).
  4. Deselezionare la casella di controllo del gruppo di sicurezza predefinito.
  5. Selezionare il gruppo di sicurezza NAT creato in precedenza, quindi selezionare Assign Security Groups (Assegna gruppi di sicurezza).

Attività 4: Avviare le istanze

I seguenti passaggi creano quattro istanze EC2 e decrittografano la password dell’amministratore predefinita generata da Amazon.

  1. Dalla Console di gestione AWS, selezionare EC2.

  2. Dalla dashboard di EC2, selezionare Launch Instance (Avvia istanza).

  3. Selezionare un’immagine e un tipo di istanza della macchina Windows Server.

  4. Nella pagina Configure Instance Details (Configura dettagli istanza), inserire un nome per l’istanza e selezionare il VPC configurato in precedenza.

  5. In Subnet, effettuare le seguenti selezioni per ogni istanza:

    • Host bastion: selezionare la subnet pubblica.
    • Controller di dominio e connettori: selezionare la subnet privata.
  6. In Auto-assign Public IP address (Assegna automaticamente l’indirizzo IP pubblico), effettuare le seguenti selezioni per ogni istanza:

    • Host bastion: selezionare Enable (Abilita).
    • Controller di dominio e connettori: selezionare Use default setting (Usa impostazione predefinita) o Disable (Disabilita).
  7. In Network Interfaces (Interfacce di rete), immettere un indirizzo IP primario all’interno dell’intervallo IP della subnet privata per il controller di dominio e le istanze di Cloud Connector.

  8. Nella pagina Add Storage (Aggiungi spazio di archiviazione), modificare le dimensioni del disco, se necessario.

  9. Nella pagina Tag Instance (Istanza tag), inserire un nome descrittivo per ogni istanza.

  10. Nella pagina Configure Security Groups (Configura gruppi di sicurezza), selezionare Select an existing security group (Seleziona un gruppo di sicurezza esistente) e quindi effettuare le seguenti selezioni per ogni istanza:

    • Host bastion: selezionare il gruppo di sicurezza pubblico.
    • Controller di dominio e connettori cloud: selezionare il gruppo di sicurezza privato.
  11. Controllare le selezioni e quindi selezionare Launch (Avvia).

  12. Creare una nuova coppia di chiavi o selezionarne una esistente. Se si crea una nuova coppia di chiavi, scaricare il file della chiave privata (.pem) e conservalo in un luogo sicuro. È necessario fornire la chiave privata quando si acquisisce la password di amministratore predefinita per l’istanza.

  13. Selezionare Launch Instances (Avvia istanze). Selezionare View Instances (Visualizza istanze) per visualizzare un elenco delle istanze. Attendere che l’istanza appena avviata abbia superato tutti i controlli di stato prima di accedervi.

  14. Acquisire la password di amministratore predefinita per ogni istanza:

    1. Dall’elenco delle istanze, selezionare l’istanza e quindi selezionare Connect (Connetti).
    2. Selezionare Get Password (Ottieni password) e inserire il file della chiave privata (.pem) quando richiesto.
    3. Selezionare Decrypt Password (Decrittografa password). AWS visualizza la password predefinita.
  15. Ripetere i passaggi da 2 a 14 fino a quando non sono state create quattro istanze: un’istanza host bastion nella subnet pubblica e tre istanze nella subnet privata da utilizzare come controller di dominio e due Cloud Connector.

Attività 5: Creare un set di opzioni DHCP

  1. Dalla dashboard del VPC, selezionare DHCP Options Sets (Set di opzioni DHCP).

  2. Inserire le seguenti informazioni:

    • Nome: inserire un nome descrittivo per il set.
    • Nome di dominio: immettere il nome di dominio completo utilizzato quando si configura l’istanza del controller di dominio.
    • Server del nome di dominio: immettere l’indirizzo IP privato assegnato all’istanza del controller di dominio e la stringa AmazonProvidedDNS, separati da virgole.
    • Server NTP: lasciare vuoto questo campo.
    • Server dei nomi NetBIOS: immettere l’indirizzo IP privato dell’istanza del controller di dominio.
    • Tipo di nodo NetBIOS: immettere 2.
  3. Selezionare Yes, Create (Sì, crea).

  4. Associare il nuovo set al VPC:

    1. Dalla dashboard del VPC, selezionare Your VPCs (VPC disponibili), quindi selezionare il VPC configurato in precedenza.
    2. Selezionare Actions > Edit DHCP Options Set (Azioni > Modifica set di opzioni DHCP).
    3. Quando richiesto, selezionare il nuovo set che hai creato e quindi selezionare Save (Salva).

Attività 6: Configurare le istanze

  1. Utilizzando un client RDP, connettersi all’indirizzo IP pubblico dell’istanza host bastion. Quando richiesto, inserire le credenziali per l’account amministratore.

  2. Dall’istanza host bastion, avviare Connessione Desktop remoto e connettersi all’indirizzo IP privato dell’istanza che si desidera configurare. Quando richiesto, inserire le credenziali dell’amministratore per l’istanza.

  3. Per tutte le istanze nella subnet privata, configurare le impostazioni DNS:

    1. Selezionare Start > Pannello di controllo > Rete e Internet > Centro connessioni di rete e condivisione > Modifica impostazioni scheda. Fare doppio clic sulla connessione di rete visualizzata.
    2. Selezionare Properties > Internet Protocol Version 4 (TCP/IPv4) > Properties (Proprietà > Protocollo Internet versione 4 (TCP/IPv4) > Proprietà).
    3. Selezionare Advanced > DNS. Assicurarsi che le seguenti impostazioni siano abilitate e selezionare OK:

      • Registra nel DNS gli indirizzi di questa connessione
      • Utilizza il suffisso DNS di questa connessione nella registrazione DNS
  4. Per configurare il controller di dominio:

    1. Utilizzando Server Manager, aggiungere il ruolo Servizi di dominio Active Directory con tutte le funzionalità predefinite.
    2. Promuovere l’istanza a un controller di dominio. Durante la promozione, abilitare il DNS e utilizzare il nome di dominio specificato al momento della creazione del set di opzioni DHCP. Riavviare l’istanza quando richiesto.
  5. Per configurare il primo Cloud Connector:

    1. Aggiungere l’istanza al dominio e riavviare quando richiesto. Dall’istanza host bastion, riconnettersi all’istanza utilizzando RDP.
    2. Accedere a Citrix Cloud. Selezionare Resource Locations (Posizioni delle risorse) dal menu in alto a sinistra.
    3. Scaricare il Cloud Connector.
    4. Quando richiesto, eseguire il file cwcconnector.exe e fornire le credenziali Citrix Cloud. Seguire la procedura guidata.
    5. Al termine, selezionare Refresh (Aggiorna) per visualizzare la pagina Resource Locations (Posizioni delle risorse). Quando il Cloud Connector è registrato, l’istanza viene visualizzata nella pagina.
  6. Ripetere il passaggio 5 per configurare il secondo Cloud Connector.

Creare una connessione

Quando si crea una connessione da Studio:

  • È necessario fornire la chiave API e i valori della chiave segreta. È possibile esportare il file chiave contenente tali valori da AWS e quindi importarli. È inoltre necessario fornire la regione, la zona di disponibilità, il nome del VPC, gli indirizzi delle subnet, il nome di dominio, i nomi dei gruppi di sicurezza e le credenziali.
  • Il file delle credenziali per l’account AWS radice (recuperato dalla console AWS) non è formattato come i file delle credenziali scaricati per gli utenti AWS standard. Pertanto, la gestione di Citrix Virtual Apps and Desktops 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).

Nota:

Dopo aver creato una connessione, i tentativi di aggiornamento della chiave API e della chiave segreta potrebbero non riuscire. Per risolvere il problema, controllare le restrizioni del server proxy o del firewall e assicurarsi che il seguente indirizzo sia contattabile: https://*.amazonaws.com.

Valori predefiniti della connessione host

Quando si creano connessioni host in ambienti cloud AWS, vengono visualizzati i seguenti valori predefiniti:

| Opzione | Valore assoluto | Percentuale | |— | — | —| | Azioni simultanee (tutti i tipi) | 125 | 100 | | Numero massimo di nuove azioni al minuto | 125 |

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

URL dell’endpoint del servizio

URL dell’endpoint del servizio di 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 EC2 AWS DescribeRegions. La query viene effettuata utilizzando un URL generico dell’endpoint del servizio EC2 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

In alcune situazioni potrebbe non essere necessario l’URL dell’endpoint del servizio AWS scelto automaticamente per la connessione. In questi casi, è possibile utilizzare l’SDK Citrix Cloud 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 da 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. Individuare lo ZoneUID dal Cloud Connector appena creato e inserirlo nei seguenti comandi PowerShell. Sostituire gli elementi in corsivo con i rispettivi valori.

    PS C:\> $hyp= New-Item -Path xdhyp:\Connections -ZoneUidZoneUid-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

  4. Aggiornare la scheda Configuration > Hosting (Configurazione > Hosting) per verificare che la connessione EC2 sia stata creata.
  5. Aggiungere una posizione risorsa utilizzando la nuova connessione.

Tenancy di AWS

AWS offre le seguenti opzioni di tenancy: tenancy condivisa (il tipo predefinito) e tenancy dedicata. “Tenacy condivisa” significa che più istanze di Amazon EC2 di clienti diversi potrebbero risiedere sullo stesso componente hardware fisico. “Tenancy dedicata” significa che le istanze di EC2 vengono eseguite solo su hardware con altre istanze distribuite. Gli altri clienti non utilizzano lo stesso hardware.

È possibile utilizzare MCS per eseguire il provisioning di host AWS dedicati utilizzando PowerShell.

Configurare la tenancy dell’host AWS dedicato utilizzando PowerShell

È possibile creare un catalogo di macchine con tenancy host definita tramite PowerShell.

Un host dedicato Amazon [EC2] è un server fisico con capacità di istanza [EC2] completamente dedicata, che consente di utilizzare licenze software esistenti per socket o per macchina virtuale.

Gli host dedicati hanno un utilizzo preimpostato in base al tipo di istanza. Ad esempio, un singolo host dedicato allocato di tipi di istanza C4 Large è limitato all’esecuzione di 16 istanze. Per ulteriori informazioni, consultare il sito di AWS.

I requisiti per il provisioning sugli host AWS includono:

  • Un’immagine BYOL (Bring Your Own License) importata (AMI). Con host dedicati, utilizzare e gestire le licenze esistenti.
  • Un’allocazione di host dedicati con un utilizzo sufficiente per soddisfare le richieste di provisioning.
  • abilitare il posizionamento automatico.

Per eseguire il provisioning su un host dedicato in AWS utilizzando PowerShell, utilizzare il cmdlet New-ProvScheme con il parametro TenancyType impostato su Host.

Per ulteriori informazioni, consultare la documentazione per gli sviluppatori Citrix.

Acquisizione delle proprietà delle istanze AWS

Quando si crea un catalogo per il provisioning di macchine utilizzando Machine Creation Services (MCS) in AWS, si seleziona un’AMI per rappresentare l’immagine master/golden di quel catalogo. Da tale AMI, MCS utilizza una snapshot del disco. Nelle versioni precedenti, se si voleva avere ruoli o tag sulle macchine si utilizzava la console AWS per impostarli individualmente. Questa funzionalità è abilitata per impostazione predefinita.

Suggerimento:

Per utilizzare l’acquisizione delle proprietà delle istanze AWS, è necessario disporre di una macchina virtuale associata all’AMI.

Per migliorare questo processo, MCS legge le proprietà dall’istanza da cui è stata presa l’AMI e applica il ruolo di Identity Access Management (IAM) e i tag della macchina alle macchine di cui è stato eseguito il provisioning per un determinato catalogo. Quando si utilizza questa funzione facoltativa, il processo di creazione del catalogo trova l’istanza dell’origine AMI selezionata che legge un insieme limitato di proprietà. Queste proprietà vengono quindi archiviate in un modello di lancio AWS, utilizzato per il provisioning di macchine per quel catalogo. Qualsiasi macchina nel catalogo eredita le proprietà dell’istanza acquisita.

Le proprietà acquisite includono:

  • Ruoli IAM: applicati alle istanze di cui è stato eseguito il provisioning.
  • Tag: applicati alle istanze di cui è stato eseguito il provisioning, il relativo disco e le NIC. Questi tag vengono applicati alle risorse Citrix transitorie, tra cui: bucket e oggetti S3, risorse di volume e di lavoro, AMI, snapshot e modelli di avvio.

Suggerimento:

L’etichettatura delle risorse Citrix transitorie è facoltativa ed è configurabile utilizzando la proprietà personalizzata AwsOperationalResourcesTagging.

Acquisizione della proprietà dell’istanza AWS

È possibile utilizzare questa funzionalità specificando una proprietà personalizzata, AwsCaptureInstanceProperties, durante la creazione di uno schema di provisioning per una connessione di hosting AWS:

New-ProvScheme -CustomProperties “AwsCaptureInstanceProperties,true” …<standard provscheme parameters

Per ulteriori informazioni, consultare la documentazione per gli sviluppatori Citrix.

Applicare le proprietà delle istanze AWS e assegnare tag alle risorse operative

Quando si crea un catalogo per il provisioning delle macchine in AWS utilizzando MCS, è possibile controllare se applicare il ruolo IAM e le proprietà dei tag a tali macchine. È inoltre possibile controllare se applicare tag delle macchine alle risorse operative.

Etichettatura delle risorse operative AWS

Un’Amazon Machine Image (AMI) rappresenta un tipo di appliance virtuale utilizzata per creare una macchina virtuale all’interno dell’ambiente Amazon Cloud, comunemente denominato EC2. È possibile utilizzare un’AMI per distribuire servizi che utilizzano l’ambiente EC2. Quando si crea un catalogo per eseguire il provisioning di macchine utilizzando MCS per AWS, selezionare l’AMI che funge da immagine golden per quel catalogo.

Importante:

La creazione di cataloghi mediante l’acquisizione di una proprietà di istanza e di un modello di avvio è necessaria per utilizzare la codifica delle risorse operative.

Per creare un catalogo AWS, è necessario innanzitutto creare un’AMI per l’istanza in cui si desidera collocare l’immagine golden. MCS legge i tag di quell’istanza e li incorpora nel modello di lancio. I tag del modello di lancio vengono quindi applicati a tutte le risorse Citrix create nell’ambiente AWS, tra cui:

  • Macchine virtuali
  • Dischi delle macchine virtuali
  • Interfacce di rete delle macchine virtuali
  • Bucket S3
  • Oggetti S3
  • Modelli di lancio
  • AMI

Etichettatura di una risorsa operativa

Per utilizzare PowerShell per etichettare le risorse:

  1. Aprire una finestra di PowerShell dall’host DDC.
  2. Eseguire il comando asnp citrix per caricare i moduli PowerShell specifici di Citrix.

Per etichettare una risorsa per una macchina virtuale di cui è stato eseguito il provisioning, utilizzare la nuova proprietà personalizzata AwsOperationalResourcesTagging. La sintassi di questa proprietà è la seguente:

New-ProvScheme -CustomProperties “AwsCaptureInstanceProperties,true; AwsOperationalResourcesTagging,true” …<standard provscheme parameters>

Identificare le risorse

Di seguito sono riportati i tag che MCS aggiunge alle risorse su AWS. I tag nella tabella sono rappresentati come “key”:”value”.

Nome della risorsa Tag
Disco ID “Name”: “VMName_IdentityDisk”
  “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
Immagine “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
NIC “Description”: “XD Nic”
  “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
Disco del sistema operativo “Name”: “VMName_rootDisk”
  “XdConfig”: “XdProvisioned=True”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  [quando AwsCaptureInstanceProperties = true] “Citrix Resource”: “”
  [quando AwsCaptureInstanceProperties = true e AwsOperationalResourcesTagging = true] “CitrixOperationalResource”: “”
PrepVM “Name”: “Preparation - CatalogName - xxxxxxxxxx”
  “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  [quando AwsCaptureInstanceProperties = true] “Citrix Resource”: “”
  [quando AwsCaptureInstanceProperties = true e AwsOperationalResourcesTagging = true] “CitrixOperationalResource”: “”
Snapshot pubblicata “XdConfig”: “XdProvisioned=true”
  Se non si tratta di una snapshot per l’AMI Volume Worker, “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
Modello [quando AwsCaptureInstanceProperties = true] “XdConfig”: “XdProvisioned=true”
  [quando AwsCaptureInstanceProperties = true] “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  [quando AwsCaptureInstanceProperties = true] “CitrixResource”: “”
  [quando AwsCaptureInstanceProperties = true e AwsOperationalResourcesTagging = true] “CitrixOperationalResource”: “”
Macchina virtuale nel catalogo “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  [quando AwsCaptureInstanceProperties = true] “CitrixResource”: “”
  [quando AwsCaptureInstanceProperties = true] “aws:ec2launchtemplate:id”:“lt-xxxx”
  [quando AwsCaptureInstanceProperties = true] “aws:ec2launchtemplate:version”: “n”
  [quando AwsCaptureInstanceProperties = true e AwsOperationalResourcesTagging = true] “CitrixOperationalResource”: “”
AMI Volume Worker “XdConfig”: “XdProvisioned=true”
Bootstraper Volume Worker “Name”: “XenDesktop Temp”
  “XdConfig”: “XdProvisioned=true”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  [quando AwsCaptureInstanceProperties = true e AwsOperationalResourcesTagging = true] “CitrixVolumeWorkerBootstrapper”: “”
Istanza di Volume Worker “Name”: “Citrix.XD.Volumeworker-xxxx-xx-xx-xx-xxxx”
  “XdConfig”: “XdProvisioned=true”

Definizione delle autorizzazioni IAM

Utilizzare le informazioni in questa sezione per definire le autorizzazioni IAM per Citrix DaaS su AWS. Il servizio IAM di Amazon consente account con più utenti, che possono essere ulteriormente organizzati in gruppi. Questi utenti possono disporre di autorizzazioni diverse per controllare la loro capacità di eseguire operazioni associate all’account. Per ulteriori informazioni sulle autorizzazioni IAM, vedere Riferimento alla policy JSON IAM.

Per applicare la policy delle autorizzazioni 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). Selezionare Select (Seleziona).
  5. Digitare un nome per il criterio Permissions (Autorizzazioni).
  6. Nella sezione Policy Document (Documento del criterio), immettere le autorizzazioni pertinenti.

Dopo aver inserito le informazioni sul criterio, selezionareContinue (Continua) per completare il 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 precedente per elencare le azioni utilizzate da Citrix DaaS 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.

Aggiunta di autorizzazioni IAM

Impostare 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).

Gestione delle identità e degli accessi (IAM)

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

Concedere le autorizzazioni per i criteri IAM

Utilizzare il seguente come esempio nella scheda JSON:

Esempio JSON

Suggerimento:

L’esempio JSON indicato potrebbe non includere tutte le autorizzazioni per l’ambiente. Per ulteriori informazioni, consultare l’articolo su come definire le autorizzazioni di gestione delle identità e degli accessi che eseguono Citrix Virtual Apps and Desktops su AWS.

Informazioni sulle autorizzazioni AWS

Questa sezione contiene l’elenco completo delle autorizzazioni AWS.

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:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Gestione dell’alimentazione delle macchine virtuali

Le istanze delle macchine sono accese o spente.

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

Creazione, aggiornamento o eliminazione di macchine virtuali

Un catalogo delle macchine viene creato, aggiornato o eliminato con macchine virtuali di cui viene eseguito il provisioning come istanze 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:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "\*"
        },
        {
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Effect": "Allow",
            "Resource": "\*"
        },
        {
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:PutBucketAcl",
                "s3:PutBucketTagging",
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:PutObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::citrix*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Nota:

La sezione EC2 relativa a SecurityGroups è necessaria solo se occorre creare un gruppo di sicurezza di isolamento per la macchina virtuale di preparazione durante la creazione del catalogo. Una volta completata questa operazione, queste autorizzazioni non sono necessarie.

Caricamento e download diretti del disco

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

Le seguenti autorizzazioni devono essere aggiunte al criterio:

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

Importante:

  • È possibile aggiungere una nuova macchina virtuale ai cataloghi delle macchine esistenti senza alcuna operazione di Volume Worker, come l’AMI Volume Worker e la macchina virtuale del Volume Worker.
  • Se si elimina un catalogo esistente che utilizzava Volume Worker in precedenza, vengono eliminati tutti gli artefatti, inclusi quelli correlati a Volume Worker.

Crittografia EBS dei volumi creati

EBS può crittografare automaticamente i volumi appena creati se l’AMI è crittografata o EBS è configurato per crittografare tutti i nuovi volumi. Tuttavia, per implementare la funzionalità, è necessario includere le seguenti autorizzazioni nel criterio IAM.

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Nota:

Le autorizzazioni possono essere limitate a chiavi specifiche includendo un blocco di risorse e condizioni 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: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 dichiarazione dei criteri chiave è l’intero criterio chiave predefinito per le chiavi KMS necessario per consentire all’account di utilizzare i criteri 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 ulteriori informazioni, consultare la documentazione ufficiale di AWS Key Management Service.

Autenticazione basata su ruoli IAM

Le seguenti autorizzazioni vengono aggiunte per supportare l’autenticazione basata sui ruoli.

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

Criteri minimi delle autorizzazioni IAM

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

Importante:

per utilizzare role_based_auth, configurare prima il ruolo IAM desiderato nell’istanza ec2 del Cloud Connector durante la configurazione del Cloud Connector. Utilizzando Citrix Studio, aggiungere la connessione di hosting e fornire role_based_auth per la chiave di autenticazione e il segreto. Una connessione di hosting con queste impostazioni utilizza quindi l’autenticazione basata su ruoli.

{
    "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:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RebootInstances",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "\*"
        },
        {
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Effect": "Allow",
            "Resource": "\*"
        },
        {
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutBucketAcl",
                "s3:PutObject",
                "s3:PutBucketTagging",
                "s3:PutObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::citrix*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "\*"
        },
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "\*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::\*:role/\*"
        }
    ]
}
<!--NeedCopy-->

Nota:

  • La sezione EC2 relativa a SecurityGroups è necessaria solo se occorre creare un gruppo di sicurezza di isolamento per la macchina virtuale di preparazione durante la creazione del catalogo. Una volta completata questa operazione, queste autorizzazioni non sono necessarie.
  • La sezione KMS è necessaria solo quando si utilizza la crittografia del volume EBS.
  • La sezione delle autorizzazioni iam:PassRole è necessaria solo per role_based_auth.
  • È possibile aggiungere autorizzazioni specifiche a livello di risorsa anziché l’accesso completo in base ai requisiti e all’ambiente. Per maggiori dettagli, consultare i documenti AWS Demystifying EC2 Resource-Level Permissions (Sfatare i miti relativi alle autorizzazioni a livello di risorsa EC2) e Gestione degli accessi per le risorse AWS.

Ulteriori informazioni