Skip to main content

Erstellen von IAM-Richtlinien und -Rollen

In Ihrem AWS-Konto für Horizon Cloud müssen mehrere Ressourcenanbieter über einen registrierten Status verfügen.

Stellen Sie sicher, dass die aufgelisteten IAM-Berechtigungen bereitgestellt werden, bevor Sie einen Horizon Edge bereitstellen. Im letzten Schritt der Horizon Edge-Bereitstellung wird überprüft, ob diese Ressourcenanbieter ein registrierten Status aufweisen. Falls ein Ressourcenanbieter nicht registriert ist, wird der Start der Horizon Edge-Bereitstellung verhindert.

Es stehen Ihnen zwei Methoden zur Verfügung, um die erforderlichen IAM-Berechtigungen bereitzustellen.

  • Über die AWS IAM-Konsole, um Berechtigungen zu erstellen.
  • Über die AWS IAM-Konsole, um das unten aufgeführte JSON-Skript auszuführen.



IAM-Berechtigung erstellen

Wenn Sie die Berechtigungen manuell erstellen möchten, müssen die folgenden erforderlichen IAM-Berechtigungen in der AWS IAM-Konsole bereitgestellt werden:

  • ec2: − alle Berechtigungen

  • workspaces: − alle Berechtigungen

  • fsx: − alle Berechtigungen

  • 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

Hinweis: Horizon Cloud führt keine obligatorische Tag-Validierung für Tags durch, die durch die AWS Service Control Policy (SCP) oder andere Tag-Richtlinien als obligatorisch festgelegt wurden. Wenn Ihre Organisation AWS Service Control-Richtlinien (SCP) oder Tag-Richtlinien durchsetzt, stellen Sie sicher, dass alle erforderlichen Tags vor der Edge-Bereitstellung auf den Anbieter angewendet werden. Horizon Edge-, Edge Gateway- und UAG-Bereitstellungen können fehlschlagen, wenn durch Richtlinien vorgeschriebene Tags fehlen. Weitere Informationen finden Sie unter Verwenden von Amazon-Ressourcen-Tags.

Kopieren und Verwenden der folgenden JSON-Datei

Wenn Sie sich für die JSON-Datei-Methode entscheiden, kopieren Sie das unten aufgeführte JSON-Skript in den Richtlinieneditor der AWS IAM-Konsole:

JSON-Skript

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



IAM-Rollen erstellen

Eine IAM-Rolle ist eine IAM-Identität, die Sie in Ihrem Konto mit bestimmten Berechtigungen erstellen können. Eine IAM-Rolle ähnelt einem IAM-Benutzer, da sie eine AWS-Identität mit Berechtigungsrichtlinien ist, die festlegen, was die Identität in AWS tun kann und was nicht. Anstatt jedoch eindeutig einer Person zugeordnet zu sein, kann eine Rolle von jedem übernommen werden, der sie benötigt. Außerdem verfügt eine Rolle nicht über standardmäßige langfristige Anmeldedaten wie ein Kennwort oder Zugriffsschlüssel. Stattdessen erhalten Sie, wenn Sie eine Rolle übernehmen, temporäre Sicherheitsanmeldedaten für Ihre Rollensitzung.

Wenn Sie diese Schritte ausführen, können Sie in AWS eine IAM-Rolle erstellen, die temporäre Sicherheitsanmeldedaten für Ihre Rollensitzung bereitstellt und den Zugriff auf Horizon Cloud ermöglicht. Gleichzeitig wird der sichere Zugriff auf Ihre AWS-Ressourcen gewährleistet.

  1. Navigieren Sie in der IAM-Konsole zum Abschnitt IAM (Identitäts- und Zugriffsmanagement) in Ihrem AWS-Konto.
  2. Klicken Sie im linken Fensterbereich auf Rollen.
  3. Klicken Sie auf Rolle erstellen und wählen Sie Benutzerdefinierte Vertrauensrichtlinie aus.
  4. Definieren Sie eine benutzerdefinierte Vertrauensrichtlinie, indem Sie das folgende JSON-Skript im Editor für benutzerdefinierte Vertrauensrichtlinien eingeben.

    {
    "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}"
                }
            }
        }
    ]
}

War diese Seite hilfreich?

Feedback zu diesem Thema geben

War dieses Thema hilfreich?

Bitte geben Sie keine personenbezogenen oder vertraulichen Daten an.

Link wird erstellt…