Skip to main content

2 septembre 2026

Créer une stratégie et des rôles IAM

Dans votre compte AWS pour Horizon Cloud, l'état de plusieurs fournisseurs de ressources doit être enregistré.

Remarque : les conditions requises en matière d'autorisations répertoriées sur cette page sont propres aux nouveaux clients à partir de la version 2601. Pour connaître les conditions requises en matière d'autorisations pour les clients existants antérieurs à la version 2601, reportez-vous à l'article 6001262 de la base de connaissances.

Assurez-vous que les autorisations IAM répertoriées sont fournies avant de déployer un dispositif Horizon Edge. L'étape finale du déploiement d'Horizon Edge confirme que l'état de ces fournisseurs de ressources est enregistré et empêche le démarrage du déploiement d'Horizon Edge si l'un d'entre eux est désinscrit.

Deux méthodes sont disponibles pour vous permettre de fournir les autorisations IAM nécessaires.

  • En utilisant la console AWS IAM pour créer des autorisations.
  • En utilisant la console AWS IAM pour exécuter le script JSON inclus ci-dessous.

Créer des autorisations IAM

Si vous choisissez de créer les autorisations manuellement, indiquez les autorisations IAM requises, répertoriées dans la stratégie JSON ci-dessous, directement dans la console AWS IAM.

Remarque : Horizon Cloud n'exécute pas la validation de balise obligatoire de toutes les balises rendues obligatoires par l'utilisation de la stratégie de contrôle de service (SCP) AWS ou d'autre stratégie de balises. Si votre organisation applique les politiques de contrôle des services (SCP) AWS ou des stratégies de balises, vérifiez que toutes les balises requises sont appliquées au fournisseur avant le déploiement du dispositif Edge. Les déploiements Horizon Edge, passerelle Gateway et UAG peuvent échouer si les balises obligatoires sont manquantes. Pour plus d'informations, reportez-vous à la section Utilisation de balises de ressources Amazon.

Copier et utiliser le fichier JSON suivant

Si vous choisissez d'utiliser la méthode de fichier JSON, copiez le script JSON ci-dessous dans l'éditeur de stratégie de la console AWS IAM :

Stratégie JSON

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AttachInternetGateway",
        "ec2:AssociateRouteTable",
        "ec2:CreateInternetGateway",
        "ec2:CreateRoute",
        "ec2:CreateRouteTable",
        "ec2:CreateSubnet",
        "ec2:CreateVpc",
        "ec2:DescribeInstances",
        "ec2:ModifyImageAttribute",
        "ec2:RunInstances",
        "ec2:TerminateInstances",
        "ec2:StartInstances",
        "ec2:StopInstances",
        "ec2:RebootInstances",
        "ec2:DescribeInstanceStatus",
        "ec2:DescribeInstanceTypes",
        "ec2:DescribeInstanceTypeOfferings",
        "ec2:ModifyInstanceAttribute",
        "ec2:AssociateIamInstanceProfile",
        "ec2:DescribeImages",
        "ec2:CreateImage",
        "ec2:DeregisterImage",
        "ec2:DescribeLaunchTemplateVersions",
        "ec2:GetConsoleOutput",
        "ec2:DescribeInstanceAttribute",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcs",
        "ec2:DescribeRouteTables",
        "ec2:DescribeNetworkAcls",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeNetworkInterfaces",
        "ec2:CreateNetworkInterface",
        "ec2:AttachNetworkInterface",
        "ec2:DeleteNetworkInterface",
        "ec2:DisassociateAddress",
        "ec2:AllocateAddress",
        "ec2:AssociateAddress",
        "ec2:ReleaseAddress",
        "ec2:DescribeAddresses",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeNatGateways",
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeSnapshots",
        "ec2:CreateSnapshot",
        "ec2:DeleteSnapshot",
        "ec2:DescribeSecurityGroups",
        "ec2:CreateSecurityGroup",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:DeleteSecurityGroup",
        "ec2:CreateTags",
        "ec2:DeleteTags",
        "ec2:DescribeTags",
        "ec2:DescribeRegions",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeAccountAttributes"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "autoscaling:DescribeAutoScalingGroups"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "fsx:CreateFileSystem",
        "fsx:DescribeFileSystems",
        "fsx:DeleteFileSystem",
        "fsx:UpdateFileSystem",
        "fsx:TagResource",
        "fsx:UntagResource"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "workspaces:*"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ds:*",
        "ds:DescribeDirectories",
        "ds:AuthorizeApplication",
        "ds:UnauthorizeApplication",
        "ds:UpdateAuthorizedApplication"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudformation:CreateStack",
        "cloudformation:UpdateStack",
        "cloudformation:DeleteStack",
        "cloudformation:DescribeStacks",
        "cloudformation:TagResource",
        "cloudformation:UntagResource",
        "cloudformation:DescribeStackEvents",
        "cloudformation:ListStackResources",
        "cloudformation:GetTemplate"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "resource-groups:GetGroup",
        "resource-groups:CreateGroup",
        "resource-groups:DeleteGroup",
        "resource-groups:UpdateGroup",
        "resource-groups:Tag",
        "resource-groups:Untag",
        "resource-groups:GetTags",
        "resource-groups:ListGroups",
        "resource-groups:ListGroupResources",
        "resource-groups:ListResourceTypes",
        "resource-groups:AssociateResource",
        "resource-groups:DisassociateResource"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "elasticloadbalancing:AddTags",
        "elasticloadbalancing:RemoveTags",
        "elasticloadbalancing:RegisterTargets",
        "elasticloadbalancing:DeregisterTargets",
        "elasticloadbalancing:DescribeTargetHealth",
        "elasticloadbalancing:CreateListener",
        "elasticloadbalancing:DeleteListener",
        "elasticloadbalancing:DescribeListeners",
        "elasticloadbalancing:CreateTargetGroup",
        "elasticloadbalancing:DeleteTargetGroup",
        "elasticloadbalancing:ModifyTargetGroup",
        "elasticloadbalancing:DescribeTargetGroups",
        "elasticloadbalancing:CreateLoadBalancer",
        "elasticloadbalancing:DeleteLoadBalancer",
        "elasticloadbalancing:DescribeLoadBalancers",
        "elasticloadbalancing:ModifyLoadBalancerAttributes",
        "elasticloadbalancing:ModifyTargetGroupAttributes",
        "elasticloadbalancing:SetSubnets"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:ListBucket",
        "s3:ListAllMyBuckets",
        "s3:CreateBucket",
        "s3:DeleteObject",
        "s3:DeleteBucket",
        "s3:PutBucketPolicy",
        "s3:GetBucketPolicy",
        "s3:DeleteBucketPolicy",
        "s3:PutBucketTagging",
        "s3:GetBucketLocation",
        "s3:PutLifecycleConfiguration",
        "s3:PutBucketPublicAccessBlock",
        "s3:PutEncryptionConfiguration"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:PassRole",
        "iam:GetPolicy",
        "iam:GetPolicyVersion",
        "iam:ListAttachedUserPolicies",
        "iam:CreateInstanceProfile",
        "iam:DeleteInstanceProfile",
        "iam:AddRoleToInstanceProfile",
        "iam:RemoveRoleFromInstanceProfile",
        "iam:SimulatePrincipalPolicy",
        "iam:ListAttachedRolePolicies",
        "iam:GetInstanceProfile",
        "iam:ListInstanceProfilesForRole",
        "iam:TagRole",
        "iam:UntagRole",
        "iam:CreateServiceLinkedRole",
        "iam:CreateRole",
        "iam:AttachRolePolicy",
        "iam:PutRolePolicy",
        "iam:ListRoles",
        "iam:CreatePolicy"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "tag:GetResources",
        "tag:TagResources",
        "tag:UntagResources"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey",
        "kms:ListKeys",
        "kms:ListAliases"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:SendCommand",
        "ssm:StartSession",
        "ssm:CreateAssociation",
        "ssm:DescribeAssociation",
        "ssm:GetCommandInvocation",
        "ssm:ListCommandInvocations",
        "ssm:DescribeInstanceInformation",
        "ssm:StartAutomationExecution",
        "ssm:DescribeAutomationExecutions",
        "ssm:GetAutomationExecution"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "sso:GetApplicationGrant",
        "sso:ListInstances",
        "sso:DescribeInstance",
        "sso:DescribeApplication",
        "sso:CreateApplication",
        "sso:DeleteApplication",
        "sso-directory:SearchUsers",
        "sso:PutApplicationAuthenticationMethod",
        "sso:PutApplicationAssignmentConfiguration",
        "sso:PutApplicationGrant"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "application-autoscaling:PutScheduledAction",
        "application-autoscaling:RegisterScalableTarget",
        "application-autoscaling:DeleteScalingPolicy",
        "application-autoscaling:DescribeScalingPolicies",
        "application-autoscaling:PutScalingPolicy",
        "application-autoscaling:DeleteScheduledAction",
        "application-autoscaling:DescribeScalingActivities",
        "application-autoscaling:DescribeScalableTargets",
        "application-autoscaling:DescribeScheduledActions",
        "application-autoscaling:DeregisterScalableTarget"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudwatch:DeleteAlarms",
        "cloudwatch:DescribeAlarms",
        "cloudwatch:PutMetricAlarm"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "secretsmanager:ListSecrets"
      ],
      "Resource": "*"
    }
    {
      "Effect": "Allow",
      "Action": [
        "servicequotas:GetServiceQuota"
      ],
      "Resource": "*"
    }
  ]
}



Créer des rôles IAM

Un rôle IAM est une identité IAM que vous pouvez créer dans votre compte disposant d'autorisations spécifiques. Un rôle IAM est semblable à un utilisateur IAM, car il s'agit d'une identité AWS avec des stratégies d'autorisation qui déterminent ce que l'identité peut et ne peut pas faire dans AWS. Cependant, au lieu d'être associé de manière unique à une seule personne, un rôle est destiné à être géré par toute personne qui en a besoin. En outre, un rôle ne dispose pas d'informations d'identification standard à long terme, telles qu'un mot de passe ou des clés d'accès, qui lui sont associées. Au lieu de cela, lorsque vous assumez un rôle, il vous fournit des informations d'identification de sécurité temporaires pour votre session de rôle.

En suivant ces étapes, vous pouvez créer un rôle IAM dans AWS qui fournit des informations d'identification de sécurité temporaires pour votre session de rôle, ce qui permet d'accéder à Horizon Cloud tout en garantissant un accès sécurisé à vos ressources AWS. Pour plus d'informations, reportez-vous à la section Créer un rôle à l'aide de stratégies d'approbation personnalisées dans la documentation d'AWS.

  1. Dans la console IAM, accédez à la section IAM (Gestion des identités et des accès) de votre compte AWS.

  2. Cliquez sur Rôles dans le volet de gauche.

  3. Cliquez sur Créer un rôle et sélectionnez Stratégie d'approbation personnalisée.

  4. Définissez une stratégie d'approbation personnalisée en entrant la stratégie JSON suivante dans l'éditeur de stratégie d'approbation personnalisée.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "Statement1",
          "Effect": "Allow",
          "Principal": {
            "AWS": [
              "arn:aws:iam::211125714243:user/svc.hcs-ng-prod-svc-user"
            ]
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "sts:ExternalId": "{create a custom ExternalId}"
            }
          }
        },
        {
          "Sid": "ssmRoleTrustRelationship",
          "Effect": "Allow",
          "Principal": {
            "Service": "ec2.amazonaws.com"
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "aws:SourceAccount": "<Customer account number>"
            }
          }
        }
      ]
    }
    
  5. Dans la section Ajouter des autorisations de la console IAM, ajoutez la stratégie définie dans la section Créer des autorisations IAM de cette rubrique.

  6. Avec les autorisations ci-dessus, ajoutez également la stratégie gérée par AWS AmazonSSMManagedInstanceCore pour activer les fonctionnalités liées à SSM. Reportez-vous à la documentation d'AWS AmazonSSMManagedInstanceCore.

Cette page vous a-t-elle été utile ?

Envoyer un commentaire sur cette rubrique

Cette rubrique vous a-t-elle été utile ?

N'indiquez aucune information personnelle ou confidentielle.

Génération du lien…