Dans votre compte AWS pour Horizon Cloud, l'état de plusieurs fournisseurs de ressources doit être enregistré.
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, les autorisations IAM requises suivantes doivent être fournies dans la console AWS IAM :
-
ec2:- Toutes les autorisations -
workspaces:- Toutes les autorisations -
fsx:- Toutes les autorisations -
ds:DescribeDirectories, AuthorizeApplication, UnauthorizeApplication, UpdateAuthorizedApplication -
cloudformation:CreateStack, UpdateStack, DeleteStack, DescribeStacks, TagResource, UntagResource, DescribeStackEvents, ListStackResources, GetTemplate -
resource-groups:GetGroup, CreateGroup, DeleteGroup, UpdateGroup Tag, GetTags, ListGroups, ListGroupResources, ListResourceTypes, AssociateResource, DisassociateResource -
elasticloadbalancing:AddTags, RemoveTags, RegisterTargets, DeregisterTargets, DescribeTargetHealth, CreateListener, DeleteListener, DescribeListeners, CreateTargetGroup, DeleteTargetGroup, ModifyTargetGroup, DescribeTargetGroups, CreateLoadBalancer, DeleteLoadBalancer, DescribeLoadBalancers, ModifyLoadBalancerAttributes, ModifyTargetGroupAttributes, SetSubnets -
s3:GetObject, PutObject, ListBucket, ListAllMyBuckets, CreateBucket, DeleteObject, DeleteBucket, PutBucketPolicy, GetBucketPolicy, DeleteBucketPolicy, PutBucketTagging, GetBucketLocation, PutLifecycleConfiguration, PutBucketPublicAccessBlock, PutEncryptionConfiguration -
iam:GetRole, PassRole, CreateRole, GetPolicy, PutRolePolicy, GetPolicyVersion, ListAttachedUserPolicies, GetInstanceProfile, CreateInstanceProfile, DeleteInstanceProfile, CreateServiceLinkedRole, AddRoleToInstanceProfile, RemoveRoleFromInstanceProfile, SimulatePrincipalPolicy, DeleteRole, AttachRolePolicy, DetachRolePolicy, TagRole, UntagRole -
tag:GetResources, TagResources, UntagResources -
kms:Encrypt, Decrypt, ReEncrypt, GenerateDataKey, DescribeKey, ListKeys, ListAliases -
ssm:SendCommand, StartSession, CreateAssociation, DescribeAssociation, GetCommandInvocation, ListCommandInvocations, DescribeInstanceInformation
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, Edge 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 dans la console AWS IAM :
Script JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "workspaces:*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "fsx:*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"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:CreateRole",
"iam:GetPolicy",
"iam:PutRolePolicy",
"iam:GetPolicyVersion",
"iam:ListAttachedUserPolicies",
"iam:GetInstanceProfile",
"iam:CreateInstanceProfile",
"iam:DeleteInstanceProfile",
"iam:CreateServiceLinkedRole",
"iam:AddRoleToInstanceProfile",
"iam:RemoveRoleFromInstanceProfile",
"iam:SimulatePrincipalPolicy",
"iam:DeleteRole",
"iam:AttachRolePolicy",
"iam:DetachRolePolicy",
"iam:ListAttachedRolePolicies",
"iam:ListInstanceProfilesForRole"
],
"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"
],
"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.
- Dans la console IAM, accédez à la section IAM (Gestion des identités et des accès) de votre compte AWS.
- Cliquez sur Rôles dans le volet de gauche.
- Cliquez sur Créer un rôle et sélectionnez Stratégie d'approbation personnalisée.
- Définissez une stratégie d'approbation personnalisée en entrant le script JSON suivant 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}"
}
}
}
]
}
Cette page vous a-t-elle été utile ?