Citrix Virtual Apps and Desktops

Environnements de cloud AWS

Cet article vous guide au travers de la configuration de votre compte Amazon Web Services (AWS) en tant qu’emplacement de ressources que vous pouvez utiliser avec Citrix Virtual Apps and Desktops. L’emplacement de ressources inclut un jeu de composants standard, idéal pour les déploiements de preuve de concept ou d’autres déploiements qui ne requièrent pas de ressources réparties sur plusieurs zones de disponibilité. Après avoir terminé ces tâches, vous pouvez installer des VDA, provisionner des machines, créer des catalogues de machines et créer des groupes de mise à disposition.

Une fois les tâches décrites dans cet article terminées, votre emplacement de ressources comprend les composants suivants :

  • Un cloud privé virtuel (VPC) avec des sous-réseaux publics et privés à l’intérieur d’une seule zone de disponibilité.
  • Une instance qui s’exécute en tant que contrôleur de domaine Active Directory et serveur DNS, située dans le sous-réseau privé du VPC.
  • Une instance qui agit en tant qu’hôte bastion dans le sous-réseau public de votre VPC. Cette instance est utilisée pour initier des connexions RDP aux instances dans le sous-réseau privé à des fins d’administration. Après avoir terminé la configuration de votre emplacement de ressources, vous pouvez arrêter cette instance de façon à ce qu’elle ne soit plus accessible. Lorsque vous avez besoin de gérer d’autres instances dans le sous-réseau privé, telles que des instances de VDA, vous pouvez redémarrer l’instance de l’hôte Bastion.

Vue d’ensemble des tâches

Définir un cloud privé virtuel (VPC) avec des sous-réseaux publics et privés. Une fois cette tâche terminée, AWS déploie une passerelle NAT avec une adresse IP élastique dans le sous-réseau public. Cette action permet aux instances du sous-réseau privé d’accéder à Internet. Les instances du sous-réseau public sont accessibles au trafic public entrant ce qui n’est pas le cas des instances du sous-réseau privé.

Configurer des groupes de sécurité. Les groupes de sécurité agissent en tant que pare-feu virtuels qui contrôlent le trafic pour les instances dans votre VPC. Vous devez ajouter des règles à vos groupes de sécurité permettant aux instances de votre sous-réseau public de communiquer avec les instances de votre sous-réseau privé. Vous pouvez également associer ces groupes de sécurité à chaque instance dans votre VPC.

Créer une série d’options DHCP. Avec un VPC Amazon, les services DHCP et DNS sont fournis par défaut, ce qui affecte la configuration du DNS sur votre contrôleur de domaine Active Directory. Le DHCP d’Amazon ne peut pas être désactivé et le DNS d’Amazon peut être utilisé uniquement pour la résolution de DNS public, et non pour la résolution de nom Active Directory. Pour spécifier le domaine et nommer les serveurs qui doivent être transmis aux instances via DHCP, créez une série d’options DHCP. Cette série attribue le suffixe de domaine Active Directory et spécifie le serveur DNS pour toutes les instances dans votre VPC. Pour vous assurer que les enregistrements hôte (A) et recherche inversée (PTR) sont enregistrés automatiquement lorsque des instances rejoignent le domaine, vous configurez les propriétés de la carte réseau pour chaque instance que vous ajoutez au sous-réseau privé.

Ajoutez un hôte bastion et un contrôleur de domaine au VPC. Vous pouvez vous connecter via l’hôte bastion à des instances du sous-réseau privé pour configurer le domaine et joindre des instances au domaine.

Tâche 1 : Configurer le VPC

  1. Dans la console de gestion AWS, sélectionnez VPC.
  2. Dans le tableau de bord VPC, sélectionnez Create VPC.
  3. Sélectionnez VPC and more.
  4. Sous NAT gateways ($), sélectionnez  In 1 AZ ou 1 per AZ.
  5. Sous DNS options, laissez l’option Enable DNS hostnames sélectionnée.
  6. Sélectionnez Create VPC. AWS crée les sous-réseaux publics et privés, une passerelle Internet, des tables de routage et un groupe de sécurité par défaut.

Tâche 2 : Configurer des groupes de sécurité

Cette tâche crée et configure les groupes de sécurité suivants pour votre VPC :

  • Un groupe de sécurité public à associer aux instances de votre sous-réseau public.
  • Un groupe de sécurité privé à associer aux instances de votre sous-réseau privé.

Pour créer des groupes de sécurité, procédez comme suit :

  1. Dans le tableau de bord VPC, sélectionnez Groupes de sécurité.
  2. Créez un groupe de sécurité pour le groupe de sécurité public. Sélectionnez Create Security Group et entrez une étiquette de nom et une description pour le groupe. Dans le menu VPC, sélectionnez le VPC que vous avez créé précédemment. Sélectionnez Oui, créer.

Configurer le groupe de sécurité public

  1. Depuis la liste de groupes de sécurité, sélectionnez le groupe de sécurité public.

  2. Sélectionnez l’onglet Inbound Rules et sélectionnez Edit pour créer les règles suivantes :

    Type Source
    ALL Traffic Sélectionnez le groupe de sécurité privé.
    ALL Traffic Sélectionnez le groupe de sécurité public.
    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 (Session Reliability) 0.0.0.0/0
    3389 (RDP) 0.0.0.0/0
  3. Lorsque vous avez terminé, sélectionnez Enregistrer.

  4. Sélectionnez l’onglet Outbound Rules et sélectionnez Edit pour créer les règles suivantes :

    Type Destination
    ALL Traffic Sélectionnez le groupe de sécurité privé.
    ALL Traffic 0.0.0.0/0
    ICMP 0.0.0.0/0
  5. Lorsque vous avez terminé, sélectionnez Enregistrer.

Configurer le groupe de sécurité privé

  1. Depuis la liste de groupes de sécurité, sélectionnez le groupe de sécurité privé.

  2. Si vous n’avez pas configuré le trafic provenant du groupe de sécurité publique, vous devez définir des ports TCP. Sélectionnez l’onglet Inbound Rules, puis Edit pour créer les règles suivantes :

    Type Source
    ALL Traffic Sélectionnez le groupe de sécurité privé.
    ALL Traffic Sélectionnez le groupe de sécurité public.
    ICMP Sélectionnez le groupe de sécurité public.
    TCP 53 (DNS) Sélectionnez le groupe de sécurité public.
    UDP 53 (DNS) Sélectionnez le groupe de sécurité public.
    80 (HTTP) Sélectionnez le groupe de sécurité public.
    TCP 135 Sélectionnez le groupe de sécurité public.
    TCP 389 Sélectionnez le groupe de sécurité public.
    UDP 389 Sélectionnez le groupe de sécurité public.
    443 (HTTPS) Sélectionnez le groupe de sécurité public.
    TCP 1494 (ICA/HDX) Sélectionnez le groupe de sécurité public.
    TCP 2598 (Session Reliability) Sélectionnez le groupe de sécurité public.
    3389 (RDP) Sélectionnez le groupe de sécurité public.
    TCP 49152–65535 Sélectionnez le groupe de sécurité public.
  3. Lorsque vous avez terminé, sélectionnez Enregistrer.

  4. Sélectionnez l’onglet Outbound Rules et sélectionnez Edit pour créer les règles suivantes :

    Type Destination
    ALL Traffic Sélectionnez le groupe de sécurité privé.
    ALL Traffic 0.0.0.0/0
    ICMP 0.0.0.0/0
    UDP 53 (DNS) 0.0.0.0/0
  5. Lorsque vous avez terminé, sélectionnez Enregistrer.

Tâche 3 : Lancer des instances

Les étapes suivantes permettent de créer quatre instances EC2 et de décrypter le mot de passe administrateur par défaut généré par Amazon :

  1. Dans la console de gestion AWS, sélectionnez EC2.
  2. Dans le tableau de bord EC2, sélectionnez Launch Instance.
  3. Sélectionnez une image de machine Windows Server et un type d’instance.
  4. Sur la page Configure Instance Details, entrez un nom pour l’instance et sélectionnez le VPC configuré précédemment.
  5. Dans Subnet, effectuez les sélections suivantes pour chaque instance :

    • Bastion host : sélectionner le sous-réseau public
    • Domain Controller : sélectionnez le sous-réseau privé
  6. Dans Auto-assign Public IP address, effectuez les sélections suivantes pour chaque instance :

    • Bastion host : sélectionnez Enable.
    • Domain controller : sélectionnez Use default setting ou Disable.
  7. Dans Network Interfaces, entrez une adresse IP principale comprise dans la plage d’adresses IP de votre sous-réseau privé pour le contrôleur de domaine.
  8. Sur la page Add Storage, modifiez la taille du disque, si nécessaire.
  9. Sur la page Tag Instance, entrez un nom convivial pour chaque instance.
  10. Sur la page Configure Security Groups, sélectionnez Select an existing security group, puis effectuez les sélections suivantes pour chaque instance :

    • Bastion host : sélectionnez le groupe de sécurité public.
    • Contrôleur de domaine : sélectionnez le groupe de sécurité privé.
  11. Passez en revue vos sélections, puis sélectionnez Launch.
  12. Créez une nouvelle paire de clés ou sélectionnez-en une existante. Si vous créez une paire de clés, téléchargez le fichier de clé privée (.pem) et conservez-le dans un endroit sûr. Vous devez fournir votre clé privée pour obtenir le mot de passe administrateur par défaut de l’instance.
  13. Sélectionnez Launch Instances. Sélectionnez View Instances pour afficher la liste de vos instances. Attendez que l’instance nouvellement lancée ait passé toutes les vérifications avant d’y accéder.
  14. Obtenez le mot de passe administrateur par défaut pour chaque instance :

    1. Dans la liste des instances, sélectionnez l’instance et sélectionnez Connect.
    2. Accédez à l’onglet RDP client, sélectionnez Get password et chargez le fichier de clé privée (.pem) lorsque vous y êtes invité.
    3. Sélectionnez Decrypt password pour obtenir le mot de passe lisible par l’homme. AWS affiche le mot de passe par défaut.
  15. Répétez la procédure depuis l’étape 2 jusqu’à ce que vous ayez créé quatre instances :

    • Une instance d’hôte bastion dans le sous-réseau public
    • Une instance de votre sous-réseau privé destinée à servir de contrôleur de domaine.

Tâche 4 : Créer une série d’options DHCP

  1. Dans le tableau de bord VPC, sélectionnez DHCP Options Sets.

  2. Entrez les informations suivantes :

    • Name tag : entrez un nom convivial pour la série.
    • Domain name : entrez le nom de domaine complet utilisé lors de la configuration de l’instance du contrôleur de domaine.
    • Domain name servers : entrez l’adresse IP privée attribuée à l’instance du contrôleur de domaine et la chaîne AmazonProvidedDNS, en les séparant par des virgules.
    • NTP servers : laissez ce champ vide.
    • NetBIOS name servers : entrez l’adresse IP privée de l’instance du contrôleur de domaine.
    • NetBIOS node type : entrez 2.
  3. Sélectionnez Oui, créer.

  4. Associez la nouvelle série à votre VPC :

    1. Dans le tableau de bord VPC, sélectionnez Your VPCs et sélectionnez le VPC configuré précédemment.
    2. Sélectionnez Actions > Edit DHCP Options Set.
    3. Lorsque vous y êtes invité, sélectionnez la nouvelle série que vous avez créée et sélectionnez Save.

Tâche 5 : Configurer les instances

  1. À l’aide d’un client RDP, connectez-vous à l’adresse IP publique de l’instance de l’hôte Bastion. Lorsque vous y êtes invité, entrez les informations d’identification du compte d’administrateur.

  2. À partir de l’instance de l’hôte bastion, lancez Remote Desktop Connection et connectez-vous à l’adresse IP privée de l’instance que vous souhaitez configurer. Lorsque vous y êtes invité, entrez les informations d’identification d’administrateur de l’instance.

  3. Pour toutes les instances du sous-réseau privé, configurez les paramètres DNS :

    1. Sélectionnez Démarrer > Panneau de configuration > Réseau et Internet > Centre Réseau et partage > Modifier les paramètres de la carte. Cliquez deux fois sur la connexion réseau affichée.
    2. Sélectionnez Propriétés > Protocole Internet version 4 (TCP/IPv4) > Propriétés.
    3. Sélectionnez Avancé > DNS. Assurez-vous que les paramètres suivants sont activés et sélectionnez OK :

      • Enregistrer les adresses de cette connexion dans DNS
      • Utiliser le suffixe DNS de cette connexion pour l’enregistrement DNS
  4. Configurez le contrôleur de domaine comme suit :

    1. À l’aide du Gestionnaire de serveur, ajoutez le rôle Services de domaine Active Directory avec toutes les fonctionnalités par défaut.
    2. Promouvez l’instance en contrôleur de domaine. Lors de la promotion, activez le DNS et utilisez le nom de domaine que vous avez spécifié lors de la création de la série d’options DHCP. Redémarrez l’instance lorsque vous y êtes invité.

Créer une connexion

Lorsque vous créez une connexion à partir de Studio :

  • Vous devez fournir les valeurs de la clé API et de la clé secrète. Vous pouvez exporter le fichier de clé contenant ces valeurs à partir d’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 du domaine, les noms de groupe de sécurité et les informations d’identification.
  • Le fichier d’informations d’identification pour le compte AWS de racine, (récupéré à partir de la console AWS) n’est pas au même format que les fichiers d’informations d’identification téléchargés pour les utilisateurs standard AWS. Par conséquent, la gestion de Citrix Virtual Apps and Desktops ne peut pas utiliser le fichier pour remplir les champs de clé API et de clé secrète. Vérifiez que vous utilisez les fichiers d’informations d’identification AWS (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 vérifiez que l’adresse suivante est contactable : https://*.amazonaws.com.

Valeurs par défaut des connexions hôtes

Lorsque vous créez des connexions hôtes dans des environnements cloud AWS, les valeurs par défaut suivantes sont affichées :

| Option | Absolu | Pourcentage | |— | — | —| | Actions simultanées (tous types) | 125 | 100 | | Nouvelles actions maximales par minute | 125 |

MCS prend en charge 100 opérations de provisioning simultanées maximum 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 connaître les zones prises en charge à l’aide de l’appel d’API EC2 DescribeRegions AWS. 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 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. Toutefois, après avoir créé l’URL du point de terminaison de service, vous ne pouvez plus définir ou modifier l’URL.

Location AWS

AWS propose les options de location suivantes : location partagée (type par défaut) et location dédiée. La location partagée signifie que plusieurs instances Amazon EC2 provenant de clients différents peuvent résider sur le même matériel physique. La location dédiée signifie que vos instances EC2 s’exécutent uniquement sur du matériel avec d’autres instances que vous avez déployées. Les autres clients n’utilisent pas le même matériel.

Vous pouvez utiliser MCS pour provisionner des hôtes AWS dédiés à l’aide de PowerShell.

Configurer la location d’hôte dédié AWS à l’aide de PowerShell

Un administrateur peut créer un catalogue de machines avec location d’hôte définie via PowerShell.

Un hôte Amazon [EC2] dédié est un serveur physique avec une capacité d’instance [EC2] entièrement dédiée, ce qui vous permet d’utiliser les licences logicielles par socket ou par machine virtuelle.

Les hôtes dédiés ont une utilisation prédéfinie basée sur le type d’instance. Par exemple, un hôte dédié alloué de types d’instance C4 Large ne peut pas exécuter plus de 16 instances. Consultez le site AWS pour plus d’informations.

La configuration requise pour le provisioning des hôtes AWS est la suivante :

  • Une image importée (AMI) BYOL (apportez votre propre licence). Avec des hôtes dédiés, utilisez et gérez vos licences existantes.
  • Une allocation d’hôtes dédiés avec une utilisation suffisante pour satisfaire les demandes de provisioning.
  • Activer le placement automatique.

Pour mettre à disposition un hôte dédié dans AWS à l’aide de PowerShell, utilisez l’applet de commande New-ProvScheme avec le paramètre TenancyType défini sur Host.

Pour plus d’informations, reportez-vous à la documentation de développeur Citrix.

Capture des propriétés d’instance AWS

Lorsque vous créez un catalogue pour provisionner des machines à l’aide de Machine Creation Services (MCS) dans AWS, vous sélectionnez une AMI pour représenter l’image maître/principale de ce catalogue. À partir de cette AMI, MCS utilise un instantané du disque. Dans les versions précédentes, pour avoir des rôles ou des balises sur vos machines, vous utilisiez la console AWS pour les définir individuellement. Cette fonctionnalité est activée par défaut.

Conseil :

Pour utiliser la capture de propriétés d’instance AWS, une machine virtuelle doit être associée à l’AMI.

Pour améliorer ce processus, MCS lit les propriétés de l’instance à partir de laquelle l’AMI a été prise et applique le rôle IAM (Identity Access Management) et les balises de la machine aux machines provisionnées pour un catalogue donné. Lors de l’utilisation de cette fonctionnalité facultative, le processus de création du catalogue recherche l’instance source de l’AMI sélectionnée, en lisant un ensemble limité de propriétés. Ces propriétés sont ensuite stockées dans un modèle de lancement AWS, qui est utilisé pour provisionner des machines pour ce catalogue. Toute machine du catalogue hérite des propriétés d’instance capturées.

Les propriétés capturées incluent :

  • Rôles IAM : appliqués aux instances provisionnées
  • Balises : appliquées aux instances provisionnées, à leur disque et aux cartes réseau. Ces balises sont appliquées aux ressources Citrix transitoires, notamment : compartiment et objets S3, ressources de volume et de travail, AMI, instantanés et modèles de lancement.

Conseil :

Le balisage des ressources Citrix transitoires est facultatif et est configurable à l’aide de la propriété personnalisée AwsOperationalResourcesTagging.

Capture des propriétés d’instance AWS

Vous pouvez utiliser cette fonctionnalité en spécifiant une propriété personnalisée, AwsCaptureInstanceProperties, lors de la création d’un schéma de provisioning pour une connexion d’hébergement AWS :

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

Pour plus d’informations, reportez-vous à la documentation de développeur Citrix.

Application des propriétés d’instance AWS et balisage des ressources opérationnelles

Lorsque vous créez un catalogue pour provisionner des machines dans AWS à l’aide de MCS, vous pouvez contrôler si le rôle IAM et les propriétés de balise doivent être appliqués à ces machines. Vous pouvez également contrôler si vous souhaitez appliquer des balises de machine aux ressources opérationnelles.

Balisage des ressources opérationnelles AWS

Une image de machine Amazon (AMI) représente un type d’appliance virtuelle utilisée pour créer une machine virtuelle dans l’environnement Amazon Cloud, communément appelé EC2. Vous devez utiliser une AMI pour déployer des services qui utilisent l’environnement EC2. Lorsque vous créez un catalogue pour provisionner des machines à l’aide de MCS pour AWS, vous sélectionnez l’AMI en tant qu’image principale pour ce catalogue.

Important :

La création de catalogues en capturant une propriété d’instance et un modèle de lancement est nécessaire pour utiliser le balisage des ressources opérationnelles.

Pour créer un catalogue AWS, vous devez d’abord créer une AMI pour l’instance qui sera l’image principale. MCS lit les balises de cette instance et les incorpore dans le modèle de lancement. Les balises du modèle de lancement sont ensuite appliquées à toutes les ressources Citrix créées dans votre environnement AWS, notamment :

  • Machines virtuelles
  • Disques machine virtuelle
  • Interfaces réseau machine virtuelle
  • Compartiments S3
  • Objets S3
  • Modèles de lancement
  • AMI

Balisage d’une ressource opérationnelle

Pour utiliser PowerShell pour baliser des ressources :

  1. Ouvrez une fenêtre PowerShell à partir de l’hôte DDC.
  2. Exécutez la commande asnp citrix pour charger des modules PowerShell spécifiques à Citrix.

Pour baliser une ressource pour une machine virtuelle provisionnée, utilisez la nouvelle propriété personnalisée, AwsOperationalResourcesTagging. La syntaxe de cette propriété est la suivante :

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

Définition des autorisations IAM

Utilisez les informations de cette section pour définir les autorisations IAM pour Citrix DaaS sur AWS. Le service IAM d’Amazon autorise les comptes ayant plusieurs utilisateurs, qui peuvent être organisés en groupes. Ces utilisateurs peuvent disposer d’autorisations différentes pour contrôler leur capacité à effectuer des opérations associées au compte. Pour plus d’informations sur les autorisations IAM, consultez Référence de stratégie JSON IAM.

Pour appliquer la stratégie d’autorisations IAM à un nouveau groupe d’utilisateurs :

  1. Connectez-vous à AWS Management Console et sélectionnez le service IAM dans la liste déroulante.
  2. Sélectionnez Créer un groupe d’utilisateurs.
  3. Tapez un nom pour le nouveau groupe d’utilisateurs et sélectionnez Continuer.
  4. Sur la page Autorisations, choisissez Stratégie personnalisée. Sélectionnez Sélectionner.
  5. Tapez un nom pour la stratégie Autorisations.
  6. Dans la section Document de stratégie, entrez les autorisations appropriées.

Après avoir saisi les informations de stratégie, sélectionnez Continuer pour compléter le groupe d’utilisateurs. Les utilisateurs du groupe sont autorisés à effectuer uniquement les actions requises pour Citrix DaaS.

Important :

Utilisez le texte de stratégie fourni dans l’exemple ci-dessus pour répertorier les actions que Citrix DaaS utilise pour effectuer des actions au sein d’un compte AWS sans les restreindre à des ressources spécifiques. Citrix vous recommande d’utiliser cet exemple à des fins de test. Pour les environnements de production, vous pouvez choisir d’ajouter d’autres restrictions sur les ressources.

Ajout d’autorisations IAM

Définissez les autorisations dans la section IAM d’AWS Management Console :

  1. Dans le panneau Summary, sélectionnez l’onglet Permissions.
  2. Sélectionnez Add permissions.

Identity and Access Management (IAM)

Dans l’écran Add Permissions to, accordez des autorisations :

Accorder des autorisations pour les stratégies IAM

Utilisez l’exemple suivant dans l’onglet JSON :

Exemple JSON

Conseil :

L’exemple JSON mentionné peut ne pas inclure toutes les autorisations pour votre environnement. Consultez Comment faire pour définir les autorisations de gestion des identités et des accès en exécutant Citrix Virtual Apps and Desktops sur AWS pour plus d’informations.

À propos des autorisations AWS

Cette section contient la liste complète des autorisations AWS.

Remarque :

L’autorisation iam:PassRole n’est requise que pour role_based_auth.

Création d’une connexion hôte

Une nouvelle connexion hôte est ajoutée à l’aide des informations obtenues auprès d’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-->

Gestion de l’alimentation des machines virtuelles

Les instances de machine sont 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"
            ],
            "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: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-->

Remarque :

La section EC2 relative aux groupes de sécurité n’est nécessaire que si un groupe de sécurité d’isolement doit être créé pour la machine virtuelle de préparation lors de la création du catalogue. Une fois cette action effectuée, ces autorisations ne sont pas requises.

Chargement et téléchargement directs sur disque

Le chargement direct sur disque élimine le besoin du travailleur de volume pour le provisioning de catalogue de machines et utilise à la place des API publiques fournies par AWS. Cette fonctionnalité réduit le coût associé aux comptes de stockage supplémentaires et la complexité de la gestion des opérations du travailleur de volume.

Les autorisations suivantes doivent être ajoutées à la stratégie :

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

Important :

  • Vous pouvez ajouter une nouvelle VM à des catalogues de machines existants sans aucune opération du travailleur de volume, telle que l’AMI et la VM du travailleur de volume.
  • Si vous supprimez un catalogue existant qui utilise un travailleur de volume, tous les artefacts, y compris ceux liés au travailleur de volume, sont supprimés.

Cryptage EBS des volumes créés

EBS peut crypter automatiquement les volumes nouvellement créés si l’AMI est cryptée, ou EBS est configuré pour crypter tous les nouveaux volumes. Toutefois, pour implémenter cette fonctionnalité, les autorisations suivantes doivent être incluses dans la stratégie 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 stratégie de clé suivante est la stratégie de clé par défaut complète pour les clés KMS qui est requise pour permettre au compte d’utiliser des stratégies 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-->

Stratégie d’autorisations IAM minimales

Le code JSON suivant peut être utilisé pour toutes les fonctionnalités actuellement prises en charge. Vous pouvez créer des connexions hôtes, créer, mettre à jour ou supprimer des machines virtuelles et gérer l’alimentation à l’aide de cette stratégie. La stratégie peut être appliquée aux utilisateurs comme expliqué dans les sections Définition des 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 composants Delivery Controller de notre site. À l’aide de Web Studio, ajoutez la connexion d’hébergement et fournissez l’élément role_based_auth pour la clé d’authentification et le secret. Une connexion d’hébergement avec ces paramètres utilise ensuite 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: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:GenerateDataKey",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*"
        }
    ]
}
<!--NeedCopy-->

Remarque :

  • La section EC2 relative aux groupes de sécurité n’est nécessaire que si un groupe de sécurité d’isolement doit être créé pour la machine virtuelle de préparation lors de la création du catalogue. Une fois cette action effectuée, ces autorisations ne sont pas requises.
  • La section KMS n’est requise que lors de l’utilisation du cryptage de volume EBS.
  • La section d’autorisation iam:PassRole n’est requise que pour role_based_auth.
  • En fonction de vos besoins et de votre environnement, vous pouvez ajouter des autorisations spécifiques au niveau des ressources au lieu d’un accès complet. Consultez les documents AWS Demystifying EC2 Resource-Level Permissions et Gestion de l’accès pour les ressources AWS pour plus de détails.

Informations supplémentaires