翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS ParallelCluster の AWS Identity and Access Management アクセス許可
AWS ParallelCluster は、クラスターを作成および管理する際に、IAM アクセス許可を使用してリソースへのアクセスを制御します。
AWS アカウントでクラスターを作成および管理するには、AWS ParallelCluster に次の 2 つのレベルのアクセス許可が必要です。
-
クラスターを作成および管理するための
pcluster
CLI コマンドを呼び出すためにpcluster
ユーザーが必要とするアクセス許可。 -
クラスターリソースがクラスターアクションを実行するために必要なアクセス許可。
AWS ParallelCluster は Amazon EC2 インスタンスプロファイルおよびロールを使用して、クラスターリソースにアクセス許可を付与します。クラスターリソースのアクセス許可を管理するために、AWS ParallelCluster には IAM リソースへのアクセス許可も必要です。詳細については、「IAM リソースを管理するための AWS ParallelCluster ユーザーサンプルポリシー」を参照してください。
pcluster
ユーザーが pcluster CLI を使用してクラスターとそのリソースを作成および管理するには、IAM アクセス許可が必要です。これらのアクセス許可は IAM ポリシーに含まれており、ユーザーまたはロールに追加できます。IAM ロールの詳細については、「AWS Identity and Access Management ユーザーガイド」の「ユーザーロールの作成」を参照してください。
IAM アクセス許可を管理するための AWS ParallelCluster 設定パラメータ を使用することもできます。
以下のセクションでは、必要なアクセス許可について、例を挙げて説明します。
ポリシーの例を使用するには、
、<REGION>
などの文字列を適切な値に置き換えます。<AWS
ACCOUNT ID>
次のポリシーの例では、リソースの Amazon リソースネーム (ARN) が含まれています。AWS GovCloud (US) または AWS 中国パーティションで作業する場合は、ARN を変更する必要があります。具体的には、AWS GovCloud (US) パーティションの場合は「arn:aws」から「arn:aws-us-gov」、AWS 中国パーティションの場合は「arn:aws-cn」に変更する必要があります。詳しくは、「AWS GovCloud (US) ユーザーガイド」にある「Amazon Resource Names (ARNs) in AWS GovCloud (US) Regions」および「中国での AWS サービスの使用開始」にある「ARNs for AWS services in China
ポリシーの例への変更は、「AWS ParallelCluster documentation on GitHub
トピック
AWS ParallelCluster Amazon EC2 インスタンスロール
デフォルトの設定でクラスターを作成すると、AWS ParallelCluster は Amazon EC2 インスタンスプロファイルを使用して、クラスターとそのリソースの作成と管理に必要なアクセス許可を付与するデフォルトのクラスター Amazon EC2 インスタンスロールを自動的に作成します。
デフォルトの AWS ParallelCluster インスタンスロールを使用する以外の代わりの方法
デフォルトの AWS ParallelCluster インスタンスロールの代わりに、InstanceRole
クラスター構成設定を使用して EC2 に既存の IAM ロールを指定できます。詳細については、「IAM アクセス許可を管理するための AWS ParallelCluster 設定パラメータ」を参照してください。通常、EC2 に付与されるアクセス許可を完全に制御するために、既存の IAM ロールを指定します。
デフォルトのインスタンスロールにポリシーを追加する場合は、InstanceProfile または InstanceRole 設定の代わりに AdditionalIamPolicies 構成設定を使用して追加の IAM ポリシーを渡すことをお勧めします。クラスターを更新するときに AdditionalIamPolicies
を更新することはできますが、InstanceRole
を更新することはできません。
pcluster
ユーザーポリシーの AWS ParallelCluster の例
次の例は、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
ユーザーポリシー
AWS ParallelCluster を使用してカスタム Amazon EC2 イメージを作成するユーザーには、以下のアクセス許可のセットが必要です。
{ "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" } } } ] }
IAM リソースを管理するための AWS ParallelCluster ユーザーサンプルポリシー
AWS ParallelCluster を使用してクラスターやカスタム AMI を作成する場合、AWS ParallelCluster コンポーネントに必要な一連の許可を付与するための権限を含む IAM ポリシーを提供する必要があります。これらの IAM リソースは、AWS ParallelCluster によって自動的に作成されるか、クラスターまたはカスタムイメージの作成時に入力として提供されます。
以下のモードを使用して、設定で追加の IAM ポリシーを使用して IAM リソースへのアクセスに必要なアクセス許可を AWS ParallelCluster ユーザーに付与できます。
特権 IAM アクセスモード
このモードでは、AWS ParallelCluster が、必要な IAM リソースを自動的に作成します。これらの IAM ポリシーは、クラスターリソースへのアクセスのみを可能にするように範囲が制限されています。
特権 IAM アクセスモードを有効にするには、ユーザーロールに以下のポリシーを追加します。
注記
HeadNode/Iam/AdditionalPolicies または Scheduling/SlurmQueues/Iam/AdditionalPolicies パラメータを設定する場合、以下のポリシーに示すように、追加ポリシーごとにロールポリシーをアタッチおよびデタッチする権限を AWS ParallelCluster ユーザーに付与する必要があります。ロールポリシーをアタッチおよびデタッチするための条件に、追加のポリシー ARN を追加します。
警告
このモードでは、ユーザーは AWS アカウントで IAM 管理者権限を持つことができます。
{ "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 ロールは、管理者が手動で作成し、クラスター構成の一部として渡す必要があります。
クラスターを作成する際には、以下のパラメータが必要です。
カスタムイメージを構築する際には、以下のパラメータが必要です。
-
Build / Iam / InstanceRole | InstanceProfile
上記のパラメータの一部として渡された 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
モード
このモードでは、設定済みの IAM アクセス許可の境界にバインドされた IAM ロールの作成を AWS ParallelCluster に委任します。アクセス許可の境界の詳細については、「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 を指定する必要があります。
IAM アクセス許可を管理するための AWS ParallelCluster 設定パラメータ
AWS ParallelCluster は、クラスター内やカスタム AMI の作成プロセスで使用される IAM アクセス許可およびロールをカスタマイズおよび管理するための一連の設定オプションを公開しています。
クラスターの設定
ヘッドノードの IAM ロール
HeadNode / Iam / InstanceRole | InstanceProfile
このオプションでは、クラスターのヘッドノードに割り当てられているデフォルトの IAM ロールを上書きすることができます。詳細については、「InstanceProfile リファレンス」を参照してください。
スケジューラが Slurm の場合、このロールの一部として使用されるポリシーの最小セットを以下に示します。
-
arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
マネージド IAM ポリシー 詳細については、「Amazon CloudWatch ユーザーガイド」の「CloudWatch エージェントで使用する IAM ロールとユーザーを作成する」を参照してください。 -
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 ユーザーガイド」の「CloudWatch エージェントで使用する IAM ロールとユーザーを作成する」を参照してください。 -
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 ロールが AWS ParallelCluster によって作成された場合、そのロールに追加のマネージド IAM ポリシーをアタッチします。
警告
このオプションを使用するには、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 ユーザーガイド」の「CloudWatch エージェントで使用する IAM ロールとユーザーを作成する」を参照してください。 -
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" } ] }
アクセス許可の境界
このパラメータは、AWS ParallelCluster がクラスター展開の一部として作成されたすべての IAM ロールに PermissionsBoundary
として指定された IAM ポリシーをアタッチするように強制します。
この設定を定義する際にユーザーが必要とするポリシーのリストについては、PermissionsBoundary モード を参照してください。
カスタムイメージ構成
EC2 Image Builder のインスタンスロール
Build / Iam / InstanceRole | InstanceProfile
このオプションでは、EC2 Image Builder で起動した Amazon 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 を生成するために使用する Amazon EC2 インスタンスに関連付けられたロールに、追加のマネージド IAM ポリシーをアタッチします。
警告
このオプションを使用するには、AWS ParallelCluster ユーザーに、アタッチする必要のある IAM ポリシーの iam:AttachRolePolicy
および iam:DetachRolePolicy
の権限が付与されていることを確認してください。
アクセス許可の境界
Build / Iam / PermissionsBoundary
このパラメータは、AWS ParallelCluster がカスタム AMI ビルドの一部として作成されるすべての IAM ロールに PermissionsBoundary
として指定された IAM ポリシーをアタッチするように強制します。
このような機能を使用するために必要となるポリシーのリストについては、「PermissionsBoundary モード」を参照してください。