AWS Identity and Access Management autorizzazioni in AWS ParallelCluster - AWS ParallelCluster

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS Identity and Access Management autorizzazioni in AWS ParallelCluster

AWS ParallelCluster utilizza le autorizzazioni IAM per controllare l'accesso alle risorse durante la creazione e la gestione dei cluster.

Per creare e gestire i cluster in un AWS account, sono AWS ParallelCluster necessarie autorizzazioni a due livelli:
  • Autorizzazioni richieste dall'pclusterutente per richiamare i comandi pcluster CLI per la creazione e la gestione dei cluster.

  • Autorizzazioni richieste dalle risorse del cluster per eseguire le azioni del cluster.

AWS ParallelCluster utilizza un profilo e un ruolo dell'istanza Amazon EC2 per fornire le autorizzazioni per le risorse del cluster. Per gestire le autorizzazioni delle risorse del cluster, sono necessarie AWS ParallelCluster anche le autorizzazioni per le risorse IAM. Per ulteriori informazioni, consulta AWS ParallelCluster esempi di politiche utente per la gestione delle risorse IAM.

pclustergli utenti richiedono le autorizzazioni IAM per utilizzare la pcluster CLI per creare e gestire un cluster e le relative risorse. Queste autorizzazioni sono incluse nelle policy IAM che possono essere aggiunte a un utente o a un ruolo. Per ulteriori informazioni sui ruoli IAM, consulta Creazione di un ruolo utente nella Guida per l'AWS Identity and Access Management utente.

È possibile utilizzare anche AWS ParallelCluster parametri di configurazione per gestire le autorizzazioni IAM.

Le seguenti sezioni contengono le autorizzazioni richieste con esempi.

Per utilizzare i criteri di esempio <REGION><AWS ACCOUNT ID>, sostituisci e stringhe simili con i valori appropriati.

Le seguenti politiche di esempio includono Amazon Resource Names (ARN) per le risorse. Se lavori nelle partizioni AWS GovCloud (US) o in AWS Cina, gli ARN devono essere modificati. In particolare, devono essere modificati da «arn:aws» a «arn:aws-us-gov" per la AWS GovCloud (US) partizione o «arn:aws-cn» per la partizione cinese. AWS Per ulteriori informazioni, consulta Amazon Resource Names (ARNs) in AWS GovCloud (US) Regions nella AWS GovCloud (US) User Guide e ARNs per i AWS servizi in Cina in Getting Started with AWS services in China.

Puoi tenere traccia delle modifiche alle politiche di esempio nella AWS ParallelCluster documentazione su. GitHub

AWS ParallelCluster Ruoli delle istanze Amazon EC2

Quando crei un cluster con le impostazioni di configurazione predefinite, AWS ParallelCluster utilizza i profili di istanza Amazon EC2 per creare automaticamente un ruolo di istanza Amazon EC2 del cluster predefinito che fornisce le autorizzazioni necessarie per creare e gestire il cluster e le relative risorse.

Alternative all'utilizzo del ruolo di istanza predefinito AWS ParallelCluster

Al posto del ruolo di AWS ParallelCluster istanza predefinito, puoi utilizzare l'impostazione di configurazione del InstanceRole cluster per specificare il tuo ruolo IAM esistente per EC2. Per ulteriori informazioni, consulta AWS ParallelCluster parametri di configurazione per gestire le autorizzazioni IAM. In genere, si specificano i ruoli IAM esistenti per controllare completamente le autorizzazioni concesse a EC2.

Se il tuo intento è aggiungere politiche aggiuntive al ruolo di istanza predefinito, ti consigliamo di passare le politiche IAM aggiuntive utilizzando l'impostazione di AdditionalIamPoliciesInstanceProfileconfigurazione anziché le impostazioni o. InstanceRole Puoi eseguire l'aggiornamento AdditionalIamPolicies quando aggiorni il cluster, tuttavia non puoi aggiornare InstanceRole quando aggiorni il cluster.

AWS ParallelCluster esempi di politiche pcluster utente

Gli esempi seguenti mostrano le politiche utente necessarie per creare e gestire AWS ParallelCluster e le relative risorse utilizzando la pcluster CLI. È possibile allegare politiche a un utente o a un ruolo.

Politica AWS ParallelCluster pcluster utente di base

La seguente politica mostra le autorizzazioni necessarie per eseguire AWS ParallelCluster pcluster i comandi.

L'ultima azione elencata nella policy è inclusa per fornire la convalida di tutti i segreti specificati nella configurazione del cluster. Ad esempio, un AWS Secrets Manager segreto viene utilizzato per configurare l'DirectoryServiceintegrazione. In questo caso, un cluster viene creato solo se esiste un segreto valido in PasswordSecretArn. Se questa azione viene omessa, la convalida segreta viene ignorata. Per migliorare il livello di sicurezza, si consiglia di circoscrivere questa informativa aggiungendo solo i segreti specificati nella configurazione del cluster.

Nota

Se i file system Amazon EFS esistenti sono gli unici file system utilizzati nel cluster, puoi estendere le istruzioni politiche di esempio di Amazon EFS ai file system specifici a cui si fa riferimento nel file Sezione SharedStorage di configurazione del 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" } ] }

Politica AWS ParallelCluster pcluster utente aggiuntiva quando si utilizza lo scheduler AWS Batch

Nel caso in cui sia necessario creare e gestire un cluster con AWS Batch scheduler, è richiesta la seguente politica aggiuntiva.

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

Policy AWS ParallelCluster pcluster utente aggiuntiva per l'utilizzo di Amazon FSx for Lustre

Nel caso in cui sia necessario creare e gestire un cluster con Amazon FSx for Lustre, è richiesta la seguente politica aggiuntiva.

Nota

Se i file system Amazon FSx esistenti sono gli unici file system utilizzati nel cluster, puoi limitare le dichiarazioni di policy di esempio di Amazon FSx ai file system specifici a cui si fa riferimento nel file di configurazione Sezione SharedStorage del cluster.

{ "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 policy utente di image build pcluster

Gli utenti che intendono creare immagini Amazon EC2 personalizzate con AWS ParallelCluster devono disporre del seguente set di autorizzazioni.

{ "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 esempi di politiche utente per la gestione delle risorse IAM

Quando si utilizza AWS ParallelCluster per creare cluster o AMI personalizzate, è necessario fornire politiche IAM che contengano le autorizzazioni per concedere il set di autorizzazioni richiesto ai componenti. AWS ParallelCluster Queste risorse IAM possono essere create automaticamente AWS ParallelCluster o fornite come input durante la creazione di un cluster o di un'immagine personalizzata.

Puoi utilizzare le seguenti modalità per fornire all' AWS ParallelCluster utente le autorizzazioni necessarie per accedere alle risorse IAM utilizzando politiche IAM aggiuntive nella configurazione.

Modalità di accesso IAM privilegiata

Con questa modalità, crea AWS ParallelCluster automaticamente tutte le risorse IAM necessarie. Queste policy IAM sono ridotte in modo da consentire l'accesso solo alle risorse del cluster.

Per abilitare la modalità di accesso IAM privilegiata, aggiungi la seguente policy al ruolo utente.

Nota

Se AdditionalPoliciesconfiguri i parametri HeadNodeIam//AdditionalPolicieso SchedulingSlurmQueues//Iam/, devi fornire AWS ParallelCluster all'utente l'autorizzazione ad allegare e scollegare le politiche di ruolo per ogni politica aggiuntiva, come illustrato nella seguente politica. Aggiungi gli ARN delle policy aggiuntivi alla condizione per allegare e scollegare le policy relative ai ruoli.

avvertimento

Questa modalità consente all'utente di disporre dei privilegi di amministratore IAM nel Account 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" } ] }

Modalità di accesso IAM con restrizioni

Quando all'utente non vengono concesse politiche IAM aggiuntive, i ruoli IAM richiesti dai cluster o dalla creazione di immagini personalizzate devono essere creati manualmente da un amministratore e passati come parte della configurazione del cluster.

Quando si crea un cluster sono richiesti i seguenti parametri:

Quando si crea un'immagine personalizzata, sono richiesti i seguenti parametri:

I ruoli IAM passati come parte dei parametri sopra elencati devono essere creati nel prefisso del /parallelcluster/ percorso. Se ciò non è possibile, la politica dell'utente deve essere aggiornata per concedere l'iam:PassRoleautorizzazione su ruoli personalizzati specifici, come nell'esempio seguente.

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

Attualmente questa modalità non consente la gestione dei AWS Batch cluster perché non tutti i ruoli IAM possono essere passati nella configurazione del cluster.

Modalità PermissionsBoundary

Questa modalità delega AWS ParallelCluster alla creazione di ruoli IAM associati al limite delle autorizzazioni IAM configurate. Per ulteriori informazioni sui limiti delle autorizzazioni IAM, consulta Limiti delle autorizzazioni per le entità IAM nella Guida per l'utente IAM.

La seguente policy deve essere aggiunta al ruolo utente.

Nella policy, sostituisci < permissions-boundary-arn > con l'ARN della policy IAM da applicare come limite delle autorizzazioni.

avvertimento

Se configuri i AdditionalPoliciesparametri HeadNode/Iam/AdditionalPolicieso/Scheduling/SlurmQueuesIam/, devi concedere all'utente l'autorizzazione ad allegare e scollegare le politiche di ruolo per ogni politica aggiuntiva, come illustrato nella politica seguente. Aggiungi gli ARN delle policy aggiuntivi alla condizione per allegare e scollegare le policy relative ai ruoli.

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

Quando questa modalità è abilitata, è necessario specificare il limite delle autorizzazioni ARN nel parametro di PermissionsBoundaryconfigurazione Iam/durante la creazione o l'aggiornamento di un cluster e nel PermissionBoundaryparametro Build/Iam/quando si crea un'immagine personalizzata.

AWS ParallelCluster parametri di configurazione per gestire le autorizzazioni IAM

AWS ParallelCluster espone una serie di opzioni di configurazione per personalizzare e gestire le autorizzazioni e i ruoli IAM utilizzati in un cluster o durante il processo di creazione di AMI personalizzate.

Configurazione del cluster

Ruolo IAM del nodo principale

HeadNode / Iam / InstanceRole | InstanceProfile

Con questa opzione, sostituisci il ruolo IAM predefinito assegnato al nodo principale del cluster. Per ulteriori dettagli, consulta il InstanceProfileriferimento.

Ecco il set minimo di politiche da utilizzare come parte di questo ruolo quando lo scheduler è Slurm:

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicypolitica IAM gestita. Per ulteriori informazioni, consulta Creare ruoli e utenti IAM da utilizzare con l' CloudWatch agente nella Amazon CloudWatch User Guide.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCorepolitica IAM gestita. Per ulteriori informazioni, consulta la sezione AWS dedicata alle politiche gestite AWS Systems Manager nella Guida per AWS Systems Manager l'utente.

  • Policy IAM aggiuntiva:

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

Nota che nel caso in cui SchedulingSlurmQueues/Iam//InstanceRolevenga utilizzato per sovrascrivere il ruolo IAM di calcolo, la policy del nodo principale riportata sopra deve includere tale ruolo nella Resource sezione dell'iam:PassRoleautorizzazione.

Ecco il set minimo di politiche da utilizzare come parte di questo ruolo quando lo scheduler è: AWS Batch

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicypolitica IAM gestita. Per ulteriori informazioni, consulta Creare ruoli e utenti IAM da utilizzare con l' CloudWatch agente nella Amazon CloudWatch User Guide.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCorepolitica IAM gestita. Per ulteriori informazioni, consulta la sezione AWS dedicata alle politiche gestite AWS Systems Manager nella Guida per AWS Systems Manager l'utente.

  • Policy IAM aggiuntiva:

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

Accesso ad Amazon S3

HeadNode/Iam/S3Accessoppure Scheduling//SlurmQueuesS3Access

In queste sezioni di configurazione, puoi personalizzare l'accesso ad Amazon S3 concedendo policy Amazon S3 aggiuntive ai ruoli IAM associati al nodo principale o ai nodi di calcolo del cluster quando tali ruoli vengono creati da. AWS ParallelCluster Per ulteriori informazioni, consulta la documentazione di riferimento per ogni parametro di configurazione.

Questo parametro può essere utilizzato solo quando l'utente è configurato con Modalità di accesso IAM privilegiata oModalità PermissionsBoundary.

Politiche IAM aggiuntive

HeadNode/Iam/AdditionalIamPolicieso SlurmQueues/Iam/AdditionalIamPolicies

Utilizza questa opzione per allegare politiche IAM gestite aggiuntive ai ruoli IAM associati al nodo principale o ai nodi di calcolo del cluster quando tali ruoli vengono creati da AWS ParallelCluster.

avvertimento

Per utilizzare questa opzione, assicurati che all'AWS ParallelCluster utente siano iam:AttachRolePolicy concesse iam:DetachRolePolicy le autorizzazioni per le policy IAM che devono essere allegate.

AWS Lambda funzioni, ruolo

Iam / Roles / LambdaFunctionsRole

Questa opzione sovrascrive il ruolo associato a tutte le AWS Lambda funzioni utilizzate durante il processo di creazione del cluster. AWS Lambda deve essere configurato come principale autorizzato ad assumere il ruolo.

Nota

Se DeploymentSettings/LambdaFunctionsVpcConfigè impostato, LambdaFunctionsRole deve includere l'autorizzazione del AWS Lambda ruolo per impostare la configurazione del VPC.

Ecco il set minimo di politiche da utilizzare come parte di questo ruolo:

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

Nodi di calcolo (ruolo IAM)

Scheduling / SlurmQueues / Iam / InstanceRole | InstanceProfile

Questa opzione consente di sovrascrivere il ruolo IAM assegnato ai nodi di calcolo del cluster. Per ulteriori informazioni, consulta InstanceProfile.

Ecco il set minimo di policy da utilizzare come parte di questo ruolo:

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicypolitica IAM gestita. Per ulteriori informazioni, consulta Creare ruoli e utenti IAM da utilizzare con l' CloudWatchagente nella Amazon CloudWatch User Guide.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCorepolitica IAM gestita. Per ulteriori informazioni, consulta la sezione AWS dedicata alle politiche gestite AWS Systems Manager nella Guida per AWS Systems Manager l'utente.

  • Policy IAM aggiuntiva:

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

Limite delle autorizzazioni

Iam / PermissionsBoundary

Questo parametro impone AWS ParallelCluster di associare la policy IAM specificata come PermissionsBoundary a tutti i ruoli IAM creati come parte di una distribuzione del cluster.

Vedi Modalità PermissionsBoundary l'elenco delle politiche richieste dall'utente quando viene definita questa impostazione.

Configurazione personalizzata dell'immagine

Ruolo di istanza per EC2 Image Builder

Build / Iam / InstanceRole | InstanceProfile

Con questa opzione sovrascrivi il ruolo IAM assegnato all'istanza Amazon EC2 lanciata da EC2 Image Builder per creare un'AMI personalizzata.

Ecco il set minimo di policy da utilizzare come parte di questo ruolo:

AWS Lambda ruolo di pulizia

Build / Iam / CleanupLambdaRole

Questa opzione sostituisce il ruolo associato a tutte le AWS Lambda funzioni utilizzate durante il processo di creazione dell'immagine personalizzata. AWS Lambda deve essere configurato come principale autorizzato ad assumere il ruolo.

Nota

Se DeploymentSettings/LambdaFunctionsVpcConfigè impostato, CleanupLambdaRole deve includere l'autorizzazione del AWS Lambda ruolo per impostare la configurazione del VPC.

Ecco il set minimo di politiche da utilizzare come parte di questo ruolo:

  • arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRolepolitica IAM gestita. Per ulteriori informazioni, consulta le politiche AWS gestite per le funzionalità Lambda nella Guida per gli AWS Lambda sviluppatori.

  • Policy IAM aggiuntiva:

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

Politiche IAM aggiuntive

Build / Iam / AdditionalIamPolicies

Questa opzione viene utilizzata per allegare ulteriori policy IAM gestite al ruolo associato all'istanza Amazon EC2 utilizzata da EC2 Image Builder per produrre l'AMI personalizzata.

avvertimento

Per utilizzare questa opzione, assicurati che AWS ParallelCluster all'utente siano iam:AttachRolePolicy concesse iam:DetachRolePolicy le autorizzazioni per le policy IAM che devono essere allegate.

Limite delle autorizzazioni

Build / Iam / PermissionsBoundary

Questo parametro impone AWS ParallelCluster di allegare la policy IAM specificata come PermissionsBoundary a a tutti i ruoli IAM creati come parte di una build AMI personalizzata.

Vedi Modalità PermissionsBoundary l'elenco delle politiche necessarie per utilizzare tale funzionalità.