AWS Identity and Access Management 권한 입력 AWS ParallelCluster - AWS ParallelCluster

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Identity and Access Management 권한 입력 AWS ParallelCluster

AWS ParallelCluster 클러스터를 생성하고 관리할 때 IAM 권한을 사용하여 리소스에 대한 액세스를 제어합니다.

AWS 계정에서 클러스터를 생성하고 관리하려면 다음 두 수준의 권한이 AWS ParallelCluster 필요합니다.
  • pcluster 사용자가 클러스터를 생성하고 관리하기 위한 pcluster CLI 명령을 간접 호출하는 데 필요한 권한입니다.

  • 클러스터 리소스가 클러스터 작업을 수행하는 데 필요한 권한입니다.

AWS ParallelCluster EC2 인스턴스 프로필과 역할을 사용하여 클러스터 리소스 권한을 제공합니다. 클러스터 리소스 권한을 관리하려면 IAM 리소스에 대한 AWS ParallelCluster 권한도 필요합니다. 자세한 정보는 AWS ParallelCluster IAM 리소스 관리를 위한 사용자 예제 정책을 참조하세요.

pcluster 사용자pcluster CLI를 사용하여 클러스터와 해당 리소스를 생성하고 관리하려면 IAM 권한이 필요합니다. 이러한 권한은 사용자 또는 역할에 추가할 수 있는 IAM 정책에 포함됩니다. IAM 역할에 대한 자세한 정보는AWS Identity and Access Management 사용 설명서사용자 역할 생성을 참조하세요.

AWS ParallelCluster IAM 권한을 관리하기 위한 구성 파라미터도 사용할 수 있습니다.

다음 섹션에는 필수 권한이 예제와 함께 포함되어 있습니다.

예제 정책을 사용하려면 <REGION>, <AWS ACCOUNT ID> 및 유사한 문자열을 적절한 값으로 바꾸세요.

다음 정책 예시에는 리소스의 Amazon 리소스 이름(ARN)이 포함되어 있습니다. AWS GovCloud (US) 또는 AWS 중국 파티션에서 작업하는 경우 ARN을 변경해야 합니다. 특히 파티션의 경우 “arn:aws”에서 “arn:aws-us-gov”로, 중국 AWS GovCloud (US) 파티션의 경우 “arn:aws-cn”으로 변경해야 합니다. AWS 자세한 내용은 AWS GovCloud (US) 사용 설명서의 AWS GovCloud (US) 지역별 Amazon 리소스 이름 (ARN) 및 중국 내 AWS 서비스 시작하기에서 중국 내 서비스용 ARN을 참조하십시오. AWS

AWS ParallelCluster 설명서에서 예제 정책의 변경 사항을 추적할 수 있습니다. GitHub

AWS ParallelCluster EC2 인스턴스 역할

기본 구성 설정으로 클러스터를 생성하면 EC2 인스턴스 프로필을 AWS ParallelCluster 사용하여 클러스터와 해당 리소스를 생성하고 관리하는 데 필요한 권한을 제공하는 기본 클러스터 EC2 인스턴스 역할을 자동으로 생성합니다.

기본 AWS ParallelCluster 인스턴스 역할 사용의 대안

기본 AWS ParallelCluster 인스턴스 역할 대신 InstanceRole 클러스터 구성 설정을 사용하여 EC2용 기존 IAM 역할을 지정할 수 있습니다. 자세한 정보는 AWS ParallelCluster IAM 권한을 관리하기 위한 구성 파라미터을 참조하세요. 일반적으로 기존 IAM 역할을 지정하여 EC2에 부여된 권한을 완전히 제어합니다.

기본 인스턴스 역할에 추가 정책을 추가하려는 경우, InstanceProfile 또는 InstanceRole 설정을 사용하는 대신 AdditionalIamPolicies 설정을 사용하여 추가 IAM 정책을 전달하는 것이 좋습니다. 클러스터를 업데이트할 때 AdditionalIamPolicies를 업데이트할 수 있지만 클러스터를 업데이트할 때는 InstanceRole을 업데이트할 수 없습니다.

AWS ParallelCluster 사용자 정책 예시 pcluster

다음 예는 pcluster CLI를 사용하여 리소스를 생성하고 관리하는 데 필요한 사용자 AWS ParallelCluster 정책과 해당 리소스를 보여줍니다. 사용자 또는 역할에 정책을 연결할 수 있습니다.

기본 AWS ParallelCluster pcluster 사용자 정책

다음 정책은 AWS ParallelCluster pcluster 명령을 실행하는 데 필요한 권한을 보여줍니다.

정책에 나열된 마지막 작업은 클러스터 구성에 지정된 모든 암호의 검증을 제공하기 위해 포함됩니다. 예를 들어, AWS Secrets Manager 암호는 DirectoryService통합을 구성하는 데 사용됩니다. 이 경우 클러스터는 PasswordSecretArn에 유효한 보안 암호가 있는 경우에만 생성됩니다. 이 작업을 생략하면 보안 암호 검증이 생략됩니다. 보안 태세를 개선하려면 클러스터 구성에 지정된 비밀만 추가하여 이 정책 설명의 범위를 좁히는 것이 좋습니다.

참고

기존 Amazon EFS 파일 시스템이 클러스터에서 사용되는 유일한 파일 시스템인 경우, Amazon EFS 정책 설명 예제를 클러스터 구성 파일의 SharedStorage 섹션에서 참조하는 특정 파일 시스템으로 범위를 좁힐 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:Describe*" ], "Resource": "*", "Effect": "Allow", "Sid": "EC2Read" }, { "Action": [ "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateFleet", "ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:CreateNetworkInterface", "ec2:CreatePlacementGroup", "ec2:CreateSecurityGroup", "ec2:CreateSnapshot", "ec2:CreateTags", "ec2:DeleteTags", "ec2:CreateVolume", "ec2:DeleteLaunchTemplate", "ec2:DeleteNetworkInterface", "ec2:DeletePlacementGroup", "ec2:DeleteSecurityGroup", "ec2:DeleteVolume", "ec2:DisassociateAddress", "ec2:ModifyLaunchTemplate", "ec2:ModifyNetworkInterfaceAttribute", "ec2:ModifyVolume", "ec2:ModifyVolumeAttribute", "ec2:ReleaseAddress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:RunInstances", "ec2:TerminateInstances" ], "Resource": "*", "Effect": "Allow", "Sid": "EC2Write" }, { "Action": [ "dynamodb:DescribeTable", "dynamodb:ListTagsOfResource", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:Query", "dynamodb:TagResource" ], "Resource": "arn:aws:dynamodb:*:<AWS ACCOUNT ID>:table/parallelcluster-*", "Effect": "Allow", "Sid": "DynamoDB" }, { "Action": [ "route53:ChangeResourceRecordSets", "route53:ChangeTagsForResource", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetChange", "route53:GetHostedZone", "route53:ListResourceRecordSets", "route53:ListQueryLoggingConfigs" ], "Resource": "*", "Effect": "Allow", "Sid": "Route53HostedZones" }, { "Action": [ "cloudformation:*" ], "Resource": "*", "Effect": "Allow", "Sid": "CloudFormation" }, { "Action": [ "cloudwatch:PutDashboard", "cloudwatch:ListDashboards", "cloudwatch:DeleteDashboards", "cloudwatch:GetDashboard", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms" "cloudwatch:PutCompositeAlarm" ], "Resource": "*", "Effect": "Allow", "Sid": "CloudWatch" }, { "Action": [ "iam:GetRole", "iam:GetRolePolicy", "iam:GetPolicy", "iam:SimulatePrincipalPolicy", "iam:GetInstanceProfile" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/*", "arn:aws:iam::<AWS ACCOUNT ID>:policy/*", "arn:aws:iam::aws:policy/*", "arn:aws:iam::<AWS ACCOUNT ID>:instance-profile/*" ], "Effect": "Allow", "Sid": "IamRead" }, { "Action": [ "iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:instance-profile/parallelcluster/*" ], "Effect": "Allow", "Sid": "IamInstanceProfile" }, { "Condition": { "StringEqualsIfExists": { "iam:PassedToService": [ "lambda.amazonaws.com", "ec2.amazonaws.com", "spotfleet.amazonaws.com" ] } }, "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*" ], "Effect": "Allow", "Sid": "IamPassRole" }, { "Action": [ "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:GetFunction", "lambda:InvokeFunction", "lambda:AddPermission", "lambda:RemovePermission", "lambda:UpdateFunctionConfiguration", "lambda:TagResource", "lambda:ListTags", "lambda:UntagResource" ], "Resource": [ "arn:aws:lambda:*:<AWS ACCOUNT ID>:function:parallelcluster-*", "arn:aws:lambda:*:<AWS ACCOUNT ID>:function:pcluster-*" ], "Effect": "Allow", "Sid": "Lambda" }, { "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::parallelcluster-*", "arn:aws:s3:::aws-parallelcluster-*" ], "Effect": "Allow", "Sid": "S3ResourcesBucket" }, { "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::*-aws-parallelcluster*", "Effect": "Allow", "Sid": "S3ParallelClusterReadOnly" }, { "Action": [ "elasticfilesystem:*" ], "Resource": [ "arn:aws:elasticfilesystem:*:<AWS ACCOUNT ID>:*" ], "Effect": "Allow", "Sid": "EFS" }, { "Action": [ "logs:DeleteLogGroup", "logs:PutRetentionPolicy", "logs:DescribeLogGroups", "logs:CreateLogGroup", "logs:TagResource", "logs:UntagResource", "logs:FilterLogEvents", "logs:GetLogEvents", "logs:CreateExportTask", "logs:DescribeLogStreams", "logs:DescribeExportTasks", "logs:DescribeMetricFilters", "logs:PutMetricFilter", "logs:DeleteMetricFilter" ], "Resource": "*", "Effect": "Allow", "Sid": "CloudWatchLogs" }, { "Action": [ "resource-groups:ListGroupResources" ], "Resource": "*", "Effect": "Allow", "Sid": "ResourceGroupRead" }, { "Sid": "AllowDescribingFileCache", "Effect": "Allow", "Action": [ "fsx:DescribeFileCaches" ], "Resource": "*" }, { "Action": "secretsmanager:DescribeSecret", "Resource": "arn:aws:secretsmanager:<REGION>:<AWS ACCOUNT ID>:secret:<SECRET NAME>", "Effect": "Allow" } ] }

AWS Batch 스케줄러 사용 시 추가 AWS ParallelCluster pcluster 사용자 정책

AWS Batch 스케줄러를 사용하여 클러스터를 생성하고 관리해야 하는 경우 다음과 같은 추가 정책이 필요합니다.

{ "Version": "2012-10-17", "Statement": [ { "Condition": { "StringEqualsIfExists": { "iam:PassedToService": [ "ecs-tasks.amazonaws.com", "batch.amazonaws.com", "codebuild.amazonaws.com" ] } }, "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*" ], "Effect": "Allow", "Sid": "IamPassRole" }, { "Condition": { "StringEquals": { "iam:AWSServiceName": [ "batch.amazonaws.com" ] } }, "Action": [ "iam:CreateServiceLinkedRole", "iam:DeleteServiceLinkedRole" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/aws-service-role/batch.amazonaws.com/*" ], "Effect": "Allow" }, { "Action": [ "codebuild:*" ], "Resource": "arn:aws:codebuild:*:<AWS ACCOUNT ID>:project/pcluster-*", "Effect": "Allow" }, { "Action": [ "ecr:*" ], "Resource": "*", "Effect": "Allow", "Sid": "ECR" }, { "Action": [ "batch:*" ], "Resource": "*", "Effect": "Allow", "Sid": "Batch" }, { "Action": [ "events:*" ], "Resource": "*", "Effect": "Allow", "Sid": "AmazonCloudWatchEvents" }, { "Action": [ "ecs:DescribeContainerInstances", "ecs:ListContainerInstances" ], "Resource": "*", "Effect": "Allow", "Sid": "ECS" } ] }

Amazon FSx for Lustre를 사용할 때의 추가 AWS ParallelCluster pcluster 사용자 정책

Amazon FSx for Lustre를 사용하여 클러스터를 생성하고 관리해야 하는 경우 다음과 같은 추가 정책이 필요합니다.

참고

기존 Amazon FSx 파일 시스템이 클러스터에서 사용되는 유일한 파일 시스템인 경우,Amazon FSx 정책 설명 예제를 클러스터 구성 파일의 SharedStorage 섹션에서 참조하는 특정 파일 시스템으로 범위를 좁힐 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Condition": { "StringEquals": { "iam:AWSServiceName": [ "fsx.amazonaws.com", "s3.data-source.lustre.fsx.amazonaws.com" ] } }, "Action": [ "iam:CreateServiceLinkedRole", "iam:DeleteServiceLinkedRole" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "fsx:*" ], "Resource": [ "arn:aws:fsx:*:<AWS ACCOUNT ID>:*" ], "Effect": "Allow", "Sid": "FSx" }, { "Action": [ "iam:CreateServiceLinkedRole", "iam:AttachRolePolicy", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::<AWS ACCOUNT ID>:role/aws-service-role/s3.data-source.lustre.fsx.amazonaws.com/*", "Effect": "Allow" }, { "Action": [ "s3:Get*", "s3:List*", "s3:PutObject" ], "Resource": "arn:aws:s3:::<S3 NAME>", "Effect": "Allow" } ] }

AWS ParallelCluster 이미지 빌드 pcluster 사용자 정책

를 사용하여 사용자 지정 EC2 이미지를 생성하려는 사용자는 다음과 같은 권한 세트를 AWS ParallelCluster 가져야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:DescribeImages", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeInstanceTypes", "ec2:DeregisterImage", "ec2:DeleteSnapshot" ], "Resource": "*", "Effect": "Allow", "Sid": "EC2" }, { "Action": [ "iam:CreateInstanceProfile", "iam:AddRoleToInstanceProfile", "iam:GetRole", "iam:GetRolePolicy", "iam:GetInstanceProfile", "iam:RemoveRoleFromInstanceProfile" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:instance-profile/parallelcluster/*", "arn:aws:iam::<AWS ACCOUNT ID>:instance-profile/ParallelClusterImage*", "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*" ], "Effect": "Allow", "Sid": "IAM" }, { "Condition": { "StringEquals": { "iam:PassedToService": [ "lambda.amazonaws.com", "ec2.amazonaws.com" ] } }, "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:instance-profile/parallelcluster/*", "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*" ], "Effect": "Allow", "Sid": "IAMPassRole" }, { "Action": [ "logs:CreateLogGroup", "logs:TagResource", "logs:UntagResource", "logs:DeleteLogGroup" ], "Resource": [ "arn:aws:logs:*:<AWS ACCOUNT ID>:log-group:/aws/imagebuilder/ParallelClusterImage-*", "arn:aws:logs:*:<AWS ACCOUNT ID>:log-group:/aws/lambda/ParallelClusterImage-*" ], "Effect": "Allow", "Sid": "CloudWatch" }, { "Action": [ "cloudformation:DescribeStacks", "cloudformation:CreateStack", "cloudformation:DeleteStack" ], "Resource": [ "arn:aws:cloudformation:*:<AWS ACCOUNT ID>:stack/*" ], "Effect": "Allow", "Sid": "CloudFormation" }, { "Action": [ "lambda:CreateFunction", "lambda:GetFunction", "lambda:AddPermission", "lambda:RemovePermission", "lambda:DeleteFunction", "lambda:TagResource", "lambda:ListTags", "lambda:UntagResource" ], "Resource": [ "arn:aws:lambda:*:<AWS ACCOUNT ID>:function:ParallelClusterImage-*" ], "Effect": "Allow", "Sid": "Lambda" }, { "Action": [ "imagebuilder:Get*" ], "Resource": "*", "Effect": "Allow", "Sid": "ImageBuilderGet" }, { "Action": [ "imagebuilder:CreateImage", "imagebuilder:TagResource", "imagebuilder:CreateImageRecipe", "imagebuilder:CreateComponent", "imagebuilder:CreateDistributionConfiguration", "imagebuilder:CreateInfrastructureConfiguration", "imagebuilder:DeleteImage", "imagebuilder:DeleteComponent", "imagebuilder:DeleteImageRecipe", "imagebuilder:DeleteInfrastructureConfiguration", "imagebuilder:DeleteDistributionConfiguration" ], "Resource": [ "arn:aws:imagebuilder:*:<AWS ACCOUNT ID>:image/parallelclusterimage-*", "arn:aws:imagebuilder:*:<AWS ACCOUNT ID>:image-recipe/parallelclusterimage-*", "arn:aws:imagebuilder:*:<AWS ACCOUNT ID>:component/parallelclusterimage-*", "arn:aws:imagebuilder:*:<AWS ACCOUNT ID>:distribution-configuration/parallelclusterimage-*", "arn:aws:imagebuilder:*:<AWS ACCOUNT ID>:infrastructure-configuration/parallelclusterimage-*" ], "Effect": "Allow", "Sid": "ImageBuilder" }, { "Action": [ "s3:CreateBucket", "s3:ListBucket", "s3:ListBucketVersions" ], "Resource": [ "arn:aws:s3:::parallelcluster-*" ], "Effect": "Allow", "Sid": "S3Bucket" }, { "Action": [ "sns:GetTopicAttributes", "sns:TagResource", "sns:CreateTopic", "sns:Subscribe", "sns:Publish", "SNS:DeleteTopic", "SNS:Unsubscribe" ], "Resource": [ "arn:aws:sns:*:<AWS ACCOUNT ID>:ParallelClusterImage-*" ], "Effect": "Allow", "Sid": "SNS" }, { "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": [ "arn:aws:s3:::parallelcluster-*/*" ], "Effect": "Allow", "Sid": "S3Objects" }, { "Action": "iam:CreateServiceLinkedRole", "Effect": "Allow", "Resource": "arn:aws:iam::*:role/aws-service-role/imagebuilder.amazonaws.com/AWSServiceRoleForImageBuilder", "Condition": { "StringLike": { "iam:AWSServiceName": "imagebuilder.amazonaws.com" } } } ] }

AWS ParallelCluster IAM 리소스 관리를 위한 사용자 예제 정책

클러스터 또는 사용자 지정 AMI를 생성하는 AWS ParallelCluster 데 사용하는 경우 구성 요소에 필요한 권한 세트를 부여할 수 있는 권한이 포함된 IAM 정책을 제공해야 합니다. AWS ParallelCluster 이러한 IAM 리소스는 클러스터 AWS ParallelCluster 또는 사용자 지정 이미지를 생성할 때 자동으로 생성되거나 입력으로 제공될 수 있습니다.

다음 모드를 사용하면 구성에서 추가 IAM 정책을 사용하여 IAM 리소스에 액세스하는 데 필요한 권한을 AWS ParallelCluster 사용자에게 제공할 수 있습니다.

권한 있는 IAM 액세스 모드

이 모드에서는 필요한 모든 IAM 리소스를 AWS ParallelCluster 자동으로 생성합니다. 이러한 IAM 정책은 클러스터 리소스에만 액세스할 수 있도록 범위가 축소되었습니다.

권한 있는 IAM 액세스 모드를 활성화하려면 사용자 역할에 다음 정책을 추가하세요.

참고

//AdditionalPolicies또는 HeadNodeIam/SchedulingSlurmQueuesIam/AdditionalPolicies파라미터를 구성하는 경우 다음 정책과 같이 각 추가 정책에 대한 역할 정책을 연결하고 분리할 수 있는 권한을 AWS ParallelCluster 사용자에게 제공해야 합니다. 역할 정책을 연결하고 분리하기 위한 조건에 추가 정책 ARN을 추가합니다.

주의

이 모드를 사용하면 사용자가 IAM 관리자 권한을 가질 수 있습니다. AWS 계정

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:TagRole" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*" ], "Effect": "Allow", "Sid": "IamRole" }, { "Action": [ "iam:CreateRole" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*" ], "Effect": "Allow", "Sid": "IamCreateRole" }, { "Action": [ "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Resource": "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*", "Effect": "Allow", "Sid": "IamInlinePolicy" }, { "Condition": { "ArnLike": { "iam:PolicyARN": [ "arn:aws:iam::<AWS ACCOUNT ID>:policy/parallelcluster*", "arn:aws:iam::<AWS ACCOUNT ID>:policy/parallelcluster/*", "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy", "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore", "arn:aws:iam::aws:policy/AWSBatchFullAccess", "arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess", "arn:aws:iam::aws:policy/service-role/AWSBatchServiceRole", "arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role", "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy", "arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole", "arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilder", "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" ] } }, "Action": [ "iam:AttachRolePolicy", "iam:DetachRolePolicy" ], "Resource": "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*", "Effect": "Allow", "Sid": "IamPolicy" } ] }

제한된 IAM 액세스 모드

사용자에게 추가 IAM 정책이 부여되지 않은 경우 클러스터나 사용자 지정 이미지 빌드에 필요한 IAM 역할을 관리자가 수동으로 생성하여 클러스터 구성의 일부로 전달해야 합니다.

클러스터를 생성할 때 다음 파라미터는 필수 파라미터입니다.

사용자 지정 이미지 빌드 시 다음 파라미터는 필수 파라미터입니다.

위에 나열된 파라미터의 일부로 전달된 IAM 역할은 /parallelcluster/ path 접두사에 생성되어야 합니다. 이렇게 할 수 없는 경우 다음 예와 같이 특정 사용자 지정 역할에 대한 iam:PassRole 권한을 부여하도록 사용자 정책을 업데이트해야 합니다.

{ "Condition": { "StringEqualsIfExists": { "iam:PassedToService": [ "ecs-tasks.amazonaws.com", "lambda.amazonaws.com", "ec2.amazonaws.com", "spotfleet.amazonaws.com", "batch.amazonaws.com", "codebuild.amazonaws.com" ] } }, "Action": [ "iam:PassRole" ], "Resource": [ <list all custom IAM roles> ], "Effect": "Allow", "Sid": "IamPassRole" }
주의

클러스터 구성에서 모든 IAM 역할을 전달할 수 없기 때문에 현재 이 모드에서는 AWS Batch 클러스터를 관리할 수 없습니다.

PermissionsBoundary 모드

이 모드는 구성된 IAM 권한 AWS ParallelCluster 경계에 바인딩되는 IAM 역할 생성을 위임합니다. IAM 권한 경계에 대한 자세한 정보는 IAM 사용 설명서IAM 엔터티에 대한 권한 경계를 참조하세요.

사용자 역할에 다음 정책을 추가해야 합니다.

정책에서 < permissions-boundary-arn >를 권한 경계로 적용할 IAM 정책 ARN으로 대체하십시오.

주의

HeadNode/Iam/AdditionalPolicies 또는 Scheduling/SlurmQueues/Iam/AdditionalPolicies 파라미터를 구성하는 경우 다음 정책과 같이 각 추가 정책에 대한 역할 정책을 연결하고 분리할 수 있는 권한을 사용자에게 부여해야 합니다. 역할 정책을 연결하고 분리하기 위한 조건에 추가 정책 ARN을 추가합니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:TagRole" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*" ], "Effect": "Allow", "Sid": "IamRole" }, { "Condition": { "StringEquals": { "iam:PermissionsBoundary": [ <permissions-boundary-arn> ] } }, "Action": [ "iam:CreateRole" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*" ], "Effect": "Allow", "Sid": "IamCreateRole" }, { "Condition": { "StringEquals": { "iam:PermissionsBoundary": [ <permissions-boundary-arn> ] } }, "Action": [ "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Resource": "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*", "Effect": "Allow", "Sid": "IamInlinePolicy" }, { "Condition": { "StringEquals": { "iam:PermissionsBoundary": [ <permissions-boundary-arn> ] }, "ArnLike": { "iam:PolicyARN": [ "arn:aws:iam::<AWS ACCOUNT ID>:policy/parallelcluster*", "arn:aws:iam::<AWS ACCOUNT ID>:policy/parallelcluster/*", "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy", "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore", "arn:aws:iam::aws:policy/AWSBatchFullAccess", "arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess", "arn:aws:iam::aws:policy/service-role/AWSBatchServiceRole", "arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role", "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy", "arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole", "arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilder", "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" ] } }, "Action": [ "iam:AttachRolePolicy", "iam:DetachRolePolicy" ], "Resource": "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*", "Effect": "Allow", "Sid": "IamPolicy" } ] }

이 모드를 활성화하면 클러스터를 생성하거나 업데이트할 때는 Iam/PermissionsBoundary 구성 파라미터에, 사용자 지정 이미지를 빌드할 때는 Build/Iam/PermissionBoundary 파라미터에 권한 경계 ARN을 지정해야 합니다.

AWS ParallelCluster IAM 권한을 관리하기 위한 구성 파라미터

AWS ParallelCluster 클러스터에서 또는 사용자 지정 AMI 생성 프로세스 중에 사용되는 IAM 권한 및 역할을 사용자 지정하고 관리하기 위한 일련의 구성 옵션을 제공합니다.

클러스터 구성

헤드 노드 IAM 역할

HeadNode / Iam / InstanceRole | InstanceProfile

이 옵션을 사용하면 클러스터의 헤드 노드에 할당된 기본 IAM 역할을 재정의합니다. 자세한 내용은 InstanceProfile 자료를 참조하세요.

스케줄러가 Slurm일 때 이 역할의 일부로 사용되는 최소 정책 세트는 다음과 같습니다.

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy 관리형 IAM 정책입니다. 자세한 내용은 Amazon 사용 설명서에서 CloudWatch 에이전트와 함께 사용할 IAM 역할 및 CloudWatch 사용자 생성을 참조하십시오.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore 관리형 IAM 정책입니다. 자세한 내용은AWS Systems Manager 사용 설명서AWS Systems Manager용AWS 관리형 정책을 참조하세요.

  • 추가 IAM 정책:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::<REGION>-aws-parallelcluster/*", "arn:aws:s3:::dcv-license.<REGION>/*", "arn:aws:s3:::parallelcluster-*-v1-do-not-delete/*" ], "Effect": "Allow" }, { "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:BatchWriteItem", "dynamodb:BatchGetItem" ], "Resource": "arn:aws:dynamodb:<REGION>:<AWS ACCOUNT ID>:table/parallelcluster-*", "Effect": "Allow" }, { "Condition": { "StringEquals": { "ec2:ResourceTag/parallelcluster:node-type": "Compute" } }, "Action": "ec2:TerminateInstances", "Resource": "*", "Effect": "Allow" }, { "Action": [ "ec2:RunInstances", "ec2:CreateFleet" ] "Resource": "*", "Effect": "Allow" }, { "Condition": { "StringEquals": { "iam:PassedToService": [ "ec2.amazonaws.com" ] } }, "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*", "arn:aws:iam::<AWS ACCOUNT ID>:instance-profile/parallelcluster/*" ], "Effect": "Allow" }, { "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:DescribeVolumes", "ec2:DescribeInstanceAttribute", "ec2:DescribeCapacityReservations" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ec2:CreateTags", "ec2:AttachVolume" ], "Resource": [ "arn:aws:ec2:<REGION>:<AWS ACCOUNT ID>:instance/*", "arn:aws:ec2:<REGION>:<AWS ACCOUNT ID>:volume/*" ], "Effect": "Allow" }, { "Action": [ "cloudformation:DescribeStacks", "cloudformation:DescribeStackResource", "cloudformation:SignalResource" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "route53:ChangeResourceRecordSets" ], "Resource": "*", "Effect": "Allow" }, { "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<REGION>:<AWS ACCOUNT ID>:secret:<SECRET_ID>", "Effect": "Allow" } ] }

참고로 Scheduling/SlurmQueues/Iam/InstanceRole를 사용하여 컴퓨팅 IAM 역할을 재정의하는 경우 위에 보고된 헤드 노드 정책은 iam:PassRole 권한의 Resource 섹션에 해당 역할을 포함해야 합니다.

스케줄러가 AWS Batch일 때 이 역할의 일부로 사용할 수 있는 최소 정책 세트는 다음과 같습니다.

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy 관리형 IAM 정책입니다. 자세한 내용은 Amazon 사용 설명서에서 CloudWatch 에이전트와 함께 사용할 IAM 역할 및 CloudWatch 사용자 생성을 참조하십시오.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore 관리형 IAM 정책입니다. 자세한 내용은AWS Systems Manager 사용 설명서AWS Systems Manager용AWS 관리형 정책을 참조하세요.

  • 추가 IAM 정책:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:PutObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::parallelcluster-*-v1-do-not-delete/*" ], "Effect": "Allow" }, { "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::dcv-license.<REGION>/*", "arn:aws:s3:::<REGION>-aws-parallelcluster/*" ], "Effect": "Allow" }, { "Condition": { "StringEquals": { "iam:PassedToService": [ "batch.amazonaws.com" ] } }, "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*", "arn:aws:iam::<AWS ACCOUNT ID>:instance-profile/parallelcluster/*" ], "Effect": "Allow" }, "Action": [ "batch:DescribeJobQueues", "batch:DescribeJobs", "batch:ListJobs", "batch:DescribeComputeEnvironments" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "batch:SubmitJob", "batch:TerminateJob", "logs:GetLogEvents", "ecs:ListContainerInstances", "ecs:DescribeContainerInstances", ], "Resource": [ "arn:aws:logs:<REGION>:<AWS ACCOUNT ID>:log-group:/aws/batch/job:log-stream:PclusterJobDefinition*", "arn:aws:ecs:<REGION>:<AWS ACCOUNT ID>:container-instance/AWSBatch-PclusterComputeEnviron*", "arn:aws:ecs:<REGION>:<AWS ACCOUNT ID>:cluster/AWSBatch-Pcluster*", "arn:aws:batch:<REGION>:<AWS ACCOUNT ID>:job-queue/PclusterJobQueue*", "arn:aws:batch:<REGION>:<AWS ACCOUNT ID>:job-definition/PclusterJobDefinition*:*", "arn:aws:batch:<REGION>:<AWS ACCOUNT ID>:job/*" ], "Effect": "Allow" }, { "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:DescribeVolumes", "ec2:DescribeInstanceAttribute" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ec2:CreateTags", "ec2:AttachVolume" ], "Resource": [ "arn:aws:ec2:<REGION>:<AWS ACCOUNT ID>:instance/*", "arn:aws:ec2:<REGION>:<AWS ACCOUNT ID>:volume/*" ], "Effect": "Allow" }, { "Action": [ "cloudformation:DescribeStackResource", "cloudformation:DescribeStacks", "cloudformation:SignalResource" ], "Resource": "*", "Effect": "Allow" }, { "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<REGION>:<AWS ACCOUNT ID>:secret:<SECRET_ID>", "Effect": "Allow" } ] }

Amazon S3 액세스

HeadNode/Iam/S3Access 또는 Scheduling/SlurmQueues/S3Access

이 구성 섹션에서는 클러스터의 헤드 노드 또는 컴퓨팅 노드에 연결된 IAM 역할이 AWS ParallelCluster에 의해 생성될 때 역할에 추가 Amazon S3 정책을 부여하여 Amazon S3 액세스를 사용자 지정할 수 있습니다. 자세한 내용은 각 구성 파라미터에 대한 참조 설명서를 참조하세요.

이 파라미터는 사용자가 권한 있는 IAM 액세스 모드 또는 PermissionsBoundary 모드로 구성된 경우에만 사용할 수 있습니다.

추가 IAM 정책

HeadNode/Iam/AdditionalIamPolicies 또는 SlurmQueues/Iam/AdditionalIamPolicies

에서 해당 역할을 생성할 때 클러스터의 헤드 노드 또는 컴퓨팅 노드와 관련된 IAM 역할에 추가 관리형 IAM 정책을 추가하려면 이 옵션을 사용하십시오. AWS ParallelCluster

주의

이 옵션을 사용하려면, 연결해야 하는 IAM 정책에 대한 iam:AttachRolePolicyiam:DetachRolePolicy 권한을 AWS ParallelCluster 사용자에게 부여해야 합니다.

AWS Lambda 함수 역할

Iam / Roles / LambdaFunctionsRole

이 옵션은 클러스터 생성 프로세스 중에 사용되는 모든 AWS Lambda 함수에 연결된 역할을 대체합니다. AWS Lambda 역할을 맡을 수 있는 주도자로 구성해야 합니다.

참고

DeploymentSettings/LambdaFunctionsVpcConfig가 설정된 경우 LambdaFunctionsRole에는 VPC 구성을 설정할 수 있는 AWS Lambda 역할 권한이 포함되어야 합니다.

이 역할의 일부로 사용할 최소 정책 세트는 다음과 같습니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "route53:ListResourceRecordSets", "route53:ChangeResourceRecordSets" ], "Resource": "arn:aws:route53:::hostedzone/*", "Effect": "Allow" }, { "Action": ["logs:CreateLogStream", "logs:PutLogEvents"], "Effect": "Allow", "Resource": "arn:aws:logs:<REGION>:<AWS ACCOUNT ID>:log-group:/aws/lambda/pcluster-*" }, { "Action": "ec2:DescribeInstances", "Effect": "Allow", "Resource": "*" }, { "Action": "ec2:TerminateInstances", "Condition": { "StringEquals": { "ec2:ResourceTag/parallelcluster:node-type": "Compute" } }, "Effect": "Allow", "Resource": "*" }, { "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:ListBucket", "s3:ListBucketVersions" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::parallelcluster-*-v1-do-not-delete", "arn:aws:s3:::parallelcluster-*-v1-do-not-delete/*" ] } ] }

컴퓨팅 노드 IAM 역할

Scheduling / SlurmQueues / Iam / InstanceRole | InstanceProfile

이 옵션을 사용하면 클러스터의 컴퓨팅 노드에 할당된 IAM 역할을 재정의할 수 있습니다. 자세한 정보는 InstanceProfile을 참조하세요.

이 역할의 일부로 사용할 최소 정책 세트는 다음과 같습니다.

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy 관리형 IAM 정책입니다. 자세한 내용은 Amazon 사용 설명서에서 CloudWatch 에이전트와 함께 사용할 IAM 역할 및 CloudWatch 사용자 생성을 참조하십시오.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore 관리형 IAM 정책입니다. 자세한 내용은AWS Systems Manager 사용 설명서AWS Systems Manager용AWS 관리형 정책을 참조하세요.

  • 추가 IAM 정책:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "dynamodb:Query", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:GetItem" ], "Resource": "arn:aws:dynamodb:<REGION>:<AWS ACCOUNT ID>:table/parallelcluster-*", "Effect": "Allow" }, { "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::<REGION>-aws-parallelcluster/*" ], "Effect": "Allow" }, { "Action": "ec2:DescribeInstanceAttribute", "Resource": "*", "Effect": "Allow" }, { "Action": "cloudformation:DescribeStackResource", "Resource": [ "arn:aws:cloudformation:<REGION>:<AWS ACCOUNT ID>:stack/*/*" ], "Effect" "Allow" } ] }

권한 경계

Iam / PermissionsBoundary

이 파라미터는 지정된 IAM 정책을 클러스터 배포의 일부로 생성되는 모든 IAM 역할에 강제로 AWS ParallelCluster 연결합니다. PermissionsBoundary

이 설정을 정의할 때 사용자에게 필요한 정책 목록은 PermissionsBoundary 모드을 참조하세요.

사용자 지정 이미지 구성

EC2 Image Builder 인스턴스 역할

Build / Iam / InstanceRole | InstanceProfile

이 옵션을 사용하면 EC2 Image Builder에서 시작한 EC2 인스턴스에 할당된 IAM 역할을 재정의하여 사용자 지정 AMI를 생성할 수 있습니다.

이 역할의 일부로 사용할 최소 정책 세트는 다음과 같습니다.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore 관리형 IAM 정책입니다. 자세한 내용은AWS Systems Manager 사용 설명서AWS Systems Manager용AWS 관리형 정책을 참조하세요.

  • arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilder 관리형 IAM 정책입니다. 자세한 내용은 Image Builder 사용 설명서EC2InstanceProfileForImageBuilder 정책을 참조하세요.

  • 추가 IAM 정책:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:CreateTags", "ec2:ModifyImageAttribute" ], "Resource": "arn:aws:ec2:<REGION>::image/*", "Effect": "Allow" } ] }

AWS Lambda 정리 역할

Build / Iam / CleanupLambdaRole

이 옵션은 사용자 지정 이미지 빌드 프로세스 중에 사용되는 모든 AWS Lambda 함수에 연결된 역할을 재정의합니다. AWS Lambda 주도자가 역할을 맡을 수 있도록 구성해야 합니다.

참고

DeploymentSettings/LambdaFunctionsVpcConfig가 설정된 경우 CleanupLambdaRole에는 VPC 구성을 설정할 수 있는 AWS Lambda 역할 권한이 포함되어야 합니다.

이 역할의 일부로 사용할 최소 정책 세트는 다음과 같습니다.

  • arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole 관리형 IAM 정책입니다. 자세한 내용은AWS Lambda 개발자 안내서에서 Lambda 기능을 위한AWS 관리형 정책을 참조하세요.

  • 추가 IAM 정책:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:DetachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePolicy" ], "Resource": "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster/*", "Effect": "Allow" }, { "Action": [ "iam:DeleteInstanceProfile", "iam:RemoveRoleFromInstanceProfile" ], "Resource": "arn:aws:iam::<AWS ACCOUNT ID>:instance-profile/parallelcluster/*", "Effect": "Allow" }, { "Action": "imagebuilder:DeleteInfrastructureConfiguration", "Resource": "arn:aws:imagebuilder:<REGION>:<AWS ACCOUNT ID>:infrastructure-configuration/parallelclusterimage-*", "Effect": "Allow" }, { "Action": [ "imagebuilder:DeleteComponent" ], "Resource": [ "arn:aws:imagebuilder:<REGION>:<AWS ACCOUNT ID>:component/parallelclusterimage-*/*" ], "Effect": "Allow" }, { "Action": "imagebuilder:DeleteImageRecipe", "Resource": "arn:aws:imagebuilder:<REGION>:<AWS ACCOUNT ID>:image-recipe/parallelclusterimage-*/*", "Effect": "Allow" }, { "Action": "imagebuilder:DeleteDistributionConfiguration", "Resource": "arn:aws:imagebuilder:<REGION>:<AWS ACCOUNT ID>:distribution-configuration/parallelclusterimage-*", "Effect": "Allow" }, { "Action": [ "imagebuilder:DeleteImage", "imagebuilder:GetImage", "imagebuilder:CancelImageCreation" ], "Resource": "arn:aws:imagebuilder:<REGION>:<AWS ACCOUNT ID>:image/parallelclusterimage-*/*", "Effect": "Allow" }, { "Action": "cloudformation:DeleteStack", "Resource": "arn:aws:cloudformation:<REGION>:<AWS ACCOUNT ID>:stack/*/*", "Effect": "Allow" }, { "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:<REGION>::image/*", "Effect": "Allow" }, { "Action": "tag:TagResources", "Resource": "*", "Effect": "Allow" }, { "Action": [ "lambda:DeleteFunction", "lambda:RemovePermission" ], "Resource": "arn:aws:lambda:<REGION>:<AWS ACCOUNT ID>:function:ParallelClusterImage-*", "Effect": "Allow" }, { "Action": "logs:DeleteLogGroup", "Resource": "arn:aws:logs:<REGION>:<AWS ACCOUNT ID>:log-group:/aws/lambda/ParallelClusterImage-*:*", "Effect": "Allow" }, { "Action": [ "SNS:GetTopicAttributes", "SNS:DeleteTopic", "SNS:GetSubscriptionAttributes", "SNS:Unsubscribe" ], "Resource": "arn:aws:sns:<REGION>:<AWS ACCOUNT ID>:ParallelClusterImage-*", "Effect": "Allow" } ] }

추가 IAM 정책

Build / Iam / AdditionalIamPolicies

이 옵션을 사용하여 EC2 Image Builder에서 사용자 지정 AMI를 생성하는 데 사용하는 EC2 인스턴스와 연결된 역할에 관리형 IAM 정책을 추가할 수 있습니다.

주의

이 옵션을 사용하려면, 연결해야 하는 IAM 정책에 대한 iam:AttachRolePolicyiam:DetachRolePolicy 권한을 AWS ParallelCluster사용자에게 부여해야 합니다.

권한 경계

Build / Iam / PermissionsBoundary

이 파라미터는 지정된 IAM 정책을 사용자 지정 AMI 빌드의 일부로 생성되는 모든 IAM 역할에 강제로 AWS ParallelCluster 연결합니다. PermissionsBoundary

이러한 기능을 사용하는 데 필요한 정책 목록은 PermissionsBoundary 모드을 참조하세요.