AWS Identity and Access Management izin di AWS ParallelCluster - AWS ParallelCluster

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS Identity and Access Management izin di AWS ParallelCluster

AWS ParallelCluster menggunakan izin IAM untuk mengontrol akses ke sumber daya saat membuat dan mengelola cluster.

Untuk membuat dan mengelola cluster di AWS akun, AWS ParallelCluster memerlukan izin di dua tingkat:
  • Izin yang diperlukan pcluster pengguna untuk menjalankan perintah pcluster CLI untuk membuat dan mengelola cluster.

  • Izin yang diperlukan sumber daya cluster untuk melakukan tindakan klaster.

AWS ParallelCluster menggunakan profil dan peran instans Amazon EC2 untuk memberikan izin sumber daya kluster. Untuk mengelola izin sumber daya cluster, AWS ParallelCluster juga memerlukan izin ke sumber daya IAM. Untuk informasi selengkapnya, lihat AWS ParallelCluster kebijakan contoh pengguna untuk mengelola sumber daya IAM.

pclusterpengguna memerlukan izin IAM untuk menggunakan pcluster CLI untuk membuat dan mengelola cluster dan sumber dayanya. Izin ini disertakan dalam kebijakan IAM yang dapat ditambahkan ke pengguna atau peran. Untuk informasi selengkapnya tentang peran IAM, lihat Membuat peran pengguna di Panduan AWS Identity and Access Management Pengguna.

Anda juga bisa menggunakanAWS ParallelCluster parameter konfigurasi untuk mengelola izin IAM.

Bagian berikut berisi izin yang diperlukan dengan contoh.

Untuk menggunakan contoh kebijakan, ganti <REGION><AWS ACCOUNT ID>, dan string serupa dengan nilai yang sesuai.

Contoh kebijakan berikut mencakup Amazon Resource Names (ARN) untuk sumber daya. Jika Anda bekerja di partisi AWS GovCloud (US) atau AWS China, ARN harus diubah. Secara khusus, mereka harus diubah dari “arn:aws” menjadi “arn:aws-us-gov" untuk AWS GovCloud (US) partisi atau “arn:aws-cn” untuk partisi China. AWS Untuk informasi selengkapnya, lihat Nama Sumber Daya Amazon (ARN) di AWS GovCloud (US) Wilayah di Panduan AWS GovCloud (US) Pengguna dan ARN untuk AWS layanan di Tiongkok dalam Memulai AWS layanan di Tiongkok.

Anda dapat melacak perubahan pada contoh kebijakan dalam AWS ParallelCluster dokumentasi pada GitHub.

AWS ParallelCluster Peran instans Amazon EC2

Saat Anda membuat klaster dengan pengaturan konfigurasi default, AWS ParallelCluster gunakan profil instans Amazon EC2 untuk secara otomatis membuat peran instans Amazon EC2 klaster default yang menyediakan izin yang diperlukan untuk membuat dan mengelola klaster dan sumber dayanya.

Alternatif untuk menggunakan peran AWS ParallelCluster instance default

Sebagai pengganti peran AWS ParallelCluster instans default, Anda dapat menggunakan pengaturan konfigurasi InstanceRole cluster untuk menentukan peran IAM Anda sendiri yang ada untuk EC2. Untuk informasi selengkapnya, lihat AWS ParallelCluster parameter konfigurasi untuk mengelola izin IAM. Biasanya, Anda menentukan peran IAM yang ada untuk sepenuhnya mengontrol izin yang diberikan kepada EC2.

Jika maksud Anda adalah menambahkan kebijakan tambahan ke peran instans default, sebaiknya Anda meneruskan kebijakan IAM tambahan dengan menggunakan setelan AdditionalIamPolicieskonfigurasi, bukan setelan InstanceProfileatau InstanceRole setelan. Anda dapat memperbarui AdditionalIamPolicies saat memperbarui klaster, namun, Anda tidak dapat memperbarui InstanceRole saat memperbarui klaster.

AWS ParallelCluster contoh kebijakan pcluster pengguna

Contoh berikut menunjukkan kebijakan pengguna yang diperlukan untuk membuat dan mengelola AWS ParallelCluster dan sumber dayanya dengan menggunakan pcluster CLI. Anda dapat melampirkan kebijakan ke pengguna atau peran.

Kebijakan AWS ParallelCluster pcluster pengguna dasar

Kebijakan berikut menunjukkan izin yang diperlukan untuk menjalankan AWS ParallelCluster pcluster perintah.

Tindakan terakhir yang tercantum dalam kebijakan disertakan untuk memberikan validasi rahasia apa pun yang ditentukan dalam konfigurasi klaster. Misalnya, AWS Secrets Manager rahasia digunakan untuk mengkonfigurasi DirectoryServiceintegrasi. Dalam hal ini, sebuah cluster dibuat hanya jika ada rahasia yang valid di PasswordSecretArn. Jika tindakan ini dihilangkan, validasi rahasia dilewati. Untuk meningkatkan postur keamanan Anda, sebaiknya Anda mencatat pernyataan kebijakan ini dengan hanya menambahkan rahasia yang ditentukan dalam konfigurasi klaster Anda.

catatan

Jika sistem file Amazon EFS yang ada adalah satu-satunya sistem file yang digunakan di klaster Anda, Anda dapat mencatat contoh pernyataan kebijakan Amazon EFS ke sistem file tertentu yang direferensikan Bagian SharedStorage dalam file konfigurasi cluster.

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

Kebijakan AWS ParallelCluster pcluster pengguna tambahan saat menggunakan AWS Batch scheduler

Jika Anda perlu membuat dan mengelola klaster dengan AWS Batch penjadwal, kebijakan tambahan berikut diperlukan.

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

Kebijakan AWS ParallelCluster pcluster pengguna tambahan saat menggunakan Amazon FSx for Lustre

Jika Anda perlu membuat dan mengelola klaster dengan Amazon FSx for Lustre, kebijakan tambahan berikut diperlukan.

catatan

Jika sistem file Amazon FSx yang ada adalah satu-satunya sistem file yang digunakan dalam klaster Anda, Anda dapat mencatat contoh pernyataan kebijakan Amazon FSx ke sistem file tertentu yang direferensikan dalam file konfigurasi cluster. Bagian 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 kebijakan pcluster pengguna build image

Pengguna yang ingin membuat gambar Amazon EC2 khusus AWS ParallelCluster harus memiliki serangkaian izin berikut.

{ "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 kebijakan contoh pengguna untuk mengelola sumber daya IAM

Saat menggunakan AWS ParallelCluster untuk membuat klaster atau AMI kustom, kebijakan IAM harus disediakan yang berisi izin untuk memberikan kumpulan izin yang diperlukan ke komponen. AWS ParallelCluster Sumber daya IAM ini dapat dibuat secara otomatis oleh AWS ParallelCluster atau disediakan sebagai input saat membuat cluster atau gambar khusus.

Anda dapat menggunakan mode berikut untuk memberi AWS ParallelCluster pengguna izin yang diperlukan untuk mengakses sumber daya IAM dengan menggunakan kebijakan IAM tambahan dalam konfigurasi.

Mode akses IAM istimewa

Dengan mode ini, AWS ParallelCluster secara otomatis membuat semua sumber daya IAM yang diperlukan. Kebijakan IAM ini dicakup untuk mengaktifkan akses ke sumber daya cluster saja.

Untuk mengaktifkan mode akses IAM Privileged, tambahkan kebijakan berikut ke peran pengguna.

catatan

Jika Anda mengonfigurasi AdditionalPoliciesparameter HeadNodeIam/SchedulingSlurmQueues/AdditionalPoliciesatau Iam///, Anda harus memberi AWS ParallelCluster pengguna izin untuk melampirkan dan melepaskan kebijakan peran untuk setiap kebijakan tambahan seperti yang ditunjukkan dalam kebijakan berikut. Tambahkan ARN kebijakan tambahan ke kondisi untuk melampirkan dan melepaskan kebijakan peran.

Awas

Mode ini memungkinkan pengguna untuk memiliki hak Administrator IAM di Akun 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" } ] }

Mode akses IAM terbatas

Jika tidak ada kebijakan IAM tambahan yang diberikan kepada pengguna, peran IAM yang diperlukan oleh cluster atau pembuatan gambar kustom harus dibuat secara manual oleh administrator dan diteruskan sebagai bagian dari konfigurasi cluster.

Saat membuat cluster, parameter berikut diperlukan:

Saat membuat gambar khusus, parameter berikut diperlukan:

Peran IAM yang diteruskan sebagai bagian dari parameter yang tercantum di atas harus dibuat pada awalan /parallelcluster/ jalur. Jika ini tidak memungkinkan, kebijakan pengguna perlu diperbarui untuk memberikan iam:PassRole izin pada peran kustom tertentu, seperti pada contoh berikut.

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

Saat ini mode ini tidak memungkinkan pengelolaan AWS Batch cluster karena tidak semua peran IAM dapat diteruskan dalam konfigurasi cluster.

PermissionsBoundarymodus

Mode ini mendelegasikan AWS ParallelCluster pembuatan peran IAM yang terikat pada batas izin IAM yang dikonfigurasi. Untuk informasi selengkapnya tentang batas izin IAM, lihat Batas izin untuk entitas IAM di Panduan Pengguna IAM.

Kebijakan berikut perlu ditambahkan ke peran pengguna.

Dalam kebijakan tersebut, ganti < permissions-boundary-arn > dengan ARN kebijakan IAM yang akan diberlakukan sebagai batas izin.

Awas

Jika Anda mengonfigurasi AdditionalPoliciesparameter HeadNodeIam//AdditionalPoliciesatau SchedulingSlurmQueues/Iam//, Anda harus memberikan izin kepada pengguna untuk melampirkan dan melepaskan kebijakan peran untuk setiap kebijakan tambahan seperti yang ditunjukkan dalam kebijakan berikut. Tambahkan ARN kebijakan tambahan ke kondisi untuk melampirkan dan melepaskan kebijakan peran.

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

Saat mode ini diaktifkan, Anda harus menentukan batas izin ARN di Iamparameter konfigurasi PermissionsBoundary/saat membuat atau memperbarui cluster dan parameter Iam/PermissionBoundary/saat membuat gambar khusus. Build

AWS ParallelCluster parameter konfigurasi untuk mengelola izin IAM

AWS ParallelCluster mengekspos serangkaian opsi konfigurasi untuk menyesuaikan dan mengelola izin dan peran IAM yang digunakan dalam klaster atau selama proses pembuatan AMI kustom.

Konfigurasi cluster

Peran IAM simpul kepala

HeadNode / Iam / InstanceRole | InstanceProfile

Dengan opsi ini, Anda mengganti peran IAM default yang ditetapkan ke node kepala klaster. Untuk detail tambahan, silakan merujuk ke InstanceProfilereferensi.

Berikut adalah kumpulan kebijakan minimal yang akan digunakan sebagai bagian dari peran ini ketika penjadwal adalah Slurm:

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicykebijakan IAM terkelola. Untuk informasi selengkapnya, lihat Membuat peran IAM dan pengguna untuk digunakan dengan CloudWatch agen di Panduan CloudWatch Pengguna Amazon.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCorekebijakan IAM terkelola. Untuk informasi selengkapnya, lihat kebijakan AWS terkelola AWS Systems Manager di Panduan AWS Systems Manager Pengguna.

  • Kebijakan IAM tambahan:

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

Perhatikan bahwa jika Scheduling//SlurmQueues/Iam/InstanceRoledigunakan untuk mengganti peran IAM komputasi, kebijakan simpul kepala yang dilaporkan di atas perlu menyertakan peran tersebut di Resource bagian izin. iam:PassRole

Berikut adalah kumpulan kebijakan minimal yang akan digunakan sebagai bagian dari peran ini saat penjadwal adalah AWS Batch:

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicykebijakan IAM terkelola. Untuk informasi selengkapnya, lihat Membuat peran IAM dan pengguna untuk digunakan dengan CloudWatch agen di Panduan CloudWatch Pengguna Amazon.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCorekebijakan IAM terkelola. Untuk informasi selengkapnya, lihat kebijakan AWS terkelola AWS Systems Manager di Panduan AWS Systems Manager Pengguna.

  • Kebijakan IAM tambahan:

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

Akses Amazon S3

HeadNode/Iam/S3Accessatau Scheduling/SlurmQueues/S3Access

Di bagian konfigurasi ini, Anda dapat menyesuaikan akses Amazon S3 dengan memberikan kebijakan Amazon S3 tambahan ke peran IAM yang terkait dengan node kepala atau node komputasi klaster saat peran tersebut dibuat oleh. AWS ParallelCluster Untuk informasi selengkapnya, lihat dokumentasi referensi untuk setiap parameter konfigurasi.

Parameter ini hanya dapat digunakan ketika pengguna dikonfigurasi dengan Mode akses IAM istimewa atauPermissionsBoundarymodus.

Kebijakan IAM tambahan

HeadNode/Iam/AdditionalIamPoliciesatau SlurmQueues/Iam/AdditionalIamPolicies

Gunakan opsi ini untuk melampirkan kebijakan IAM terkelola tambahan ke peran IAM yang terkait dengan node kepala atau node komputasi klaster saat peran tersebut dibuat oleh. AWS ParallelCluster

Awas

Untuk menggunakan opsi ini, pastikan AWS ParallelCluster pengguna diberikan iam:AttachRolePolicy dan iam:DetachRolePolicy izin untuk kebijakan IAM yang perlu dilampirkan.

AWS Lambda peran fungsi

Iam / Roles / LambdaFunctionsRole

Opsi ini mengesampingkan peran yang dilampirkan ke semua AWS Lambda fungsi yang digunakan selama proses pembuatan cluster. AWS Lambda perlu dikonfigurasi sebagai kepala sekolah diizinkan untuk mengambil peran.

catatan

Jika DeploymentSettings/LambdaFunctionsVpcConfigdisetel, LambdaFunctionsRole harus menyertakan izin AWS Lambda peran untuk mengatur konfigurasi VPC.

Berikut adalah seperangkat kebijakan minimal yang akan digunakan sebagai bagian dari peran ini:

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

Hitung peran IAM node

Scheduling / SlurmQueues / Iam / InstanceRole | InstanceProfile

Opsi ini memungkinkan untuk mengganti peran IAM yang ditetapkan ke node komputasi cluster. Untuk informasi selengkapnya, lihat InstanceProfile.

Berikut adalah seperangkat kebijakan minimal yang akan digunakan sebagai bagian dari peran ini:

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicykebijakan IAM terkelola. Untuk informasi selengkapnya, lihat Membuat peran IAM dan pengguna untuk digunakan dengan CloudWatch agen di Panduan CloudWatch Pengguna Amazon.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCorekebijakan IAM terkelola. Untuk informasi selengkapnya, lihat kebijakan AWS terkelola AWS Systems Manager di Panduan AWS Systems Manager Pengguna.

  • Kebijakan IAM tambahan:

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

Batas izin

Iam / PermissionsBoundary

Parameter ini memaksa AWS ParallelCluster untuk melampirkan kebijakan IAM yang diberikan sebagai a PermissionsBoundary ke semua peran IAM yang dibuat sebagai bagian dari penerapan cluster.

Lihat PermissionsBoundarymodus daftar kebijakan yang diperlukan oleh pengguna saat setelan ini ditentukan.

Konfigurasi Gambar Kustom

Peran instans untuk EC2 Image Builder

Build / Iam / InstanceRole | InstanceProfile

Dengan opsi ini, Anda mengganti peran IAM yang ditetapkan ke instans Amazon EC2 yang diluncurkan oleh EC2 Image Builder untuk membuat AMI kustom.

Berikut adalah seperangkat kebijakan minimal yang akan digunakan sebagai bagian dari peran ini:

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCorekebijakan IAM terkelola. Untuk informasi selengkapnya, lihat kebijakan AWS terkelola AWS Systems Manager di Panduan AWS Systems Manager Pengguna.

  • arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilderkebijakan IAM terkelola. Untuk informasi selengkapnya, lihat EC2InstanceProfileForImageBuilderkebijakan di Panduan Pengguna Image Builder.

  • Kebijakan IAM tambahan:

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

AWS Lambda peran pembersihan

Build / Iam / CleanupLambdaRole

Opsi ini mengesampingkan peran yang dilampirkan ke semua AWS Lambda fungsi yang digunakan selama proses pembuatan gambar kustom. AWS Lambda perlu dikonfigurasi sebagai kepala sekolah diizinkan untuk mengambil peran.

catatan

Jika DeploymentSettings/LambdaFunctionsVpcConfigdisetel, CleanupLambdaRole harus menyertakan izin AWS Lambda peran untuk mengatur konfigurasi VPC.

Berikut adalah seperangkat kebijakan minimal yang akan digunakan sebagai bagian dari peran ini:

  • arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRolekebijakan IAM terkelola. Untuk informasi selengkapnya, lihat kebijakan AWS terkelola untuk fitur Lambda di Panduan AWS Lambda Pengembang.

  • Kebijakan IAM tambahan:

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

Kebijakan IAM tambahan

Build / Iam / AdditionalIamPolicies

Anda menggunakan opsi ini untuk melampirkan kebijakan IAM terkelola tambahan ke peran yang terkait dengan instans Amazon EC2 yang digunakan oleh EC2 Image Builder untuk menghasilkan AMI kustom.

Awas

Untuk menggunakan opsi ini, pastikan AWS ParallelCluster pengguna diberikan iam:AttachRolePolicy dan iam:DetachRolePolicy izin untuk kebijakan IAM yang perlu dilampirkan.

Batas izin

Build / Iam / PermissionsBoundary

Parameter ini memaksa AWS ParallelCluster untuk melampirkan kebijakan IAM yang diberikan sebagai a PermissionsBoundary ke semua peran IAM yang dibuat sebagai bagian dari build AMI kustom.

Lihat PermissionsBoundarymodus daftar kebijakan yang diperlukan untuk menggunakan fungsionalitas tersebut.