AWS Identity and Access Management permisos 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.

AWS Identity and Access Management permisos en AWS ParallelCluster

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

Para crear y administrar clústeres en una AWS cuenta, se AWS ParallelCluster requieren 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 Amazon EC2 para proporcionar permisos de recursos de clúster. Para administrar los permisos de los recursos del clúster, AWS ParallelCluster también necesita permisos para los recursos de IAM. Para obtener más información, consulte AWS ParallelCluster ejemplos de políticas de usuario 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 AWS ParallelCluster parámetros de configuración para gestionar 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 AWS GovCloud (US) o en AWS China, 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 Nombres de recursos de Amazon (ARN) en AWS GovCloud (US) regiones en la Guía del AWS GovCloud (US) usuario y ARN de AWS servicios en China en Introducción a AWS los servicios en China.

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

AWS ParallelCluster Funciones de instancia de Amazon EC2

Al crear un clúster con los ajustes de configuración predeterminados, AWS ParallelCluster utiliza los perfiles de instancia de Amazon EC2 para crear automáticamente un clúster predeterminado (rol de instancia de Amazon EC2) 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 AWS ParallelCluster instancia predeterminado, puede usar la configuración del InstanceRole clúster para especificar su propio rol de IAM existente para EC2. Para obtener más información, consulte AWS ParallelCluster parámetros de configuración para gestionar 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 la configuración de AdditionalIamPolicies en lugar de la de InstanceProfile o InstanceRole. Cuando actualice el clúster, puede actualizar las AdditionalIamPolicies, pero no el InstanceRole.

AWS ParallelCluster ejemplos pcluster de políticas de usuario

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

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

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

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 AWS Secrets Manager secreto para configurar la DirectoryServiceintegración. 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 de 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: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 usuario adicional pcluster de AWS ParallelCluster al utilizar el programador AWS Batch

En caso de que necesite crear y administrar un clúster con un AWS Batch programador, 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 para Lustre

En caso de que necesite crear y administrar un clúster con Amazon FSx para 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 de 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" } ] }

AWS ParallelCluster política de pcluster usuario: creación de imágenes

Los usuarios que pretendan crear imágenes de Amazon EC2 personalizadas 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" } } } ] }

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

Cuando se utilizan 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 AWS ParallelCluster los componentes. Estos recursos de IAM pueden crearse automáticamente AWS ParallelCluster o proporcionarse como entrada al crear un clúster o una imagen personalizada.

Puede utilizar los siguientes modos para proporcionar al AWS ParallelCluster usuario 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, crea AWS ParallelCluster 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 AdditionalPolicieslos parámetros HeadNodeIam/AdditionalPolicieso Scheduling//SlurmQueuesIam/, debe proporcionar al AWS ParallelCluster usuario permiso para adjuntar 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 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 AWS Batch clústeres porque no todas las funciones de IAM se pueden transferir a la configuración del clúster.

Modo PermissionsBoundary

Este modo se delega AWS ParallelCluster en la creación de funciones de IAM vinculadas 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.

AWS ParallelCluster parámetros de configuración para gestionar 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 por 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 por arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obtener más información, consulte Políticas administradas por 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", "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" } ] }

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 por 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 por arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obtener más información, consulte Políticas administradas por 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 adjuntar políticas de IAM administradas adicionales a las funciones de IAM asociadas al nodo principal o a los nodos de cómputo del clúster cuando dichas funciones las 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.

AWS Lambda función: rol

Iam / Roles / LambdaFunctionsRole

Esta opción anula la función asociada a todas AWS Lambda las funciones que se utilizan durante el proceso de creación del clúster. AWS Lambda debe configurarse como el principal autorizado a 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 obtener 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 por 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 por arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obtener más información, consulte Políticas administradas por 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", "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" } ] }

Límite de permisos

Iam / PermissionsBoundary

Este parámetro obliga AWS ParallelCluster a adjuntar la política de IAM en cuestión como PermissionsBoundary a todas las funciones 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 Generador de imágenes de EC2

Build / Iam / InstanceRole | InstanceProfile

Con esta opción, anula la función de IAM asignada a la instancia de Amazon 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 por arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore. Para obtener más información, consulte Políticas administradas por AWS para AWS Systems Manager en la Guía del usuario de AWS Systems Manager .

  • Política de IAM administrada por 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 Generador de imágenes.

  • Política de IAM adicional:

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

AWS Lambda función de limpieza

Build / Iam / CleanupLambdaRole

Esta opción anula la función asociada a todas AWS Lambda las funciones que se utilizan durante el proceso de creación de imágenes personalizadas. AWS Lambda debe configurarse como el principal autorizado a 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 por arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole. Para obtener más información, consulte las políticas administradas por 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 adjuntar políticas de IAM gestionadas adicionales al rol asociado a la instancia de Amazon EC2 utilizada por EC2 Image Builder para producir 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 AWS ParallelCluster a adjuntar la política de IAM dada PermissionsBoundary a todas las funciones de IAM que se crean como parte de la compilación de AMI personalizada.

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