AWS Identity and Access Management permissões em AWS ParallelCluster - AWS ParallelCluster

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS Identity and Access Management permissões em AWS ParallelCluster

AWS ParallelCluster usa permissões do IAM para controlar o acesso aos recursos ao criar e gerenciar clusters.

Para criar e gerenciar clusters em uma AWS conta, são AWS ParallelCluster necessárias permissões em dois níveis:
  • Permissões que o usuário pcluster precisa para invocar os comandos pcluster da CLI para criar e gerenciar clusters.

  • Permissões que os recursos do cluster exigem para realizar ações do cluster.

AWS ParallelCluster usa um perfil e uma função de instância do Amazon EC2 para fornecer permissões de recursos de cluster. Para gerenciar as permissões dos recursos do cluster, AWS ParallelCluster também são necessárias permissões para os recursos do IAM. Para ter mais informações, consulte AWS ParallelCluster políticas de exemplo de usuário para gerenciar recursos do IAM.

Os usuários do pcluster exigem permissões do IAM para usar a CLI pcluster para criar e gerenciar um cluster e seus recursos. Essas permissões estão incluídas nas políticas do IAM que podem ser adicionadas a um usuário ou perfil. Para obter mais informações sobre perfis do IAM, consulte Criar um perfil de usuário no AWS Identity and Access Management Guia do usuário do IAM.

Você também pode usar AWS ParallelCluster parâmetros de configuração para gerenciar permissões do IAM.

As seções a seguir contêm as permissões necessárias com exemplos.

Para usar as políticas de exemplo, substitua <REGION>, <AWS ACCOUNT ID> e cadeias de caracteres semelhantes pelos valores apropriados.

Os exemplos de políticas a seguir incluem nomes de recursos da Amazon (ARNs) para os recursos. Se você estiver trabalhando nas partições AWS GovCloud (US) ou na AWS China, os ARNs devem ser alterados. Especificamente, eles devem ser alterados de “arn:aws” para “arn:aws-us-gov" para a AWS GovCloud (US) partição ou “arn:aws-cn” para a partição da China. AWS Para obter mais informações, consulte Amazon Resource Names (ARNs) nas AWS GovCloud (US) regiões no Guia AWS GovCloud (US) do usuário e ARNs para AWS serviços na China em Introdução aos AWS serviços na China.

Você pode acompanhar as alterações nas políticas de exemplo na AWS ParallelCluster documentação em GitHub.

AWS ParallelCluster Funções de instância do Amazon EC2

Quando você cria um cluster com as configurações padrão, AWS ParallelCluster usa perfis de instância do Amazon EC2 para criar automaticamente um cluster padrão. A função de instância do Amazon EC2 fornece as permissões necessárias para criar e gerenciar o cluster e seus recursos.

Alternativas ao uso da função de AWS ParallelCluster instância padrão

No lugar da função de AWS ParallelCluster instância padrão, você pode usar a definição de configuração do InstanceRole cluster para especificar sua própria função do IAM existente para o EC2. Para ter mais informações, consulte AWS ParallelCluster parâmetros de configuração para gerenciar permissões do IAM. Normalmente, você especifica os perfis do IAM existentes para controlar totalmente as permissões concedidas ao EC2.

Se sua intenção é adicionar políticas extras à função de instância padrão, recomendamos que você transmita as políticas adicionais do IAM com a configuração AdditionalIamPolicies em vez de usar as configurações InstanceProfile ou InstanceRole. Você pode atualizar AdditionalIamPolicies quando atualizar seu cluster, mas não pode atualizar InstanceRole quando atualizar seu cluster.

AWS ParallelCluster exemplo de políticas pcluster de usuário

Os exemplos a seguir mostram as políticas de usuário necessárias para criar AWS ParallelCluster e gerenciar seus recursos usando a pcluster CLI. Agora você pode anexar a política a um usuário ou um perfil.

Política básica de usuário pcluster do AWS ParallelCluster

A política a seguir mostra as permissões necessárias para executar AWS ParallelCluster pcluster comandos.

A última ação listada na política está incluída para fornecer validação de todos os segredos especificados na configuração do cluster. Por exemplo, um AWS Secrets Manager segredo é usado para configurar a DirectoryServiceintegração. Nesse caso, um cluster é criado somente se existir um segredo válido em PasswordSecretArn. Se essa ação for omitida, a validação secreta será ignorada. Para melhorar sua postura de segurança, recomendamos que você defina o escopo dessa declaração de política adicionando somente os segredos especificados na configuração do cluster.

nota

Se os sistemas de arquivos Amazon EFS existentes forem os únicos sistemas de arquivos usados em seu cluster, você poderá definir o escopo dos exemplos de declarações de política do Amazon EFS para os sistemas de arquivos específicos referenciados no arquivo Seção SharedStorage de configuração do 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" } ] }

Política de usuário adicional pcluster do AWS ParallelCluster ao usar o programador AWS Batch

Caso você precise criar e gerenciar um cluster com AWS Batch agendador, a seguinte política adicional é necessária.

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

Política de usuário adicional pcluster do AWS ParallelCluster ao usar o Amazon FSx para Lustre

Caso você precise criar e gerenciar um cluster com o Amazon FSx para Lustre, a seguinte política adicional é necessária.

nota

Se os sistemas de arquivos Amazon FSx existentes forem os únicos sistemas de arquivos usados em seu cluster, você poderá definir o escopo dos exemplos de declarações de política do Amazon FSx para os sistemas de arquivos específicos referenciados no arquivo Seção SharedStorage de configuração do 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 política de pcluster usuário de criação de imagens

Os usuários que pretendem criar imagens personalizadas do Amazon EC2 com AWS ParallelCluster devem ter o seguinte conjunto de permissões.

{ "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 políticas de exemplo de usuário para gerenciar recursos do IAM

Ao usar AWS ParallelCluster para criar clusters ou AMIs personalizadas, é necessário fornecer políticas do IAM que contenham permissões para conceder o conjunto necessário de permissões aos AWS ParallelCluster componentes. Esses recursos do IAM podem ser criados automaticamente AWS ParallelCluster ou fornecidos como entrada ao criar um cluster ou uma imagem personalizada.

Você pode usar os modos a seguir para fornecer ao AWS ParallelCluster usuário as permissões necessárias para acessar os recursos do IAM usando políticas adicionais do IAM na configuração.

Modo de acesso privilegiado do IAM

Com esse modo, cria AWS ParallelCluster automaticamente todos os recursos do IAM necessários. Essas políticas do IAM têm um escopo reduzido para permitir o acesso somente aos recursos do cluster.

Para ativar o modo de acesso privilegiado do IAM, adicione a política a seguir à função do usuário.

nota

Se você configurar AdditionalPoliciesos parâmetros HeadNodeIam/Scheduling/AdditionalPoliciesou SlurmQueues/Iam//, deverá fornecer ao AWS ParallelCluster usuário permissão para anexar e desanexar políticas de função para cada política adicional, conforme mostrado na política a seguir. Adicione os ARNs de política adicionais à condição para anexar e desanexar políticas de função.

Atenção

Esse modo permite que o usuário tenha privilégios de administrador do IAM no Conta da 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" } ] }

Modo de acesso restrito do IAM

Quando nenhuma política adicional do IAM é concedida ao usuário, os perfis do IAM exigidos pelos clusters ou pela criação de imagens personalizadas precisam ser criados manualmente por um administrador e passados como parte da configuração do cluster.

Ao criar um cluster, os seguintes parâmetros são obrigatórios:

Ao criar uma imagem personalizada, os seguintes parâmetros são obrigatórios:

Os perfis do IAM passados como parte dos parâmetros listados acima devem ser criados no prefixo do caminho /parallelcluster/. Se isso não for possível, a política do usuário precisará ser atualizada para conceder permissão iam:PassRole sobre as funções personalizadas específicas, como no exemplo a seguir.

{ "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" }
Atenção

Atualmente, esse modo não permite o gerenciamento de AWS Batch clusters porque nem todas as funções do IAM podem ser passadas na configuração do cluster.

Modo PermissionsBoundary

Esse modo delega à AWS ParallelCluster criação de funções do IAM que estão vinculadas ao limite de permissões configurado do IAM. Para obter mais informações sobre limites de permissões do IAM, consulte Limites de permissões para entidades do IAM no Guia do usuário do IAM.

A política a seguir precisa ser adicionada à função do usuário.

Na política, substitua < permissions-boundary-arn > pelo ARN da política do IAM a ser aplicado como limite de permissões.

Atenção

Se você configurar os parâmetros HeadNode / Iam / AdditionalPolicies ou Scheduling / SlurmQueues / Iam / AdditionalPolicies, deverá conceder ao usuário permissão para anexar e desanexar políticas de função para cada política adicional, conforme mostrado na política a seguir. Adicione os ARNs de política adicionais à condição para anexar e desanexar políticas de função.

{ "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 esse modo está ativado, você deve especificar o limite de permissões ARN no parâmetro de configuração Iam / PermissionsBoundary ao criar ou atualizar um cluster e no parâmetro Build / Iam / PermissionBoundary ao criar uma imagem personalizada.

AWS ParallelCluster parâmetros de configuração para gerenciar permissões do IAM

AWS ParallelCluster expõe uma série de opções de configuração para personalizar e gerenciar as permissões e funções do IAM que são usadas em um cluster ou durante o processo de criação da AMI personalizada.

Configuração do cluster

Perfil do IAM para o nó principal

HeadNode / Iam / InstanceRole | InstanceProfile

Com essa opção, você substitui o perfil padrão do IAM atribuído ao nó principal do cluster. Para obter detalhes adicionais, consulte a referência InstanceProfile.

Aqui está o conjunto mínimo de políticas a serem usadas como parte dessa função quando o programador é o Slurm:

  • Política do IAM gerenciada pela arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy. Para obter mais informações, consulte Criar funções e usuários do IAM para uso com o CloudWatch agente no Guia CloudWatch do usuário da Amazon.

  • Política do IAM gerenciada pela arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obter mais informações, consulte Políticas gerenciadas pela AWS para AWS Systems Manager no Guia do usuário do AWS Systems Manager .

  • Política do IAM adicional:

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

Observe que, caso Scheduling / SlurmQueues / Iam / InstanceRole seja usado para substituir o perfil de computação do IAM, a política do nó principal relatada acima precisa incluir esse perfil na seção Resource da permissão iam:PassRole.

Aqui está o conjunto mínimo de políticas a serem usadas como parte dessa função quando o programador é o AWS Batch:

  • Política do IAM gerenciada pela arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy. Para obter mais informações, consulte Criar funções e usuários do IAM para uso com o CloudWatch agente no Guia CloudWatch do usuário da Amazon.

  • Política do IAM gerenciada pela arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obter mais informações, consulte Políticas gerenciadas pela AWS para AWS Systems Manager no Guia do usuário do AWS Systems Manager .

  • Política do IAM adicional:

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

Acesso do Amazon S3

HeadNode / Iam / S3Access ou Scheduling / SlurmQueues / S3Access

Nessas seções de configuração, você pode personalizar o acesso ao Amazon S3 concedendo políticas adicionais do Amazon S3 aos perfis do IAM associados ao nó principal ou aos nós de computação do cluster quando esses perfis são criados pelo AWS ParallelCluster. Para obter mais informações, consulte a documentação de referência para cada parâmetro de configuração.

Esse parâmetro só pode ser usado quando o usuário está configurado com Modo de acesso privilegiado do IAM ou Modo PermissionsBoundary.

Política do IAM adicionais

HeadNode / Iam / AdditionalIamPolicies ou SlurmQueues / Iam / AdditionalIamPolicies

Use essa opção para anexar políticas gerenciadas adicionais do IAM às funções do IAM associadas ao nó principal ou aos nós de computação do cluster quando essas funções são criadas por AWS ParallelCluster.

Atenção

Para usar essa opção, certifique-se de que o usuário do AWS ParallelCluster tenha as permissões iam:AttachRolePolicy e iam:DetachRolePolicy para as políticas do IAM que precisam ser anexadas.

AWS Lambda função de funções

Iam / Roles / LambdaFunctionsRole

Essa opção substitui a função associada a todas as AWS Lambda funções usadas durante o processo de criação do cluster. AWS Lambda precisa ser configurado como o principal autorizado a assumir a função.

nota

Se DeploymentSettings / LambdaFunctionsVpcConfig estiver definido, LambdaFunctionsRole deverá incluir a permissão de perfil do AWS Lambda para definir a configuração da VPC.

Aqui está o conjunto mínimo de políticas a serem usadas como parte desse perfil:

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

Perfil do IAM para nós de computação

Scheduling / SlurmQueues / Iam / InstanceRole | InstanceProfile

Essa opção permite substituir o perfil do IAM que é atribuído aos nós de computação do cluster. Para ter mais informações, consulte InstanceProfile.

Aqui está o conjunto mínimo de políticas a serem usadas como parte desse perfil:

  • Política do IAM gerenciada pela arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy. Para obter mais informações, consulte Criar funções e usuários do IAM para uso com o CloudWatch agente no Guia CloudWatch do usuário da Amazon.

  • Política do IAM gerenciada pela arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obter mais informações, consulte Políticas gerenciadas pela AWS para AWS Systems Manager no Guia do usuário do AWS Systems Manager .

  • Política do IAM adicional:

    { "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 de permissões

Iam / PermissionsBoundary

Esse parâmetro força AWS ParallelCluster a anexação da política do IAM especificada como PermissionsBoundary a a todas as funções do IAM criadas como parte de uma implantação de cluster.

Consulte Modo PermissionsBoundary para obter a lista de políticas exigidas pelo usuário quando essa configuração é definida.

Configuração de imagem personalizada

Perfil de instância para o EC2 Image Builder

Build / Iam / InstanceRole | InstanceProfile

Com essa opção, você substitui a função do IAM atribuída à instância do Amazon EC2 iniciada pelo EC2 Image Builder para criar uma AMI personalizada.

Aqui está o conjunto mínimo de políticas a serem usadas como parte desse perfil:

  • Política do IAM gerenciada pela arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obter mais informações, consulte Políticas gerenciadas pela AWS para AWS Systems Manager no Guia do usuário do AWS Systems Manager .

  • Política do IAM gerenciada pela arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilder. Para obter mais informações, consulte Política do EC2InstanceProfileForImageBuilder no Guia do usuário do Image Builder.

  • Política do IAM adicional:

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

AWS Lambda função de limpeza

Build / Iam / CleanupLambdaRole

Essa opção substitui a função associada a todas as AWS Lambda funções usadas durante o processo de criação da imagem personalizada. AWS Lambda precisa ser configurado como o principal autorizado a assumir a função.

nota

Se DeploymentSettings / LambdaFunctionsVpcConfig estiver definido, CleanupLambdaRole deverá incluir a permissão de perfil do AWS Lambda para definir a configuração da VPC.

Aqui está o conjunto mínimo de políticas a serem usadas como parte desse perfil:

  • Política do IAM gerenciada pela arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole. Para obter mais informações, consulte Políticas gerenciadas pela AWS para recursos do Lambda no Guia do desenvolvedor do AWS Lambda .

  • Política do IAM adicional:

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

Política do IAM adicionais

Build / Iam / AdditionalIamPolicies

Você usa essa opção para anexar políticas gerenciadas adicionais do IAM à função associada à instância do Amazon EC2 usada pelo EC2 Image Builder para produzir a AMI personalizada.

Atenção

Para usar essa opção, certifique-se de que o usuário do AWS ParallelCluster tenha as permissões iam:AttachRolePolicy e iam:DetachRolePolicy para as políticas do IAM que precisam ser anexadas.

Limite de permissões

Build / Iam / PermissionsBoundary

Esse parâmetro força AWS ParallelCluster a anexação da política do IAM especificada como a PermissionsBoundary a todas as funções do IAM criadas como parte da criação personalizada da AMI.

Consulte em Modo PermissionsBoundary a lista de políticas necessárias para usar essa funcionalidade.