Connexion à AWS
Créer et gérer des connexions et des ressources décrit les assistants qui créent une connexion. Les informations suivantes couvrent les détails spécifiques aux environnements cloud AWS.
Remarque :
Avant de créer une connexion à AWS, vous devez d’abord terminer la configuration de votre compte AWS en tant qu’emplacement de ressource. Voir Environnements cloud AWS.
Créer une connexion
Lorsque vous créez une connexion depuis Web Studio :
- Vous devez fournir les valeurs de la clé API et de la clé secrète. Vous pouvez exporter le fichier de clés contenant ces valeurs depuis AWS, puis les importer. Vous devez également fournir la région, la zone de disponibilité, le nom du VPC, les adresses de sous-réseau, le nom de domaine, les noms des groupes de sécurité et les informations d’identification.
- Le fichier d’informations d’identification du compte AWS racine (récupéré depuis la console AWS) n’est pas formaté de la même manière que les fichiers d’informations d’identification téléchargés pour les utilisateurs AWS standard. Par conséquent, la gestion de Citrix Virtual Apps and Desktops™ ne peut pas utiliser ce fichier pour renseigner les champs de la clé API et de la clé secrète. Assurez-vous d’utiliser des fichiers d’informations d’identification AWS Identity Access Management (IAM).
Remarque :
Après avoir créé une connexion, les tentatives de mise à jour de la clé API et de la clé secrète peuvent échouer. Pour résoudre le problème, vérifiez les restrictions de votre serveur proxy ou de votre pare-feu et assurez-vous que l’adresse suivante est joignable :
https://*.amazonaws.com.
Valeurs par défaut de la connexion d’hôte
Lorsque vous créez des connexions d’hôte dans des environnements cloud AWS, les valeurs par défaut suivantes s’affichent :
| Option | Absolu | Pourcentage |
|---|---|---|
| Actions simultanées (tous types) | 125 | 100 |
| Nombre maximal de nouvelles actions par minute | 125 |
MCS prend en charge 100 opérations de provisionnement simultanées maximales par défaut.
URL du point de terminaison de service
URL du point de terminaison de service de zone standard
Lorsque vous utilisez MCS, une nouvelle connexion AWS est ajoutée avec une clé API et un secret API. Avec ces informations, ainsi que le compte authentifié, MCS interroge AWS pour les zones prises en charge à l’aide de l’appel d’API AWS DescribeRegions EC2. La requête est effectuée à l’aide d’une URL de point de terminaison de service EC2 générique https://ec2.amazonaws.com/. Utilisez MCS pour sélectionner la zone de la connexion dans la liste des zones prises en charge. L’URL de point de terminaison de service AWS préférée est automatiquement sélectionnée pour la zone. Cependant, après avoir créé l’URL du point de terminaison de service, vous ne pouvez plus définir ou modifier l’URL.
Définir les autorisations IAM
Utilisez les informations de cette section pour définir les autorisations IAM pour Citrix Virtual Apps and Desktops sur AWS. Le service IAM d’Amazon permet aux comptes d’avoir plusieurs utilisateurs, qui peuvent être organisés en groupes. Ces utilisateurs peuvent posséder différentes autorisations pour contrôler leur capacité à effectuer des opérations associées au compte. Pour plus d’informations sur les autorisations IAM, consultez la référence de la politique JSON IAM.
Pour appliquer une politique d’autorisations IAM à un nouveau groupe d’utilisateurs :
- Connectez-vous à la console de gestion AWS et sélectionnez le service IAM dans la liste déroulante.
- Sélectionnez Créer un nouveau groupe d’utilisateurs.
- Saisissez un nom pour le nouveau groupe d’utilisateurs et sélectionnez Continuer.
- Sur la page Permissions, choisissez Stratégie personnalisée. Sélectionnez Sélectionner.
- Saisissez un nom pour la stratégie d’autorisations.
- Dans la section Document de stratégie, saisissez les autorisations pertinentes.
Après avoir saisi les informations de stratégie, sélectionnez Continuer pour compléter le groupe d’utilisateurs. Les utilisateurs du groupe se voient accorder des autorisations pour effectuer uniquement les actions requises pour Citrix Virtual Apps and Desktops.
Important :
Utilisez le texte de stratégie fourni dans l’exemple précédent pour lister les actions que Citrix Virtual Apps and Desktops utilise pour effectuer des actions au sein d’un compte AWS sans restreindre ces actions à des ressources spécifiques. Citrix vous recommande d’utiliser l’exemple à des fins de test. Pour les environnements de production, vous pouvez choisir d’ajouter d’autres restrictions sur les ressources.
Définir les autorisations IAM
Définissez les autorisations dans la section IAM de la console de gestion AWS :
- Dans le panneau Résumé, sélectionnez l’onglet Autorisations.
- Sélectionnez Ajouter des autorisations.

Dans l’écran Ajouter des autorisations à, accordez les autorisations :

Utilisez ce qui suit comme exemple dans l’onglet JSON :

Conseil :
L’exemple JSON mentionné peut ne pas inclure toutes les autorisations pour votre environnement. Consultez Comment définir les autorisations de gestion des accès d’identité exécutant Citrix Virtual Apps and Desktops sur AWS pour plus d’informations.
Autorisations AWS requises
Cette section contient la liste complète des autorisations AWS.
Remarque :
L’autorisation iam:PassRole n’est nécessaire que pour role_based_auth.
Création d’une connexion d’hôte
Une nouvelle connexion d’hôte est ajoutée à l’aide des informations d’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-->
Gestion de l’alimentation des machines virtuelles
Les instances de machine sont mises sous tension ou hors tension.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:AttachVolume",
"ec2:CreateVolume",
"ec2:DeleteVolume",
"ec2:DescribeInstances",
"ec2:DescribeVolumes",
"ec2:DetachVolume",
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:DescribeInstanceStatus"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
<!--NeedCopy-->
Création, mise à jour ou suppression de machines virtuelles
Un catalogue de machines est créé, mis à jour ou supprimé avec des machines virtuelles provisionnées en tant qu’instances 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:DescribeInstanceStatus",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeLaunchTemplateVersions",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeRegions",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSnapshots",
"ec2:DescribeSubnets",
"ec2:DescribeTags",
"ec2:DescribeSpotInstanceRequests",
"ec2:DescribeInstanceCreditSpecifications",
"ec2:DescribeInstanceAttribute",
"ec2:GetLaunchTemplateData",
"ec2:DescribeVolumes",
"ec2:DescribeVpcs",
"ec2:DetachVolume",
"ec2:DisassociateIamInstanceProfile",
"ec2: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-->
Remarque :
La section EC2 relative aux groupes de sécurité n’est nécessaire que si un groupe de sécurité d’isolation doit être créé pour la machine virtuelle de préparation lors de la création du catalogue. Une fois cela fait, ces autorisations ne sont plus requises.
Chargement et téléchargement direct de disque
Le téléchargement direct de disque élimine l’exigence de travailleur de volume pour le provisionnement de catalogues de machines, et utilise plutôt les API publiques fournies par AWS. Cette fonctionnalité réduit le coût associé aux comptes de stockage supplémentaires et la complexité de la maintenance des opérations du travailleur de volume.
Remarque :
La prise en charge du travailleur de volume est obsolète.
Les autorisations suivantes doivent être ajoutées à la stratégie :
ebs:StartSnapshotebs:GetSnapshotBlockebs:PutSnapshotBlockebs:CompleteSnapshotebs:ListSnapshotBlocksebs:ListChangedBlocksec2:CreateSnapshotec2:DeleteSnapshotec2:DescribeLaunchTemplates
Important :
- Vous pouvez ajouter une VM à des catalogues de machines existants sans aucune opération de travailleur de volume, telle qu’une AMI de travailleur de volume et une VM de travailleur de volume.
- Si vous supprimez un catalogue existant qui utilisait auparavant un travailleur de volume, tous les artefacts, y compris ceux liés au travailleur de volume, sont supprimés.
Chiffrement EBS des volumes créés
EBS peut chiffrer automatiquement les volumes nouvellement créés si l’AMI est chiffrée, ou si EBS est configuré pour chiffrer tous les nouveaux volumes. Cependant, pour implémenter cette fonctionnalité, les autorisations suivantes doivent être incluses dans la politique IAM.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:Decrypt",
"kms:DescribeKey",
"kms:GenerateDataKeyWithoutPlainText",
"kms:ReEncryptTo",
"kms:ReEncryptFrom"
],
"Resource": "*"
}
]
}
<!--NeedCopy-->
Remarque :
Les autorisations peuvent être limitées à des clés spécifiques en incluant un bloc Ressource et Condition à la discrétion de l’utilisateur. Par exemple, Autorisations KMS avec condition :
{
"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 déclaration de politique de clé suivante est l’intégralité de la politique de clé par défaut pour les clés KMS qui est requise pour permettre au compte d’utiliser les politiques IAM afin de déléguer l’autorisation pour toutes les actions (kms:*) sur la clé KMS.
{
"Sid": "Enable IAM policies",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "kms:",
"Resource": ""
}
<!--NeedCopy-->
Pour plus d’informations, consultez la documentation officielle d’AWS Key Management Service.
Authentification basée sur les rôles IAM
Les autorisations suivantes sont ajoutées pour prendre en charge l’authentification basée sur les rôles.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::*:role/*"
}
]
}
<!--NeedCopy-->
Politique d’autorisations IAM minimale
Le JSON suivant peut être utilisé pour toutes les fonctionnalités actuellement prises en charge. Vous pouvez créer des connexions d’hôte, créer, mettre à jour ou supprimer des machines virtuelles, et gérer l’alimentation à l’aide de cette politique. La politique peut être appliquée aux utilisateurs comme expliqué dans les sections Définir les autorisations IAM ou vous pouvez également utiliser l’authentification basée sur les rôles à l’aide de la clé de sécurité et de la clé secrète role_based_auth.
Important :
Pour utiliser role_based_auth, configurez d’abord le rôle IAM souhaité sur tous les Delivery Controllers de notre site. À l’aide de Web Studio, ajoutez la connexion d’hébergement et fournissez le role_based_auth pour la clé d’authentification et le secret. Une connexion d’hébergement avec ces paramètres utilise alors l’authentification basée sur les rôles.
{
"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:DescribeInstanceStatus",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeLaunchTemplateVersions",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeRegions",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSnapshots",
"ec2:DescribeSubnets",
"ec2:DescribeTags",
"ec2:DescribeSpotInstanceRequests",
"ec2:DescribeInstanceCreditSpecifications",
"ec2:DescribeInstanceAttribute",
"ec2:GetLaunchTemplateData",
"ec2:DescribeVolumes",
"ec2:DescribeVpcs",
"ec2:DetachVolume",
"ec2:DisassociateIamInstanceProfile",
"ec2:RebootInstances",
"ec2:RunInstances",
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:TerminateInstances"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"ec2: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-->
Remarque :
- La section EC2 relative aux SecurityGroups n’est nécessaire que si un groupe de sécurité d’isolation doit être créé pour la VM de préparation lors de la création du catalogue. Une fois cela fait, ces autorisations ne sont plus requises.
- La section KMS est requise uniquement lors de l’utilisation du chiffrement de volume EBS.
- La section d’autorisation iam:PassRole est nécessaire uniquement pour role_based_auth.
- Des autorisations spécifiques au niveau des ressources peuvent être ajoutées au lieu d’un accès complet, en fonction de vos exigences et de votre environnement. Reportez-vous aux documents AWS Démystifier les autorisations au niveau des ressources EC2 et Gestion des accès pour les ressources AWS pour plus de détails.
Valider les autorisations sur la connexion d’hôte
Vous pouvez valider les autorisations sur une connexion d’hôte pour effectuer des tâches liées à la création et à la gestion de catalogues de machines MCS. Cette implémentation vous aide à identifier à l’avance les autorisations manquantes requises pour différents scénarios, tels que la création, la suppression et la mise à jour de machines virtuelles, la gestion de l’alimentation des machines virtuelles et le chiffrement EBS, afin d’éviter d’être bloqué à des moments critiques.
Vous pouvez valider les autorisations sur une connexion d’hôte à l’aide de la commande PowerShell Test-HypHypervisorConnection. Le résultat de la commande est capturé sous forme de liste, où chaque élément de la liste est divisé en trois sections.
- Catégorie : L’action ou la tâche qu’un utilisateur peut effectuer pour créer et gérer un catalogue de machines MCS.
- Action corrective : L’étape qu’un administrateur doit effectuer pour résoudre une divergence d’autorisations manquantes pour les utilisateurs.
- Autorisation manquante : La liste des autorisations manquantes pour une catégorie.
Pour valider les autorisations, procédez comme suit :
- Créez une connexion d’hôte à AWS.
- Ouvrez une fenêtre PowerShell à partir de l’hôte Delivery Controller™.
- Exécutez
asnp citrix*pour charger les modules PowerShell spécifiques à Citrix. -
Exécutez la commande suivante pour vérifier si vous disposez des autorisations requises pour consulter vos autorisations.
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" <!--NeedCopy--> -
Après avoir ajouté les autorisations manquantes requises pour consulter vos autorisations, exécutez la commande suivante pour vérifier si vous disposez d’autorisations dans les catégories suivantes :
- Créer Mettre à jour supprimer
- Gestion de l’alimentation
- Chiffrement EBS
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" [-SecurePassword -Password] "password" -UserName "" -CustomProperties "" <!--NeedCopy-->
Pour plus d’informations sur l’ajout d’autorisations, consultez Définir les autorisations IAM.
Où aller ensuite
- Si vous êtes dans le processus de déploiement initial, consultez Créer des catalogues de machines
- Pour des informations spécifiques à AWS, consultez Créer un catalogue AWS