AWS Identity and Access Management の権限 AWS ParallelCluster - AWS ParallelCluster

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Identity and Access Management の権限 AWS ParallelCluster

AWS ParallelCluster クラスターを作成および管理するときに IAM 権限を使用してリソースへのアクセスを制御します。

AWSAWS ParallelCluster アカウントでクラスターを作成および管理するには、次の 2 つのレベルの権限が必要です。
  • クラスターを作成および管理するための pcluster CLI コマンドを呼び出すために pcluster ユーザーが必要とするアクセス許可。

  • クラスターリソースがクラスターアクションを実行するために必要なアクセス許可。

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 China パーティションで作業している場合は、ARN を変更する必要があります。具体的には、パーティションの場合は「arn: aws」から「arn:」に、 AWS GovCloud (US) 中国パーティションの場合は「arn: aws-cnaws-us-gov」に変更する必要があります。 AWS 詳細については、『AWS GovCloud (US) ユーザーガイド』の「AWS GovCloud (US) リージョンの Amazon リソースネーム (ARN)」と、「AWS中国のサービスの開始」の「 AWS 中国のサービスの ARN」を参照してください。

サンプルポリシーへの変更は、AWS ParallelCluster のドキュメントで追跡できます。 GitHub

AWS ParallelCluster EC2 インスタンスロール

デフォルトの設定でクラスターを作成すると、EC2 AWS ParallelCluster インスタンスプロファイルを使用して、クラスターとそのリソースの作成と管理に必要な権限を提供するデフォルトのクラスター EC2 インスタンスロールを自動的に作成します

AWS ParallelCluster デフォルトのインスタンスロールを使用する代わりの方法

AWS ParallelCluster デフォルトのインスタンスロールの代わりに、InstanceRoleクラスター設定を使用して EC2 用の既存の IAM ロールを指定できます。詳細については、「AWS ParallelCluster IAM 権限を管理するための設定パラメータ」を参照してください。通常、EC2 に付与されるアクセス許可を完全に制御するために、既存の IAM ロールを指定します。

デフォルトのインスタンスロールにポリシーを追加する場合は、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 ParallelClusterpclusterイメージビルドのユーザーポリシー

でカスタム 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 リソースを管理するためのユーザーサンプルポリシー

AWS ParallelCluster を使用してクラスターまたはカスタム AMI を作成する場合は、必要なアクセス権限セットをコンポーネントに付与するためのアクセス権限を含む IAM ポリシーを指定する必要があります。 AWS ParallelCluster これらの IAM リソースは、 AWS ParallelCluster クラスターやカスタムイメージの作成時に自動的に作成することも、入力として提供することもできます。

以下のモードを使用して、構成内の追加の IAM ポリシーを使用して IAM AWS ParallelCluster リソースへのアクセスに必要な権限をユーザーに付与できます。

特権 IAM アクセスモード

このモードでは、必要なすべての IAM AWS ParallelCluster リソースが自動的に作成されます。これらの IAM ポリシーは、クラスターリソースへのアクセスのみを可能にするように範囲が制限されています。

特権 IAM アクセスモードを有効にするには、ユーザーロールに以下のポリシーを追加します。

注記

HeadNode//AdditionalPoliciesまたは IamSchedulingSlurmQueuesIam///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/ パスのプレフィックスに作成する必要があります。これができない場合は、ユーザーポリシーを更新して、特定のカスタムロールに 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 モード

このモードは 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 用の管理ポリシー AWS Systems Manager」を参照してください。

  • 追加の 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 用の管理ポリシー AWS Systems Manager」を参照してください。

  • 追加の 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

警告

このオプションを使用するには、AWS ParallelCluster ユーザーに、アタッチする必要のある IAM ポリシーの iam:AttachRolePolicy および iam:DetachRolePolicy の権限が付与されていることを確認してください。

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 用の管理ポリシー AWS Systems Manager」を参照してください。

  • 追加の 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 用の管理ポリシー AWS Systems Manager」を参照してください。

  • arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilder マネージド IAM ポリシー 詳細については、「Image Builder ユーザーガイド」の「EC2InstanceProfileForImageBuilder policy」を参照してください。

  • 追加の 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 ポリシーをアタッチします。

警告

このオプションを使用するには、AWS ParallelClusterユーザーに、アタッチする必要のある IAM ポリシーの iam:AttachRolePolicy および iam:DetachRolePolicy の権限が付与されていることを確認してください。

アクセス許可の境界

Build / Iam / PermissionsBoundary

このパラメータは、 AWS ParallelCluster PermissionsBoundaryカスタムAMIビルドの一部として作成されたすべてのIAMロールに特定のIAMポリシーを強制的にアタッチします。

このような機能を使用するために必要となるポリシーのリストについては、「PermissionsBoundary モード」を参照してください。