Na sua conta da AWS para o Horizon Cloud, vários provedores de recursos devem ter um status registrado.
Nota: os requisitos de permissão listados nesta página são específicos para novos clientes a partir da versão 2601. Para obter os requisitos de permissão para clientes existentes antes da versão 2601, consulte o artigo KB 6001262.
Certifique-se de que as permissões do IAM listadas sejam fornecidas antes da implantação de um Horizon Edge. A etapa final da implantação do Horizon Edge valida se esses provedores de recursos têm um status registrado e impede o início da implantação do Horizon Edge caso um deles não esteja registrado.
Dois métodos estão disponíveis para você fornecer as permissões necessárias do IAM.
- Usando o console do AWS IAM para criar permissões.
- Usando o console do AWS IAM para executar o script JSON incluído abaixo.
Criar permissões do IAM
Se você optar por criar as permissões manualmente, forneça as permissões necessárias do IAM listadas na política JSON a seguir, diretamente no console do AWS IAM.
Nota: o Horizon Cloud não realiza a validação obrigatória de quaisquer tags que se tornem obrigatórias por meio da Política de Controle de Serviço (SCP) da AWS ou de outras políticas de tags. Se sua organização impõe políticas de controle de serviço (SCP) ou políticas de tags da AWS, certifique-se de que todas as tags necessárias sejam aplicadas ao provedor antes da implantação no Edge. As implantações do Horizon Edge, do Edge Gateway e do UAG poderão falhar se as tags exigidas pela política estiverem ausentes. Para obter mais informações, consulte Usar tags de recursos da Amazon.
Copiar e usar o seguinte arquivo JSON
Se você optar por usar o método de arquivo JSON, copie o script JSON abaixo para o editor de políticas no console do AWS IAM:
Política 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": "*"
}
]
}
Criar funções do IAM
Uma função do IAM é uma identidade do IAM que você pode criar em sua conta do que tenha permissões específicas. Uma função do IAM é semelhante a um usuário do IAM, pois ela é uma identidade da AWS com políticas de permissão que determinam o que a identidade pode ou não fazer na AWS. No entanto, em vez de estar associada exclusivamente a uma pessoa, uma função deve poder ser assumida por qualquer pessoa que precise dela. Além disso, uma função não tem credenciais padrão de longo prazo, como uma senha ou chaves de acesso associadas a ela. Em vez disso, quando você assume uma função, ele fornece credenciais de segurança temporárias para a sessão de função.
Seguindo essas etapas, você pode criar uma função de IAM na AWS que fornece credenciais de segurança temporárias para sua sessão de função, permitindo acesso a Horizon Cloud. Isso garante acesso seguro aos seus recursos da AWS. Para obter informações relacionadas, consulte Criar uma função usando políticas de confiança personalizadas na documentação do AWS.
-
No console do IAM, navegue até a seção IAM (Gerenciamento de Identidade e Acesso) na sua conta da AWS.
-
Clique em Funções no painel esquerdo.
-
Clique em Criar função e selecione Política de confiança personalizada.
-
Defina uma política de confiança personalizada inserindo a seguinte política JSON no editor de política de confiança personalizada.
{ "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>" } } } ] } -
Na seção Adicionar permissões do console do IAM, adicione a política definida na seção Criar permissões do IAM deste tópico.
-
Com as permissões acima, adicione também a política gerenciada da AWS
AmazonSSMManagedInstanceCorepara ativar funcionalidades relacionadas ao SSM. Consulte a documentação da AWS AmazonSSMManagedInstanceCore.
Esta página foi útil?