Citrix Virtual Apps and Desktops

Connessione ad AWS

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.

Nota:

Prima di creare una connessione ad AWS, è necessario completare la configurazione dell’account AWS come posizione delle risorse. Vedere Ambienti cloud AWS.

Creare una connessione

Quando si crea una connessione da Web Studio:

  • È 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 subnet, 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 raggiungibile: 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 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 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 preferito dell’endpoint del servizio AWS viene selezionato automaticamente per la zona. Tuttavia, dopo aver creato l’URL dell’endpoint del servizio, non è più possibile impostare o modificare l’URL.

Definire le autorizzazioni IAM

Utilizzare le informazioni in questa sezione per definire le autorizzazioni IAM per Citrix Virtual Apps and Desktops 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, 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 (Policy personalizzata). Selezionare Select (Seleziona).
  5. Digitare un nome per la Permissions policy (Policy delle autorizzazioni).
  6. Nella sezione Policy Document (Documento della policy), immettere le autorizzazioni pertinenti.

Dopo aver inserito le informazioni sulla policy, selezionare Continue (Continua) per completare il gruppo di utenti. Agli utenti del gruppo vengono concesse le autorizzazioni per eseguire solo le azioni richieste per Citrix Virtual Apps and Desktops.

Importante:

Utilizzare il testo della policy fornito nell’esempio precedente per elencare le azioni che Citrix Virtual Apps and Desktops 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.

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

Identity and Access Management (IAM)

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

Concedere 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. Vedere How to Define Identity Access Management Permissions Running Citrix Virtual Apps and Desktops on AWS per maggiori informazioni.

Autorizzazioni AWS richieste

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 di 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 di cui è stato 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: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: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 gruppi di sicurezza è necessaria solo se deve essere creato un gruppo di sicurezza di isolamento per la VM di preparazione durante la creazione del catalogo. Una volta completata questa operazione, 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.

Nota:

Il supporto per il volume worker è deprecato.

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 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 della chiave è l’intera policy della 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 maggiori informazioni, vedere 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 Definire le 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 su tutti i Delivery Controller nel nostro sito. Utilizzando Web 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 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:DescribeInstanceTypes",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSpotInstanceRequests",
                "ec2:DescribeInstanceCreditSpecifications",
                "ec2:DescribeInstanceAttribute",
                "ec2:GetLaunchTemplateData",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RebootInstances",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2: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: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 completata questa operazione, 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 anziché l’accesso completo in base ai requisiti e all’ambiente. Fare riferimento ai documenti AWS Demystifying EC2 Resource-Level Permissions e Access management for AWS resources per maggiori dettagli.

Dove andare dopo

Maggiori informazioni

Connessione ad AWS