Citrix Virtual Apps and Desktops

Ambienti cloud AWS

Questo articolo illustra come configurare l’account AWS come posizione delle risorse da utilizzare con Citrix Virtual Apps and Desktops. La posizione delle risorse include un set di componenti di base, ideale per una prova di concetto o per altre distribuzioni che non richiedono risorse distribuite su più zone di disponibilità. Dopo aver completato queste attività, è possibile installare VDA, eseguire il provisioning delle macchine, creare cataloghi di macchine e creare gruppi di consegna.

Al termine delle attività descritte in questo articolo, la posizione delle risorse includerà i seguenti componenti:

  • Un Virtual Private Cloud (VPC) con subnet pubbliche e private all’interno di una singola zona di disponibilità.
  • Un’istanza che funge sia da controller di dominio Active Directory che da server DNS, situata nella subnet privata del VPC.
  • Un’istanza che funge da host bastion nella subnet pubblica del VPC. Questa istanza viene utilizzata per avviare connessioni RDP alle istanze nella subnet privata a scopo amministrativo. Dopo aver completato la configurazione della posizione delle risorse, è possibile arrestare 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 dell’host bastion.

Limitazione

A partire da Citrix Virtual Apps and Desktops 2203 LTSR e versioni successive, il plug-in MCS AWS effettua la chiamata API AWS DescribeInstanceTypes e, in caso di successo, MCS utilizza il nome dell’inventario creato dalla risposta API.

Pertanto, quando si esegue l’aggiornamento da CVAD 1912 alla versione 2203 o successiva, disabilitare l’autorizzazione DefineInstanceType su AWS, quindi aggiornare il catalogo esistente utilizzando il comando Set-ProvScheme per corrispondere allo schema di denominazione AWS. Successivamente, aggiungere nuovamente le autorizzazioni DescribeInstanceType dopo che l’aggiornamento del catalogo è completo e l’offerta di servizi corrisponde allo schema di denominazione AWS.

Panoramica delle attività

Configurare un Virtual Private Cloud (VPC) con subnet pubbliche e private. Al termine di questa attività, AWS distribuisce un gateway NAT con un indirizzo IP elastico nella subnet pubblica. Questa azione 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 possibile associare questi gruppi di sicurezza a ogni istanza nel VPC.

Creare un set di opzioni DHCP. Con un Amazon VPC, i servizi DHCP e DNS sono forniti per impostazione predefinita, il che influisce sul modo in cui si configura il 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 il dominio e i server dei nomi forniti alle istanze tramite DHCP, creare un set di opzioni DHCP. Il set assegna il suffisso del dominio Active Directory e specifica il server DNS per tutte le istanze nel VPC. Per garantire che i record Host (A) e Reverse Lookup (PTR) vengano registrati automaticamente quando le istanze si uniscono al dominio, è necessario configurare le proprietà della scheda di rete per ogni istanza aggiunta alla subnet privata.

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

Attività 1: Configurare il VPC

  1. Dalla console di gestione AWS, selezionare VPC.
  2. Dalla Dashboard VPC, selezionare Crea VPC.
  3. Selezionare VPC e altro.
  4. Sotto NAT gateways ($), selezionare In 1 AZ o 1 per AZ.
  5. Sotto Opzioni DNS, lasciare selezionato Abilita nomi host DNS.
  6. Selezionare Crea VPC. AWS crea le subnet pubbliche e private, il gateway Internet, le tabelle di routing e il gruppo di sicurezza predefinito.

Attività 2: Configurare i gruppi di sicurezza

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

  • Un gruppo di sicurezza pubblico da associare alle istanze nella subnet pubblica.
  • Un gruppo di sicurezza privato da associare alle istanze nella subnet privata.

Per creare i gruppi di sicurezza:

  1. Nella Dashboard VPC, selezionare Gruppi di sicurezza.
  2. Creare un gruppo di sicurezza per il gruppo di sicurezza pubblico. Selezionare Crea gruppo di sicurezza e immettere un tag nome e una descrizione per il gruppo. In VPC, selezionare il VPC creato in precedenza. Selezionare Sì, crea.

Configurare il gruppo di sicurezza pubblico

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

  2. Selezionare la scheda Regole in entrata e selezionare 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à sessione) 0.0.0.0/0
    3389 (RDP) 0.0.0.0/0
  3. Al termine, selezionare Salva.

  4. Selezionare la scheda Regole in uscita e selezionare 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 Salva.

Configurare il gruppo di sicurezza privato

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

  2. Se non è stato configurato il traffico dal gruppo di sicurezza pubblico, è necessario impostare le porte TCP; selezionare la scheda Regole in entrata e selezionare 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 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à 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 Salva.

  4. Selezionare la scheda Regole in uscita e selezionare 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 Salva.

Attività 3: Avviare le istanze

Eseguire i passaggi seguenti per creare due istanze EC2 e decrittografare la password di amministratore predefinita generata da Amazon:

  1. Dalla console di gestione AWS, selezionare EC2.
  2. Dalla Dashboard EC2, selezionare Avvia istanza.
  3. Selezionare un’immagine di macchina Windows Server e un tipo di istanza.
  4. Nella pagina Configura dettagli istanza, immettere 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: Selezionare la subnet privata
  6. In Assegna automaticamente indirizzo IP pubblico, effettuare le seguenti selezioni per ogni istanza:

    • Host bastion: Selezionare Abilita.
    • Controller di dominio: Selezionare Usa impostazione predefinita o Disabilita.
  7. In Interfacce di rete, immettere un indirizzo IP primario all’interno dell’intervallo IP della subnet privata per il controller di dominio.
  8. Se necessario, nella pagina Aggiungi archiviazione, modificare la dimensione del disco.
  9. Nella pagina Tagga istanza, immettere un nome descrittivo per ogni istanza.
  10. Nella pagina Configura gruppi di sicurezza, selezionare 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: Selezionare il gruppo di sicurezza privato.
  11. Rivedere le selezioni e quindi selezionare 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 conservarlo in un luogo sicuro. È necessario fornire la chiave privata quando si acquisisce la password di amministratore predefinita per l’istanza.
  13. Selezionare Avvia istanze. Selezionare 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 Connetti.
    2. Andare alla scheda Client RDP, selezionare Ottieni password e caricare il file della chiave privata (.pem) quando richiesto.
    3. Selezionare Decrittografa password per ottenere la password leggibile. AWS visualizza la password predefinita.
  15. Ripetere i passaggi dal passaggio 2 fino a quando non sono state create due istanze:

    • Un’istanza host bastion nella subnet pubblica
    • Un’istanza nella subnet privata da utilizzare come controller di dominio.

Attività 4: Creare un set di opzioni DHCP

  1. Dalla Dashboard VPC, selezionare Set di opzioni DHCP.

  2. Immettere le seguenti informazioni:

    • Tag nome: Immettere un nome descrittivo per il set.
    • Nome di dominio: Immettere il nome di dominio completo che si utilizza quando si configura l’istanza del controller di dominio.
    • Server dei nomi 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 Sì, crea.

  4. Associare il nuovo set al VPC:

  5. Dal Dashboard VPC, selezionare I tuoi VPC e quindi selezionare il VPC configurato in precedenza.
  6. Selezionare Azioni > Modifica set di opzioni DHCP.
  7. Quando richiesto, selezionare il nuovo set creato e quindi selezionare Salva.

Attività 5: Configurare le istanze

  1. Utilizzando un client RDP, connettersi all’indirizzo IP pubblico dell’istanza host bastion. Quando richiesto, immettere 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, immettere le credenziali dell’Amministratore per l’istanza.

  3. Per tutte le istanze nella sottorete 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 Proprietà > Protocollo Internet versione 4 (TCP/IPv4) > Proprietà.
    3. Selezionare Avanzate > DNS. Assicurarsi che le seguenti impostazioni siano abilitate e selezionare OK:

      • Registra gli indirizzi di questa connessione in DNS
      • Utilizza il suffisso DNS di questa connessione nella registrazione DNS
  4. Per configurare il Domain Controller:

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

Creare una connessione

Quando si crea una connessione da Studio:

  • È necessario fornire i valori della chiave API e 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 VPC, gli indirizzi della sottorete, il nome di dominio, i nomi dei gruppi di sicurezza e le credenziali.
  • 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, 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 aggiornare la chiave API e la 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 negli ambienti cloud AWS, vengono visualizzati i seguenti valori predefiniti:

Opzione Assoluto Percentuale
Azioni simultanee (tutti i tipi) 125 100
Numero massimo di nuove azioni al minuto 125  

Per impostazione predefinita, MCS supporta un massimo di 100 operazioni di provisioning simultanee.

URL dell’endpoint del servizio

URL dell’endpoint del servizio della 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 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 impostare o modificare l’URL.

Tenancy AWS

AWS offre le seguenti opzioni di tenancy: tenancy condivisa (il tipo predefinito) e tenancy dedicata. La tenancy condivisa significa che più istanze Amazon EC2 di clienti diversi potrebbero risiedere sullo stesso hardware fisico. La tenancy dedicata significa che le istanze EC2 vengono eseguite solo su hardware con altre istanze distribuite dall’utente. Altri clienti non utilizzano lo stesso hardware.

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

Configurare la tenancy dell’host dedicato AWS tramite 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 VM.

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

I requisiti per il provisioning su host AWS includono:

  • Un’immagine BYOL (bring your own license) importata (AMI). Con gli host dedicati, utilizzare e gestire le licenze esistenti.
  • Un’allocazione di host dedicati con un utilizzo sufficiente a soddisfare le richieste di provisioning.
  • abilitare auto-placement.

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 sviluppatori Citrix.

Acquisizione delle proprietà dell’istanza 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 quell’AMI, MCS utilizza uno snapshot del disco. Nelle versioni precedenti, se si desideravano 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à dell’istanza AWS, è necessario disporre di una VM associata all’AMI.

Per migliorare questo processo, MCS legge le proprietà dall’istanza da cui è stata acquisita l’AMI e applica il ruolo 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 funzionalità opzionale, il processo di creazione del catalogo individua l’istanza di origine AMI selezionata, leggendo un set limitato di proprietà. Queste proprietà vengono quindi archiviate in un modello di avvio AWS, che viene utilizzato per il provisioning delle macchine per quel catalogo. Qualsiasi macchina nel catalogo eredita le proprietà dell’istanza acquisite.

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, al loro disco e alle NIC. Questi tag vengono applicati alle risorse Citrix® transitorie, tra cui: bucket e oggetti S3, risorse di volume e worker, e AMI, snapshot e modelli di avvio.

Suggerimento:

L’assegnazione di tag alle 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 sviluppatori Citrix.

Applicazione delle proprietà dell’istanza AWS e assegnazione di tag alle risorse operative

Quando si crea un catalogo per il provisioning di 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 i tag delle macchine alle risorse operative.

Assegnazione di tag alle 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. Si utilizza un’AMI per distribuire servizi che utilizzano l’ambiente EC2. Quando si crea un catalogo per il provisioning di macchine utilizzando MCS per AWS, si seleziona l’AMI che fungerà da immagine golden per quel catalogo.

Importante:

La creazione di cataloghi acquisendo una proprietà dell’istanza e un modello di avvio è necessaria per utilizzare l’assegnazione di tag alle risorse operative.

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

  • Macchine virtuali
  • Dischi VM
  • Interfacce di rete VM
  • Bucket S3
  • Oggetti S3
  • Modelli di avvio
  • AMI

Assegnazione di tag a una risorsa operativa

Per utilizzare PowerShell per assegnare tag alle risorse:

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

Per assegnare un tag a una risorsa per una VM di cui è stato eseguito il provisioning, utilizzare la nuova proprietà personalizzata AwsOperationalResourcesTagging. La sintassi per questa proprietà è:

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

Definizione delle autorizzazioni IAM

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 diverse autorizzazioni per controllare la loro capacità di eseguire operazioni associate all’account. Per ulteriori informazioni sulle autorizzazioni IAM, consultare Riferimento alla policy JSON IAM.

Per applicare una policy di 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 Crea un nuovo gruppo di utenti.
  3. Digitare un nome per il nuovo gruppo di utenti e selezionare Continua.
  4. Nella pagina Autorizzazioni, scegliere Policy personalizzata. Selezionare Seleziona.
  5. Digitare un nome per la policy di autorizzazioni.
  6. Nella sezione Documento della policy, immettere le autorizzazioni pertinenti.

Dopo aver inserito le informazioni sulla policy, selezionare 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 della policy fornito nell’esempio precedente 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, si potrebbe scegliere di aggiungere ulteriori restrizioni sulle risorse.

Aggiunta delle autorizzazioni IAM

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

  1. Nel pannello Riepilogo, selezionare la scheda Autorizzazioni.
  2. Selezionare Aggiungi autorizzazioni.

Identity and Access Management (IAM)

Nella schermata Aggiungi autorizzazioni a, concedere le autorizzazioni:

Concedere le autorizzazioni per le policy IAM

Utilizzare quanto segue come esempio nella scheda JSON:

Esempio JSON

Suggerimento:

L’esempio JSON indicato potrebbe non includere tutte le autorizzazioni per il proprio ambiente. Per ulteriori informazioni, consultare Come definire le autorizzazioni di gestione dell’identità e dell’accesso per l’esecuzione di 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",
                "ec2:DescribeRegions",
                "ec2:DescribeSnapshots",
                "ec2:DescribeLaunchTemplates"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

Gestione dell’alimentazione delle VM

Le istanze delle macchine vengono 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 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: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 ai SecurityGroups è necessaria solo se è necessario creare un Isolation Security Group per la VM di preparazione durante la creazione del catalogo. Una volta fatto ciò, queste autorizzazioni non sono più richieste.

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.

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 operazione di volume worker, come AMI del volume worker e VM del volume worker.
  • Se si elimina un catalogo esistente che utilizzava in precedenza un volume worker, tutti gli artefatti, inclusi quelli relativi 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: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: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 che è richiesta 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 ulteriori informazioni, consultare la documentazione ufficiale di AWS Key Management Service.

Autenticazione IAM basata sui ruoli

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

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 sui ruoli 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 sui 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 ai SecurityGroups è necessaria solo se è necessario creare un Isolation Security Group 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 delle autorizzazioni iam:PassRole è necessaria solo per role_based_auth.
  • È possibile aggiungere autorizzazioni specifiche a livello di risorsa invece di un accesso completo, in base alle proprie esigenze e all’ambiente. Per maggiori dettagli, fare riferimento ai documenti AWS Demystifying EC2 Resource-Level Permissions e Access management for AWS resources.

Ulteriori informazioni