

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

# AWS Identity and Access Management 의 권한 AWS ParallelCluster
<a name="iam-roles-in-parallelcluster-v3"></a>

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

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

**AWS ParallelCluster 는** [Amazon EC2 인스턴스 프로파일 및 역할을](#iam-ec2-instance-role) 사용하여 클러스터 리소스 권한을 제공합니다. 클러스터 리소스 권한을 관리하려면 IAM 리소스에 대한 권한 AWS ParallelCluster 도 필요합니다. 자세한 내용은 [AWS ParallelCluster IAM 리소스 관리를 위한 사용자 예제 정책](#iam-roles-in-parallelcluster-v3-user-policy-manage-iam) 단원을 참조하십시오.

`pcluster` 사용자****는 [`pcluster`](pcluster-v3.md) CLI를 사용하여 클러스터와 해당 리소스를 생성하고 관리하려면 IAM 권한이 필요합니다. 이러한 권한은 사용자 또는 역할에 추가할 수 있는 IAM 정책에 포함됩니다. IAM 역할에 대한 자세한 정보는AWS Identity and Access Management 사용 설명서**의 [사용자 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)을 참조하세요.

[AWS ParallelCluster IAM 권한을 관리하기 위한 구성 파라미터](#iam-roles-in-parallelcluster-v3-params-for-iam)도 사용할 수 있습니다.

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

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

다음 정책 예시에는 리소스의 Amazon 리소스 이름(ARN)이 포함되어 있습니다. AWS GovCloud (US) 또는 AWS 중국 파티션에서 작업하는 경우 ARNs을 변경해야 합니다. 특히 파티션의 경우 "arn:aws"에서 "arn:aws-us-gov"로, AWS 중국 AWS GovCloud (US) 파티션의 경우 "arn:aws-cn"으로 변경해야 합니다. 자세한 내용은 *AWS GovCloud (US) 사용 설명서*의 [리전의 AWS GovCloud (US) Amazon 리소스 이름(ARNs)](https://docs.aws.amazon.com/govcloud-us/latest/UserGuide/using-govcloud-arns.html) 및 [중국에서 AWS 서비스 시작하기의 중국 내 서비스에 대한 ARNs](https://docs.amazonaws.cn/aws/latest/userguide/ARNs.html)을 참조하세요. * AWS * 

[GitHub의AWS ParallelCluster 설명서](https://github.com/awsdocs/aws-parallelcluster-user-guide/blame/main/doc_source/iam-roles-in-parallelcluster-v3.md)에서 예제 정책의 변경 사항을 추적할 수 있습니다.

**Topics**
+ [AWS ParallelCluster Amazon EC2 인스턴스 역할](#iam-ec2-instance-role)
+ [AWS ParallelCluster 예제 `pcluster` 사용자 정책](#iam-roles-in-parallelcluster-v3-example-user-policies)
+ [AWS ParallelCluster IAM 리소스 관리를 위한 사용자 예제 정책](#iam-roles-in-parallelcluster-v3-user-policy-manage-iam)
+ [AWS ParallelCluster IAM 권한을 관리하기 위한 구성 파라미터](#iam-roles-in-parallelcluster-v3-params-for-iam)

## AWS ParallelCluster Amazon EC2 인스턴스 역할
<a name="iam-ec2-instance-role"></a>

기본 구성 설정으로 클러스터를 생성할 때는 Amazon EC2 [인스턴스 프로파일을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) AWS ParallelCluster 사용하여 클러스터와 해당 리소스를 생성하고 관리하는 데 필요한 권한을 제공하는 기본 클러스터 Amazon EC2 [인스턴스 역할을](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) 자동으로 생성합니다.

### 기본 AWS ParallelCluster 인스턴스 역할 사용의 대안
<a name="iam-roles-in-parallelcluster-v3-existing-roles"></a>

기본 AWS ParallelCluster 인스턴스 역할 대신 `InstanceRole` 클러스터 구성 설정을 사용하여 EC2에 대한 기존 IAM 역할을 지정할 수 있습니다. 자세한 내용은 [AWS ParallelCluster IAM 권한을 관리하기 위한 구성 파라미터](#iam-roles-in-parallelcluster-v3-params-for-iam) 단원을 참조하십시오. 일반적으로 기존 IAM 역할을 지정하여 EC2에 부여된 권한을 완전히 제어합니다.

기본 인스턴스 역할에 추가 정책을 추가하려는 경우, [`InstanceProfile` 또는 `InstanceRole`](#iam-roles-in-parallelcluster-v3-cluster-config-headnode-instanceprofile) 설정을 사용하는 대신 [`AdditionalIamPolicies`](#iam-roles-in-parallelcluster-v3-cluster-config-additionaliampolicies) 설정을 사용하여 추가 IAM 정책을 전달하는 것이 좋습니다. 클러스터를 업데이트할 때 `AdditionalIamPolicies`를 업데이트할 수 있지만 클러스터를 업데이트할 때는 `InstanceRole`을 업데이트할 수 없습니다.

## AWS ParallelCluster 예제 `pcluster` 사용자 정책
<a name="iam-roles-in-parallelcluster-v3-example-user-policies"></a>

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

**Topics**
+ [기본 AWS ParallelCluster `pcluster` 사용자 정책](#iam-roles-in-parallelcluster-v3-base-user-policy)
+ [AWS Batch 스케줄러 사용 시 추가 AWS ParallelCluster `pcluster` 사용자 정책](#iam-roles-in-parallelcluster-v3-user-policy-batch)
+ [Amazon FSx for Lustre를 사용할 때의 추가 AWS ParallelCluster `pcluster` 사용자 정책](#iam-roles-in-parallelcluster-v3-user-policy-fsxlustre)
+ [AWS ParallelCluster 이미지 빌드 `pcluster` 사용자 정책](#iam-roles-in-parallelcluster-v3-user-policy-build-image)

### 기본 AWS ParallelCluster `pcluster` 사용자 정책
<a name="iam-roles-in-parallelcluster-v3-base-user-policy"></a>

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

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

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

------
#### [ JSON ]

****  

```
{
    "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",
                "dynamodb:UntagResource"
            ],
            "Resource": "arn:aws:dynamodb:*:{{111122223333}}: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",
                "cloudwatch:TagResource",
                "cloudwatch:UntagResource"
            ],
            "Resource": "*",
            "Effect": "Allow",
            "Sid": "CloudWatch"
        },
        {
            "Action": [
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:GetPolicy",
                "iam:SimulatePrincipalPolicy",
                "iam:GetInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:role/*",
                "arn:aws:iam::{{111122223333}}:policy/*",
                "arn:aws:iam::aws:policy/*",
                "arn:aws:iam::{{111122223333}}:instance-profile/*"
            ],
            "Effect": "Allow",
            "Sid": "IamRead"
        },
        {
            "Action": [
                "iam:CreateInstanceProfile",
                "iam:DeleteInstanceProfile",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}: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::{{111122223333}}: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:*:{{111122223333}}:function:parallelcluster-*",
                "arn:aws:lambda:*:{{111122223333}}: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:*:{{111122223333}}:*"
            ],
            "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",
                "logs:ListTagsForResource"
            ],
            "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:{{us-east-1}}:{{111122223333}}:secret:{{<SECRET NAME>}}",
            "Effect": "Allow"
        }
    ]
}
```

------

### AWS Batch 스케줄러 사용 시 추가 AWS ParallelCluster `pcluster` 사용자 정책
<a name="iam-roles-in-parallelcluster-v3-user-policy-batch"></a>

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

------
#### [ JSON ]

****  

```
{
    "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::{{111122223333}}:role/parallelcluster/*"
            ],
            "Effect": "Allow",
            "Sid": "IamPassRole"
        },
        {
            "Condition": {
                "StringEquals": {
                    "iam:AWSServiceName": [
                        "batch.amazonaws.com"
                    ]
                }
            },
            "Action": [
                "iam:CreateServiceLinkedRole",
                "iam:DeleteServiceLinkedRole"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:role/aws-service-role/batch.amazonaws.com/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "codebuild:*"
            ],
            "Resource": "arn:aws:codebuild:*:{{111122223333}}: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` 사용자 정책
<a name="iam-roles-in-parallelcluster-v3-user-policy-fsxlustre"></a>

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

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

------
#### [ JSON ]

****  

```
{
    "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:*:{{111122223333}}:*"
            ],
            "Effect": "Allow",
            "Sid": "FSx"
        },
        {
            "Action": [
                "iam:CreateServiceLinkedRole",
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::{{111122223333}}:role/aws-service-role/s3.data-source.lustre.fsx.amazonaws.com/*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:Get*",
                "s3:List*",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}",
            "Effect": "Allow"
        }
    ]
}
```

------

### AWS ParallelCluster 이미지 빌드 `pcluster` 사용자 정책
<a name="iam-roles-in-parallelcluster-v3-user-policy-build-image"></a>

를 사용하여 사용자 지정 Amazon EC2 이미지를 생성하려는 사용자는 다음과 같은 권한 집합이 AWS ParallelCluster 있어야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeImages",
                "ec2:DescribeInstanceTypeOfferings",
                "ec2:DescribeInstanceTypes",
                "ec2:DeregisterImage",
                "ec2:DeleteSnapshot"
            ],
            "Resource": "*",
            "Effect": "Allow",
            "Sid": "EC2"
        },
        {
            "Action": [
                "iam:CreateInstanceProfile",
                "iam:AddRoleToInstanceProfile",
                "iam:CreateRole",
                "iam:TagRole",
                "iam:GetRole",
                "iam:PutRolePolicy",
                "iam:GetRolePolicy",
                "iam:GetInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:instance-profile/parallelcluster/*",
                "arn:aws:iam::{{111122223333}}:instance-profile/ParallelClusterImage*",
                "arn:aws:iam::{{111122223333}}:role/parallelcluster/*"
            ],
            "Effect": "Allow",
            "Sid": "IAM"
        },
        {
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "lambda.amazonaws.com",
                        "ec2.amazonaws.com"
                    ]
                }
            },
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:instance-profile/parallelcluster/*",
                "arn:aws:iam::{{111122223333}}:role/parallelcluster/*"
            ],
            "Effect": "Allow",
            "Sid": "IAMPassRole"
        },
        {
            "Action": [
                "logs:GetLogEvents",
                "logs:CreateLogGroup",
                "logs:TagResource",
                "logs:UntagResource",
                "logs:DeleteLogGroup"
            ],
            "Resource": [
                "arn:aws:logs:*:{{111122223333}}:log-group:/aws/imagebuilder/ParallelClusterImage-*",
                "arn:aws:logs:*:{{111122223333}}:log-group:/aws/lambda/ParallelClusterImage-*"
            ],
            "Effect": "Allow",
            "Sid": "CloudWatch"
        },
        {
            "Action": [
                "cloudformation:DescribeStacks",
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:{{111122223333}}: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:*:{{111122223333}}: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:*:{{111122223333}}:image/parallelclusterimage-*",
                "arn:aws:imagebuilder:*:{{111122223333}}:image-recipe/parallelclusterimage-*",
                "arn:aws:imagebuilder:*:{{111122223333}}:component/parallelclusterimage-*",
                "arn:aws:imagebuilder:*:{{111122223333}}:distribution-configuration/parallelclusterimage-*",
                "arn:aws:imagebuilder:*:{{111122223333}}: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:*:{{111122223333}}: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 리소스 관리를 위한 사용자 예제 정책
<a name="iam-roles-in-parallelcluster-v3-user-policy-manage-iam"></a>

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

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

**Topics**
+ [권한 있는 IAM 액세스 모드](#iam-roles-in-parallelcluster-v3-privileged-iam-access)
+ [제한된 IAM 액세스 모드](#iam-roles-in-parallelcluster-v3-restricted-iam-access)
+ [`PermissionsBoundary` 모드](#iam-roles-in-parallelcluster-v3-permissionsboundary-mode)

### 권한 있는 IAM 액세스 모드
<a name="iam-roles-in-parallelcluster-v3-privileged-iam-access"></a>

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

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

**참고**  
[`HeadNode`](HeadNode-v3.md) / [`AdditionalPolicies`](HeadNode-v3.md#yaml-HeadNode-Iam-AdditionalIamPolicies) 또는 [`Iam`](HeadNode-v3.md#HeadNode-v3-Iam) / [`Scheduling`](Scheduling-v3.md) [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues) / [`Iam`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Iam) / [`AdditionalPolicies`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Iam-AdditionalIamPolicies) 파라미터를 구성하는 경우 다음 정책에 표시된 대로 각 추가 정책에 대한 역할 정책을 연결하고 분리할 수 있는 권한을 AWS ParallelCluster 사용자에게 제공해야 합니다. 역할 정책을 연결하고 분리하기 위한 조건에 추가 정책 ARN을 추가합니다.

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:CreateServiceLinkedRole",
                "iam:DeleteRole",
                "iam:TagRole",
                "iam:UntagRole"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:role/parallelcluster/*"
            ],
            "Effect": "Allow",
            "Sid": "IamRole"
        },
        {
            "Action": [
                "iam:CreateRole"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:role/parallelcluster/*"
            ],
            "Effect": "Allow",
            "Sid": "IamCreateRole"
        },
        {
            "Action": [
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy"
            ],
            "Resource": "arn:aws:iam::{{111122223333}}:role/parallelcluster/*",
            "Effect": "Allow",
            "Sid": "IamInlinePolicy"
        },
        {
            "Condition": {
                "ArnLike": {
                    "iam:PolicyARN": [
                        "arn:aws:iam::{{111122223333}}:policy/parallelcluster*",
                        "arn:aws:iam::{{111122223333}}: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::{{111122223333}}:role/parallelcluster/*",
            "Effect": "Allow",
            "Sid": "IamPolicy"
        }
    ]
}
```

------

### 제한된 IAM 액세스 모드
<a name="iam-roles-in-parallelcluster-v3-restricted-iam-access"></a>

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

클러스터를 생성할 때 다음 파라미터는 필수 파라미터입니다.
+  [`Iam`](Iam-v3.md) / [`Roles`](Iam-v3.md#yaml-Iam-Roles) / [`LambdaFunctionsRole`](Iam-v3.md#yaml-Iam-Roles-LambdaFunctionsRole)
+  [`HeadNode`](HeadNode-v3.md) / [`Iam`](HeadNode-v3.md#HeadNode-v3-Iam) / [`InstanceRole`](HeadNode-v3.md#yaml-HeadNode-Iam-InstanceRole) \| [`InstanceProfile`](HeadNode-v3.md#yaml-HeadNode-Iam-InstanceProfile)
+  [`Scheduling`](Scheduling-v3.md) / [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues) / [`Iam`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Iam) / [`InstanceRole`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Iam-InstanceRole) \| [`InstanceProfile`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Iam-InstanceProfile)

사용자 지정 이미지 빌드 시 다음 파라미터는 필수 파라미터입니다.
+ [`Build`](Build-v3.md) / [`Iam`](Build-v3.md#Build-v3-Iam) / [`InstanceRole`](Build-v3.md#yaml-build-image-Build-Iam-InstanceRole) \| [`InstanceProfile`](Build-v3.md#yaml-build-image-Build-Iam-InstanceProfile) 
+ [`Build`](Build-v3.md) / [`Iam`](Build-v3.md#Build-v3-Iam) / [`CleanupLambdaRole`](Build-v3.md#yaml-build-image-Build-Iam-CleanupLambdaRole)

위에 나열된 파라미터의 일부로 전달된 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"
}
```

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

### `PermissionsBoundary` 모드
<a name="iam-roles-in-parallelcluster-v3-permissionsboundary-mode"></a>

이 모드는 구성된 IAM 권한 경계 AWS ParallelCluster 에 바인딩된 IAM 역할의 생성을 위임합니다. IAM 권한 경계에 대한 자세한 정보는 IAM 사용 설명서**의 [IAM 엔터티에 대한 권한 경계](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)를 참조하세요.

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

정책에서 {{<permissions-boundary-arn>}}을 권한 경계로 적용할 IAM 정책 ARN으로 대체하세요.

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:CreateServiceLinkedRole",
                "iam:DeleteRole",
                "iam:TagRole"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:role/parallelcluster/*"
            ],
            "Effect": "Allow",
            "Sid": "IamRole"
        },
        {
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": [
                        "{{<permissions-boundary-arn>}}"
                    ]
                }
            },
            "Action": [
                "iam:CreateRole"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:role/parallelcluster/*"
            ],
            "Effect": "Allow",
            "Sid": "IamCreateRole"
        },
        {
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": [
                        "{{<permissions-boundary-arn>}}"
                    ]
                }
            },
            "Action": [
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy"
            ],
            "Resource": "arn:aws:iam::{{111122223333}}:role/parallelcluster/*",
            "Effect": "Allow",
            "Sid": "IamInlinePolicy"
        },
        {
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": [
                        "{{<permissions-boundary-arn>}}"
                    ]
                },
                "ArnLike": {
                    "iam:PolicyARN": [
                        "arn:aws:iam::{{111122223333}}:policy/parallelcluster*",
                        "arn:aws:iam::{{111122223333}}: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::{{111122223333}}:role/parallelcluster/*",
            "Effect": "Allow",
            "Sid": "IamPolicy"
        }
    ]
}
```

------

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

## AWS ParallelCluster IAM 권한을 관리하기 위한 구성 파라미터
<a name="iam-roles-in-parallelcluster-v3-params-for-iam"></a>

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

**Topics**
+ [클러스터 구성](#iam-roles-in-parallelcluster-v3-cluster-config)
+ [사용자 지정 이미지 구성](#iam-roles-in-parallelcluster-v3-custom-image-configuration)

### 클러스터 구성
<a name="iam-roles-in-parallelcluster-v3-cluster-config"></a>

**Topics**
+ [헤드 노드 IAM 역할](#iam-roles-in-parallelcluster-v3-cluster-config-headnode-instanceprofile)
+ [Amazon S3 액세스](#iam-roles-in-parallelcluster-v3-cluster-config-headnode-s3access)
+ [추가 IAM 정책](#iam-roles-in-parallelcluster-v3-cluster-config-additionaliampolicies)
+ [AWS Lambda 함수 역할](#iam-roles-in-parallelcluster-v3-cluster-config-lambdafunctionsrole)
+ [컴퓨팅 노드 IAM 역할](#iam-roles-in-parallelcluster-v3-cluster-config-slurmqueues-instanceprofile)
+ [권한 경계](#iam-roles-in-parallelcluster-v3-cluster-config-permissionsboundary)

#### 헤드 노드 IAM 역할
<a name="iam-roles-in-parallelcluster-v3-cluster-config-headnode-instanceprofile"></a>

[`HeadNode`](HeadNode-v3.md) / [`Iam`](HeadNode-v3.md#HeadNode-v3-Iam) / [`InstanceRole`](HeadNode-v3.md#yaml-HeadNode-Iam-InstanceRole) \| [`InstanceProfile`](HeadNode-v3.md#yaml-HeadNode-Iam-InstanceProfile)

이 옵션을 사용하면 클러스터의 헤드 노드에 할당된 기본 IAM 역할을 재정의합니다. 자세한 내용은 [`InstanceProfile`](HeadNode-v3.md#yaml-HeadNode-Iam-InstanceProfile) 자료를 참조하세요.

스케줄러가 Slurm일 때 이 역할의 일부로 사용되는 최소 정책 세트는 다음과 같습니다.
+ `arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy` 관리형 IAM 정책입니다. 자세한 내용은 Amazon CloudWatch 사용 설명서**에서 [CloudWatch 에이전트와 함께 사용할 IAM 역할 및 사용자 생성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html)을 참조하세요.
+ `arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore` 관리형 IAM 정책입니다. 자세한 내용은AWS Systems Manager 사용 설명서**의 [AWS Systems Manager용AWS 관리형 정책](https://docs.aws.amazon.com/systems-manager/latest/userguide/security_iam_service-with-iam.html#managed-policies)을 참조하세요.
+ 추가 IAM 정책:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Action": [
                  "s3:GetObject",
                  "s3:GetObjectVersion"
              ],
              "Resource": [
                  "arn:aws:s3:::{{us-east-1}}-aws-parallelcluster/*",
                  "arn:aws:s3:::dcv-license.us-east-1/*",
                  "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:{{us-east-1}}:{{111122223333}}: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::{{111122223333}}:role/parallelcluster/*",
                  "arn:aws:iam::{{111122223333}}: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:{{us-east-1}}:{{111122223333}}:instance/*",
                  "arn:aws:ec2:{{us-east-1}}:{{111122223333}}: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:{{us-east-1}}:{{111122223333}}:secret:{{<SECRET_ID>}}",
              "Effect": "Allow"
          }
      ]
  }
  ```

------

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

스케줄러가 AWS Batch일 때 이 역할의 일부로 사용할 수 있는 최소 정책 세트는 다음과 같습니다.
+ `arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy` 관리형 IAM 정책입니다. 자세한 내용은 Amazon CloudWatch 사용 설명서**에서 [CloudWatch 에이전트와 함께 사용할 IAM 역할 및 사용자 생성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html)을 참조하세요.
+ `arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore` 관리형 IAM 정책입니다. 자세한 내용은AWS Systems Manager 사용 설명서**의 [AWS Systems Manager용AWS 관리형 정책](https://docs.aws.amazon.com/systems-manager/latest/userguide/security_iam_service-with-iam.html#managed-policies)을 참조하세요.
+ 추가 IAM 정책:

------
#### [ JSON ]

****  

  ```
  {
      "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.{{us-east-1}}/*",
                  "arn:aws:s3:::{{us-east-1}}-aws-parallelcluster/*"
              ],
              "Effect": "Allow"
          },
          {
              "Condition": {
                  "StringEquals": {
                      "iam:PassedToService": [
                          "batch.amazonaws.com"
                      ]
                  }
              },
              "Action": [
                  "iam:PassRole"
              ],
              "Resource": [
                  "arn:aws:iam::{{111122223333}}:role/parallelcluster/*",
                  "arn:aws:iam::{{111122223333}}: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:{{us-east-1}}:{{111122223333}}:log-group:/aws/batch/job:log-stream:PclusterJobDefinition*",
                  "arn:aws:ecs:{{us-east-1}}:{{111122223333}}:container-instance/AWSBatch-PclusterComputeEnviron*",
                  "arn:aws:ecs:{{us-east-1}}:{{111122223333}}:cluster/AWSBatch-Pcluster*",
                  "arn:aws:batch:{{us-east-1}}:{{111122223333}}:job-queue/PclusterJobQueue*",
                  "arn:aws:batch:{{us-east-1}}:{{111122223333}}:job-definition/PclusterJobDefinition*:*",
                  "arn:aws:batch:{{us-east-1}}:{{111122223333}}:job/*"
              ],
              "Effect": "Allow"
          },
          {
              "Action": [
                  "ec2:DescribeInstances",
                  "ec2:DescribeInstanceStatus",
                  "ec2:DescribeVolumes",
                  "ec2:DescribeInstanceAttribute"
              ],
              "Resource": "*",
              "Effect": "Allow"
          },
          {
              "Action": [
                  "ec2:CreateTags",
                  "ec2:AttachVolume"
              ],
              "Resource": [
                  "arn:aws:ec2:{{us-east-1}}:{{111122223333}}:instance/*",
                  "arn:aws:ec2:{{us-east-1}}:{{111122223333}}:volume/*"
              ],
              "Effect": "Allow"
          },
          {
              "Action": [
                  "cloudformation:DescribeStackResource",
                  "cloudformation:DescribeStacks",
                  "cloudformation:SignalResource"
              ],
              "Resource": "*",
              "Effect": "Allow"
          },
          {
              "Action": "secretsmanager:GetSecretValue",
              "Resource": "arn:aws:secretsmanager:{{us-east-1}}:{{111122223333}}:secret:{{<SECRET_ID>}}",
              "Effect": "Allow"
          }
      ]
  }
  ```

------

#### Amazon S3 액세스
<a name="iam-roles-in-parallelcluster-v3-cluster-config-headnode-s3access"></a>

[`HeadNode`](HeadNode-v3.md)/[`Iam`](HeadNode-v3.md#HeadNode-v3-Iam)/[`S3Access`](HeadNode-v3.md#yaml-HeadNode-Iam-S3Access) 또는 [`Scheduling`](Scheduling-v3.md)/[`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`S3Access`](HeadNode-v3.md#yaml-HeadNode-Iam-S3Access)

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

이 파라미터는 사용자가 [권한 있는 IAM 액세스 모드](#iam-roles-in-parallelcluster-v3-privileged-iam-access) 또는 [`PermissionsBoundary` 모드](#iam-roles-in-parallelcluster-v3-permissionsboundary-mode)로 구성된 경우에만 사용할 수 있습니다.

#### 추가 IAM 정책
<a name="iam-roles-in-parallelcluster-v3-cluster-config-additionaliampolicies"></a>

[`HeadNode`](HeadNode-v3.md)/[`Iam`](HeadNode-v3.md#HeadNode-v3-Iam)/[`AdditionalIamPolicies`](HeadNode-v3.md#yaml-HeadNode-Iam-AdditionalIamPolicies) 또는 [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`Iam`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Iam)/[`AdditionalIamPolicies`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Iam-AdditionalIamPolicies)

이 옵션을 사용하면 해당 역할이 생성될 때 클러스터의 헤드 노드 또는 컴퓨팅 노드와 연결된 IAM 역할에 추가 관리형 IAM 정책을 연결할 수 있습니다 AWS ParallelCluster.

**주의**  
이 옵션을 사용하려면, 연결해야 하는 IAM 정책에 대한 `iam:AttachRolePolicy` 및 `iam:DetachRolePolicy` 권한을 [AWS ParallelCluster 사용자](#iam-roles-in-parallelcluster-v3-user-policy-manage-iam)에게 부여해야 합니다.

#### AWS Lambda 함수 역할
<a name="iam-roles-in-parallelcluster-v3-cluster-config-lambdafunctionsrole"></a>

[`Iam`](Iam-v3.md#yaml-Iam-Roles) / [`Roles`](Iam-v3.md#yaml-Iam-Roles) / [`LambdaFunctionsRole`](Iam-v3.md#yaml-Iam-Roles-LambdaFunctionsRole)

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

**참고**  
[`DeploymentSettings`](DeploymentSettings-cluster-v3.md)/[`LambdaFunctionsVpcConfig`](DeploymentSettings-cluster-v3.md#DeploymentSettings-cluster-v3-LambdaFunctionsVpcConfig)가 설정된 경우 `LambdaFunctionsRole`에는 VPC 구성을 설정할 수 있는 [AWS Lambda 역할 권한](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-permissions)이 포함되어야 합니다.

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

------
#### [ JSON ]

****  

```
{
    "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:{{us-east-1}}:{{111122223333}}: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 역할
<a name="iam-roles-in-parallelcluster-v3-cluster-config-slurmqueues-instanceprofile"></a>

[`Scheduling`](Scheduling-v3.md) / [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues) / [`Iam`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Iam) / [` InstanceRole`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Iam-InstanceRole) \| [`InstanceProfile`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Iam-InstanceProfile)

이 옵션을 사용하면 클러스터의 컴퓨팅 노드에 할당된 IAM 역할을 재정의할 수 있습니다. 자세한 내용은 [`InstanceProfile`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Iam-InstanceProfile) 단원을 참조하십시오.

이 역할의 일부로 사용할 최소 정책 세트는 다음과 같습니다.
+ `arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy` 관리형 IAM 정책입니다. 자세한 내용은 Amazon CloudWatch 사용 설명서**에서 [CloudWatch 에이전트와 함께 사용할 IAM 역할 및 사용자 생성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html)을 참조하세요.
+ `arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore` 관리형 IAM 정책입니다. 자세한 내용은AWS Systems Manager 사용 설명서**의 [AWS Systems Manager용AWS 관리형 정책](https://docs.aws.amazon.com/systems-manager/latest/userguide/security_iam_service-with-iam.html#managed-policies)을 참조하세요.
+ 추가 IAM 정책:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Action": [
                  "dynamodb:Query",
                  "dynamodb:UpdateItem",
                  "dynamodb:PutItem",
                  "dynamodb:GetItem"
              ],
              "Resource": "arn:aws:dynamodb:{{us-east-1}}:{{111122223333}}:table/parallelcluster-*",
              "Effect": "Allow"
          },
          {
              "Action": "s3:GetObject",
              "Resource": [
                  "arn:aws:s3:::{{us-east-1}}-aws-parallelcluster/*"
              ],
              "Effect": "Allow"
          },
          {
              "Action": "ec2:DescribeInstanceAttribute",
              "Resource": "*",
              "Effect": "Allow"
          },
          {
              "Action": "cloudformation:DescribeStackResource",
              "Resource": [
                  "arn:aws:cloudformation:{{us-east-1}}:{{111122223333}}:stack/*/*"
              ],
              "Effect": "Allow"
          }
      ]
  }
  ```

------

#### 권한 경계
<a name="iam-roles-in-parallelcluster-v3-cluster-config-permissionsboundary"></a>

[`Iam`](Iam-v3.md) / [`PermissionsBoundary`](Iam-v3.md#yaml-Iam-PermissionsBoundary)

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

이 설정을 정의할 때 사용자에게 필요한 정책 목록은 [`PermissionsBoundary` 모드](#iam-roles-in-parallelcluster-v3-permissionsboundary-mode)을 참조하세요.

### 사용자 지정 이미지 구성
<a name="iam-roles-in-parallelcluster-v3-custom-image-configuration"></a>

**Topics**
+ [EC2 Image Builder 인스턴스 역할](#iam-roles-in-parallelcluster-v3-custom-image-configuration-instancerole)
+ [AWS Lambda 정리 역할](#iam-roles-in-parallelcluster-v3-custom-image-configuration-cleanuplambdarole)
+ [추가 IAM 정책](#iam-roles-in-parallelcluster-v3-custom-image-configuration-additionaliampolicies)
+ [권한 경계](#iam-roles-in-parallelcluster-v3-custom-image-configuration-permissionsboundary)

#### EC2 Image Builder 인스턴스 역할
<a name="iam-roles-in-parallelcluster-v3-custom-image-configuration-instancerole"></a>

[`Build`](Build-v3.md) / [`Iam`](Build-v3.md#Build-v3-Iam) / [`InstanceRole`](Build-v3.md#yaml-build-image-Build-Iam-InstanceRole) \| [`InstanceProfile`](Build-v3.md#yaml-build-image-Build-Iam-InstanceProfile)

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

이 역할의 일부로 사용할 최소 정책 세트는 다음과 같습니다.
+ `arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore` 관리형 IAM 정책입니다. 자세한 내용은AWS Systems Manager 사용 설명서**의 [AWS Systems Manager용AWS 관리형 정책](https://docs.aws.amazon.com/systems-manager/latest/userguide/security_iam_service-with-iam.html#managed-policies)을 참조하세요.
+ `arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilder` 관리형 IAM 정책입니다. 자세한 내용은 Image Builder 사용 설명서**의 [`EC2InstanceProfileForImageBuilder` 정책](https://docs.aws.amazon.com/imagebuilder/latest/userguide/security-iam-awsmanpol.html#sec-iam-manpol-EC2InstanceProfileForImageBuilder)을 참조하세요.
+ 추가 IAM 정책:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Action": [
                  "ec2:CreateTags",
                  "ec2:ModifyImageAttribute"
              ],
              "Resource": "arn:aws:ec2:{{us-east-1}}::image/*",
              "Effect": "Allow"
          }
      ]
  }
  ```

------

#### AWS Lambda 정리 역할
<a name="iam-roles-in-parallelcluster-v3-custom-image-configuration-cleanuplambdarole"></a>

[`Build`](Build-v3.md) / [`Iam`](Build-v3.md#Build-v3-Iam) / [`CleanupLambdaRole`](Build-v3.md#yaml-build-image-Build-Iam-CleanupLambdaRole)

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

**참고**  
[`DeploymentSettings`](DeploymentSettings-build-image-v3.md)/[`LambdaFunctionsVpcConfig`](DeploymentSettings-build-image-v3.md#DeploymentSettings-build-image-v3-LambdaFunctionsVpcConfig)가 설정된 경우 `CleanupLambdaRole`에는 VPC 구성을 설정할 수 있는 [AWS Lambda 역할 권한](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-permissions)이 포함되어야 합니다.

이 역할의 일부로 사용할 최소 정책 세트는 다음과 같습니다.
+ `arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole` 관리형 IAM 정책입니다. 자세한 내용은AWS Lambda 개발자 안내서**에서 [Lambda 기능을 위한AWS 관리형 정책](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html#permissions-executionrole-features)을 참조하세요.
+ 추가 IAM 정책:

------
#### [ JSON ]

****  

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

------

#### 추가 IAM 정책
<a name="iam-roles-in-parallelcluster-v3-custom-image-configuration-additionaliampolicies"></a>

[`Build`](Build-v3.md) / [`Iam`](Build-v3.md#Build-v3-Iam) / [`AdditionalIamPolicies`](Build-v3.md#yaml-build-image-Build-Iam-AdditionalIamPolicies)

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

**주의**  
이 옵션을 사용하려면, 연결해야 하는 IAM 정책에 대한 `iam:AttachRolePolicy` 및 `iam:DetachRolePolicy` 권한을 [AWS ParallelCluster사용자](#iam-roles-in-parallelcluster-v3-user-policy-manage-iam)에게 부여해야 합니다.

#### 권한 경계
<a name="iam-roles-in-parallelcluster-v3-custom-image-configuration-permissionsboundary"></a>

[`Build`](Build-v3.md) / [`Iam`](Build-v3.md#Build-v3-Iam) / [`PermissionsBoundary`](Build-v3.md#yaml-build-image-Build-Iam-PermissionsBoundary)

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

이러한 기능을 사용하는 데 필요한 정책 목록은 [`PermissionsBoundary` 모드](#iam-roles-in-parallelcluster-v3-permissionsboundary-mode)을 참조하세요.