Skip to main content

IAM ポリシーとロールの作成

Horizon Cloud 用の AWS アカウントでは、いくつかのリソース プロバイダのステータスが登録済みである必要があります。

Horizon Edge をデプロイする前に、リストされている IAM 権限が指定されていることを確認します。Horizon Edge デプロイの最後の手順では、これらのリソース プロバイダのステータスが登録済みであることを検証し、登録解除されている場合は Horizon Edge のデプロイを開始できないようにします。

必要な IAM 権限を指定するには、2 つの方法があります。

  • AWS IAM コンソールを使用して権限を作成する。
  • AWS IAM コンソールを使用して、以下に含まれる JSON スクリプトを実行する。



IAM 権限の作成

権限を手動で作成する場合は、AWS IAM コンソールで次の必要な IAM 権限を指定する必要があります。

  • ec2: - すべての権限

  • workspaces: - すべての権限

  • fsx: - すべての権限

  • 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

**注:**Horizon Cloud は、AWS サービス制御ポリシー (SCP) またはその他のタグ ポリシーを使用して必須にされたタグについて、必須タグ検証を実行しません。組織が AWS サービス制御ポリシー (SCP) またはタグ ポリシーを適用する場合は、Edge をデプロイする前に、必要なすべてのタグがプロバイダに適用されていることを確認します。ポリシーで必須にされたタグが見つからないと、Horizon Edge、Edge Gateway、および UAG のデプロイに失敗することがあります。詳細については、「Amazon リソース タグの使用」を参照してください。

次の JSON ファイルのコピーと使用

JSON ファイル メソッドを使用する場合は、以下の JSON スクリプトを AWS IAM コンソールのポリシー エディタにコピーします。

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



IAM ロールの作成

IAM ロールは、特定の権限を持つアカウントで作成できる IAM ID です。IAM ロールは、ID が AWS で実行できることとできないことを決定する権限ポリシーを持つ AWS ID であるという意味で IAM ユーザーに似ています。ただし、1 人のユーザーに一意に関連付けられるのではなく、ロールを必要とするユーザーが引き受けることを想定しています。また、ロールには、パスワードやアクセス キーなどの標準的な長期の認証情報は関連付けられていません。代わりに、ロールを引き受けると、ロール セッションの一時的なセキュリティ認証情報が提供されます。

以下の手順に従うことで、ロール セッションに一時的なセキュリティ認証情報を提供する IAM ロールを AWS に作成し、AWS リソースへの安全なアクセスを確保しながら Horizon Cloud へのアクセスを実現できます。

  1. IAM コンソールで、AWS アカウントの IAM(ID とアクセス管理)セクションに移動します。
  2. 左側のペインで [ロール] をクリックします。
  3. [ロールの作成] をクリックし、[カスタム信頼ポリシー] を選択します。
  4. カスタム信頼ポリシー エディタで次の JSON スクリプトを入力し、カスタム信頼ポリシーを定義します。

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

このページは役に立ちましたか?

このトピックについてフィードバックを送信

このトピックは役に立ちましたか?

個人情報や機密情報は入力しないでください。

リンクを生成しています…