Skip to main content

2 de septiembre de 2026

Crear roles y directivas de IAM

En su cuenta de AWS para Horizon Cloud, varios proveedores de recursos deben tener un estado registrado.

Nota: Los requisitos de permisos que se especifican a continuación solo se aplican a los nuevos clientes a partir de la versión 2601. Para conocer los requisitos de permisos de los clientes actuales anteriores a la versión 2601, consulte el artículo 6001262 de la base de conocimientos.

Asegúrese de que se proporcionan los permisos de IAM indicados antes de implementar una instancia de Horizon Edge. El paso final de la implementación de Horizon Edge valida que estos proveedores de recursos tengan un estado registrado e impide el inicio de la implementación de Horizon Edge si se cancela el registro de uno.

Hay dos métodos disponibles para proporcionar los permisos de IAM necesarios.

  • Mediante la consola de IAM de AWS para crear permisos.
  • Mediante la consola de IAM de AWS para ejecutar el script JSON que se incluye a continuación.

Crear permisos de IAM

Si decide crear los permisos manualmente, proporcione los permisos de IAM necesarios que se especifican en la siguiente directiva JSON directamente en la consola de IAM de AWS.

Nota: Horizon Cloud no realiza la validación obligatoria de ninguna etiqueta que se haya convertido en obligatoria mediante el uso de la directiva de control de servicios (SCP) de AWS u otra directiva de etiquetas. Si su organización aplica directivas de control de servicios (SCP) o directivas de etiquetas de AWS, asegúrese de que todas las etiquetas necesarias se apliquen al proveedor antes de la implementación de Edge. Las implementaciones de Horizon Edge, Edge Gateway y UAG pueden fallar si faltan las etiquetas exigidas por la directiva. Para obtener más información, consulte Usar etiquetas de recursos de Amazon.

Copiar y utilizar el archivo JSON

Si decide utilizar el método con el archivo JSON, copie el siguiente script JSON en el editor de directivas de la consola de IAM de AWS:

Directiva 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": "*"
    }
  ]
}



Crear roles de IAM

Un rol de IAM es una identidad de IAM que se puede crear en la cuenta que tiene permisos específicos. Un rol de IAM es similar a un usuario de IAM en el sentido de que es una identidad de AWS con directivas de permisos que determinan lo que la identidad puede y no puede hacer en AWS. Sin embargo, en lugar de estar asociado exclusivamente a una persona, un rol está previsto para que lo asuma cualquiera que lo necesite. Además, un rol no tiene credenciales estándar a largo plazo, como una contraseña o claves de acceso asociadas a ella. En cambio, cuando se asume un rol, se obtienen credenciales de seguridad temporales para la sesión de ese rol.

Siguiendo estos pasos, puede crear un rol de IAM en AWS que proporcione credenciales de seguridad temporales para su sesión de rol, lo que le permitirá acceder a Horizon Cloud y, al mismo tiempo, garantizar un acceso seguro a sus recursos de AWS. Para obtener información relacionada, consulte Crear un rol mediante políticas de confianza personalizadas en la documentación de AWS.

  1. En la consola de IAM, vaya a la sección IAM (Administración de identidades y acceso) de su cuenta de AWS.

  2. Haga clic en Roles en el panel izquierdo.

  3. Haga clic en Crear rol y seleccione Directiva de confianza personalizada.

  4. Para definir una directiva de confianza personalizada, introduzca la siguiente directiva JSON en el editor de directivas de confianza 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>"
            }
          }
        }
      ]
    }
    
  5. En la sección Agregar permisos de la consola de IAM, agregue la directiva definida en la sección Crear permisos de IAM de este tema.

  6. Con los permisos anteriores, agregue también la directiva AmazonSSMManagedInstanceCore administrada por AWS para habilitar las funcionalidades relacionadas con SSM. Consulte la documentación de AWS AmazonSSMManagedInstanceCore.

¿Le resultó útil esta página?

Enviar comentarios sobre este tema

¿Le resultó útil este tema?

No incluya información personal ni confidencial.

Generando el enlace…