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'
pcluster
utente per richiamare i comandipcluster
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.
pcluster
gli 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>
, sostituisci e stringhe simili con i valori appropriati.<AWS
ACCOUNT ID>
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
Puoi tenere traccia delle modifiche alle politiche di esempio nella AWS ParallelCluster
documentazione
Argomenti
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.
Argomenti
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.
Argomenti
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:
-
Build / Iam / InstanceRole | InstanceProfile
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:PassRole
autorizzazione 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
Argomenti
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/CloudWatchAgentServerPolicy
politica 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/AmazonSSMManagedInstanceCore
politica 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:PassRole
autorizzazione.
Ecco il set minimo di politiche da utilizzare come parte di questo ruolo quando lo scheduler è: AWS Batch
-
arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
politica 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/AmazonSSMManagedInstanceCore
politica 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/CloudWatchAgentServerPolicy
politica 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/AmazonSSMManagedInstanceCore
politica 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
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
Argomenti
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:
-
arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
politica IAM gestita. Per ulteriori informazioni, consulta la sezione AWS dedicata alle politiche gestite AWS Systems Manager nella Guida per AWS Systems Manager l'utente. -
arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilder
policy IAM gestita. Per ulteriori informazioni, vedere laEC2InstanceProfileForImageBuilder
politica nella Guida per l'utente di Image Builder. -
Policy IAM aggiuntiva:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:CreateTags", "ec2:ModifyImageAttribute" ], "Resource": "arn:aws:ec2:
<REGION>
::image/*", "Effect": "Allow" } ] }
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/AWSLambdaBasicExecutionRole
politica 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à.