Permisos de AWS Identity and Access Management en AWS ParallelCluster - AWS ParallelCluster

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Permisos de AWS Identity and Access Management en AWS ParallelCluster

AWS ParallelCluster utiliza permisos de IAM para controlar el acceso a los recursos al crear y administrar clústeres.

Para crear y administrar clústeres en una cuenta de AWS, AWS ParallelCluster requiere permisos en dos niveles:
  • Permisos que el usuario de pcluster necesita a la hora de invocar los comandos CLI de pcluster para crear y administrar clústeres.

  • Permisos que los recursos del clúster requieren para realizar las acciones del clúster.

AWS ParallelCluster utiliza un perfil y un rol de instancia de EC2 para proporcionar permisos de recursos del clúster. Para administrar los permisos de los recursos del clúster, AWS ParallelCluster también requiere permisos para los recursos de IAM. Para más información, consulte Ejemplos de políticas de usuario de AWS ParallelCluster para administrar los recursos de IAM.

Los usuarios de pcluster necesitan permisos de IAM para usar la CLI pcluster con el fin de crear y administrar un clúster y sus recursos. Estos permisos se incluyen en las políticas de IAM que se pueden añadir a un usuario o rol. Para obtener más información sobre los roles de IAM, consulte Creación de un rol de usuario en la Guía del usuario de IAM de AWS Identity and Access Management.

También puede utilizar Parámetros de configuración de AWS ParallelCluster para administrar los permisos de IAM.

Las siguientes secciones contienen los permisos necesarios con ejemplos.

Para usar las políticas de ejemplo sustituya <REGION>, <AWS ACCOUNT ID> y las cadenas similares por los valores adecuados.

Las siguientes políticas de ejemplo incluyen nombres de recursos de Amazon (ARN) para los recursos. Si trabaja en las particiones de China AWS GovCloud (US) o AWS, debe cambiar los ARN. En concreto, deben cambiarse de «arn:aws» a «arn:aws-us-gov» para la AWS GovCloud (US) partición o «arn:aws-cn» para la partición de China. AWS Para obtener más información, consulte los nombres de recursos de Amazon (ARN) de las regiones de AWS GovCloud (US) de la Guía del usuario de AWS GovCloud (US) y los ARN de los servicios de AWS en China en Introducción a los servicios de AWS en China.

Puede realizar un seguimiento de los cambios en las políticas de ejemplo que aparecen en la documentación sobre. AWS ParallelCluster GitHub

Rol de instancia de EC2 de AWS ParallelCluster

Cuando crea un clúster con los ajustes de configuración predeterminados, AWS ParallelCluster utiliza los perfiles de instancia de EC2 para crear automáticamente un rol de instancia de EC2 del clúster predeterminado que proporciona los permisos necesarios para crear y administrar el clúster y sus recursos.

Alternativas al uso del rol de instancia predeterminado AWS ParallelCluster

En lugar del rol de instancia predeterminado AWS ParallelCluster, puede usar la configuración del clúster de InstanceRole para especificar su propio rol de IAM existente para EC2. Para más información, consulte Parámetros de configuración de AWS ParallelCluster para administrar los permisos de IAM. Por lo general, debe especificar los roles de IAM existentes para controlar completamente los permisos concedidos a EC2.

Si su intención es añadir políticas adicionales al rol de instancia predeterminado, le recomendamos que apruebe las políticas de IAM adicionales utilizando los ajustes de configuración de AdditionalIamPolicies en lugar de los de InstanceProfile o InstanceRole. Cuando actualice el clúster, puede actualizar las AdditionalIamPolicies, pero no el InstanceRole.

Ejemplo de políticas de usuario de pcluster mediante AWS ParallelCluster

En los siguientes ejemplos se muestran las políticas de usuario necesarias para crear y administrar AWS ParallelCluster y sus recursos mediante la CLI de pcluster. Ahora puede asociar políticas a un usuario o rol.

Política de usuario básica pcluster de AWS ParallelCluster

La siguiente política de ejemplo muestra los permisos necesarios para ejecutar comandos pcluster de AWS ParallelCluster.

La última acción de la política se incluye para validar cualquier secreto especificado en la configuración del clúster. Por ejemplo, se utiliza un secreto de AWS Secrets Manager para configurar la integración de DirectoryService. En este caso, se crea un clúster solo si existe un secreto válido en PasswordSecretArn. Si se omite esta acción, se omite la validación del secreto. Para mejorar su postura de seguridad, le recomendamos que amplíe el alcance de esta declaración de política añadiendo únicamente los secretos especificados en la configuración del clúster.

nota

Si los sistemas de archivos de Amazon EFS existentes son los únicos sistemas de archivos que se utilizan en su clúster, puede limitar las declaraciones de política de Amazon EFS de ejemplo a los sistemas de archivos específicos a los que se hace referencia en la Sección SharedStorage del archivo de configuración del clúster.

{ "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: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 usuario adicional pcluster de AWS ParallelCluster al utilizar el programador AWS Batch

En caso de que necesite crear y administrar un clúster con el programador AWS Batch, se requiere la siguiente política adicional.

{ "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 usuario adicional pcluster de AWS ParallelCluster al utilizar Amazon FSx for Lustre

En caso de que necesite crear y administrar un clúster con Amazon FSx for Lustre, se requiere la siguiente política adicional.

nota

Si los sistemas de archivos de Amazon FSx existentes son los únicos sistemas de archivos que se utilizan en su clúster, puede limitar las declaraciones de política de Amazon FSx de ejemplo a los sistemas de archivos específicos a los que se hace referencia en la Sección SharedStorage del archivo de configuración del clúster.

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

Política de usuario AWS ParallelCluster de creación de imagen de pcluster

Los usuarios que quieran crear imágenes EC2 personalizadas con AWS ParallelCluster deben tener el siguiente conjunto de permisos.

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

Ejemplos de políticas de usuario de AWS ParallelCluster para administrar los recursos de IAM

Cuando se utiliza AWS ParallelCluster para crear clústeres o AMI personalizadas, se deben proporcionar políticas de IAM que contengan permisos para conceder el conjunto de permisos necesario a los componentes de AWS ParallelCluster. Estos recursos de IAM los puede crear automáticamente AWS ParallelCluster o se pueden proporcionar como entrada al crear un clúster o una imagen personalizada.

Puede utilizar los siguientes modos para proporcionar al usuario de AWS ParallelCluster los permisos necesarios para acceder a los recursos de IAM mediante el uso de políticas de IAM adicionales en la configuración.

Modo de acceso de IAM con privilegios

Con este modo, AWS ParallelCluster crea automáticamente todos los recursos de IAM necesarios. Estas políticas de IAM tienen un alcance limitado para permitir el acceso únicamente a los recursos del clúster.

Para habilitar el modo de acceso de IAM con privilegios, añada la siguiente política al rol de usuario.

nota

Si configura los parámetros HeadNode/Iam/AdditionalPolicies o Scheduling/SlurmQueues/Iam/AdditionalPolicies, debe proporcionar al usuario de AWS ParallelCluster permiso para asociar y desvincular políticas de rol para cada política adicional, tal y como se muestra en la siguiente política. Agregue los ARN de política adicionales a la condición para asociar y desvincular políticas de rol.

aviso

Este modo permite al usuario tener privilegios de administrador de IAM en la Cuenta de 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 acceso de IAM restringido

Cuando no se otorgan políticas de IAM adicionales al usuario, un administrador debe crear manualmente los roles de IAM requeridos por los clústeres o la creación de imágenes personalizadas y pasarlas como parte de la configuración del clúster.

Al crear un clúster, se requieren los siguientes parámetros:

Al crear una imagen personalizada, se requieren los siguientes parámetros:

Los roles de IAM transferidos como parte de los parámetros mencionados anteriormente deben crearse con el prefijo de ruta /parallelcluster/. Si esto no es posible, es necesario actualizar la política de usuario para conceder permiso de iam:PassRole a los roles personalizados específicos, como en el siguiente ejemplo.

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

Actualmente, este modo no permite la administración de clústeres de AWS Batch porque no todos los roles de IAM se pueden transferir a la configuración del clúster.

Modo PermissionsBoundary

Este modo delega a AWS ParallelCluster la creación de roles de IAM vinculados al límite de permisos de IAM configurado. Para obtener más información sobre los límites de los permisos de IAM, consulte Límites de permisos para las entidades de IAM en la Guía del usuario de IAM.

Se debe agregar la siguiente política al rol de usuario.

En la política, sustituya < permissions-boundary-arn > por el ARN de la política de IAM que se aplicará como límite de permisos.

aviso

Si configura los parámetros HeadNode/Iam/AdditionalPolicies o Scheduling/SlurmQueues/Iam/AdditionalPolicies, debe conceder al usuario permiso para asociar y desvincular políticas de rol para cada política adicional, tal y como se muestra en la siguiente política. Agregue los ARN de política adicionales a la condición para asociar y desvincular políticas de rol.

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

Cuando este modo está habilitado, debe especificar el ARN del límite de permisos en el parámetro de configuración Iam/PermissionsBoundary al crear o actualizar un clúster y en el parámetro Build/Iam/PermissionBoundary al crear una imagen personalizada.

Parámetros de configuración de AWS ParallelCluster para administrar los permisos de IAM

AWS ParallelCluster expone una serie de opciones de configuración para personalizar y administrar los permisos y funciones de IAM que se utilizan en un clúster o durante el proceso de creación de una AMI personalizada.

Configuración del clúster

Rol de IAM del nodo principal

HeadNode / Iam / InstanceRole | InstanceProfile

Con esta opción, se anula el rol de IAM predeterminado que se asigna al nodo principal del clúster. Para obtener más información, consulte la referencia del InstanceProfile.

Este es el conjunto mínimo de políticas que se utilizarán como parte de este rol cuando el programador sea Slurm:

  • Política de IAM administrada de arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy. Para obtener más información, consulte Crear roles y usuarios de IAM para usarlos con el CloudWatch agente en la Guía del CloudWatch usuario de Amazon.

  • Política de IAM administrada de arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obtener más información, consulte Políticas administradas de AWS para AWS Systems Manager en la Guía del usuario de AWS Systems Manager.

  • Política de 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" ], "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" } ] }

Tenga en cuenta que, en caso de que se utilice Scheduling/SlurmQueues/Iam/InstanceRole para anular el rol de IAM de computación, la política del nodo principal descrita anteriormente debe incluir dicho rol en la sección Resource del permiso iam:PassRole.

Este es el conjunto mínimo de políticas que se utilizarán como parte de este rol cuando el programador sea AWS Batch:

  • Política de IAM administrada de arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy. Para obtener más información, consulte Crear roles y usuarios de IAM para usarlos con el CloudWatch agente en la Guía del CloudWatch usuario de Amazon.

  • Política de IAM administrada de arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obtener más información, consulte Políticas administradas de AWS para AWS Systems Manager en la Guía del usuario de AWS Systems Manager.

  • Política de 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" } ] }

Acceso a Amazon S3

HeadNode/Iam/S3Access o Scheduling/SlurmQueues/S3Access

En estas secciones de configuración, puede personalizar el acceso a Amazon S3 mediante la concesión de políticas de Amazon S3 adicionales a los roles de IAM asociados al nodo principal o a los nodos de computación del clúster cuando dichos roles los cree AWS ParallelCluster. Consulte la documentación de referencia de cada parámetro de configuración para obtener más información.

Este parámetro solo se puede usar cuando el usuario está configurado con Modo de acceso de IAM con privilegios o Modo PermissionsBoundary.

Políticas de IAM adicionales

HeadNode/Iam/AdditionalIamPolicies o SlurmQueues/Iam/AdditionalIamPolicies

Utilice esta opción para asociar políticas de IAM administradas adicionales a los roles de IAM asociados al nodo principal o a los nodos de computación del clúster cuando dichos roles los cree AWS ParallelCluster.

aviso

Para utilizar esta opción, asegúrese de que se concedan al usuario de AWS ParallelCluster los permisos iam:AttachRolePolicy y iam:DetachRolePolicy necesarios para las políticas de IAM que se deben asociar.

Rol de las funciones de AWS Lambda

Iam / Roles / LambdaFunctionsRole

Esta opción anula el rol asociado a todas las funciones de AWS Lambda que se utilizan durante el proceso de creación del clúster. AWS Lambda debe configurarse como entidad principal a la que se le permite asumir el rol.

nota

Si se establece DeploymentSettings/LambdaFunctionsVpcConfig/, LambdaFunctionsRole debe incluir el permiso de rol de AWS Lambda para establecer la configuración de la VPC.

Este es el conjunto mínimo de políticas que se utilizarán como parte de este rol:

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

Rol de IAM de nodos de computación

Scheduling / SlurmQueues / Iam / InstanceRole | InstanceProfile

Esta opción permite anular el rol de IAM que se asigna a los nodos de computación del clúster. Para más información, consulte InstanceProfile.

Este es el conjunto mínimo de políticas que se utilizarán como parte de este rol:

  • Política de IAM administrada de arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy. Para obtener más información, consulte Crear roles y usuarios de IAM para usarlos con el CloudWatch agente en la Guía del CloudWatch usuario de Amazon.

  • Política de IAM administrada de arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obtener más información, consulte Políticas administradas de AWS para AWS Systems Manager en la Guía del usuario de AWS Systems Manager.

  • Política de IAM adicional:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "dynamodb:Query" ], "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" } ] }

Límite de permisos

Iam / PermissionsBoundary

Este parámetro obliga a AWS ParallelCluster a asociar la política de IAM dada como PermissionsBoundary a todos los roles de IAM que se crean como parte de la implementación de un clúster.

Consulte Modo PermissionsBoundary para conocer la lista de políticas que requiere el usuario cuando se define esta configuración.

Configuración de imagen personalizada

Rol de instancia para EC2 Image Builder

Build / Iam / InstanceRole | InstanceProfile

Con esta opción, anula el rol de IAM asignado a la instancia de EC2 lanzada por EC2 Image Builder para crear una AMI personalizada.

Este es el conjunto mínimo de políticas que se utilizarán como parte de este rol:

  • Política de IAM administrada de arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obtener más información, consulte Políticas administradas de AWS para AWS Systems Manager en la Guía del usuario de AWS Systems Manager.

  • Política de IAM administrada de arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilder. Para obtener más información, consulte la política de EC2InstanceProfileForImageBuilder en la Guía del usuario de Image Builder.

  • Política de IAM adicional:

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

Rol de limpieza de AWS Lambda

Build / Iam / CleanupLambdaRole

Esta opción anula el rol asociado a todas las funciones de AWS Lambda que se utilizan durante el proceso de creación de imágenes personalizadas. AWS Lambda debe configurarse como entidad principal a la que se le permite asumir el rol.

nota

Si se establece DeploymentSettings/LambdaFunctionsVpcConfig/, CleanupLambdaRole debe incluir el permiso de rol de AWS Lambda para establecer la configuración de la VPC.

Este es el conjunto mínimo de políticas que se utilizarán como parte de este rol:

  • Política de IAM administrada de arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole. Para obtener más información, consulte las políticas administradas de AWS para las características de Lambda en la Guía para desarrolladores de AWS Lambda.

  • Política de 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íticas de IAM adicionales

Build / Iam / AdditionalIamPolicies

Utilice esta opción para asociar políticas de IAM administradas adicionales al rol relacionado con la instancia de EC2 utilizada por EC2 Image Builder para generar la AMI personalizada.

aviso

Para utilizar esta opción, asegúrese de que se concedan al usuario de AWS ParallelCluster los permisos iam:AttachRolePolicy y iam:DetachRolePolicy necesarios para las políticas de IAM que se deben asociar.

Límite de permisos

Build / Iam / PermissionsBoundary

Este parámetro obliga a AWS ParallelCluster a asociar la política de IAM dada como PermissionsBoundary a todos los roles de IAM que se crean como parte de la creación de una AMI personalizada.

Consulte Modo PermissionsBoundary para conocer la lista de políticas necesarias para utilizar dicha funcionalidad.