AWS Identity and Access Managementpermisos enAWS ParallelCluster 3.x - 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 Managementpermisos enAWS ParallelCluster 3.x

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

Para crear y administrar clústeres en unaAWS cuenta, seAWS ParallelCluster requieren permisos en dos niveles:
  • Permisos que elpcluster usuario necesita para invocar los comandos de lapcluster CLI para crear y administrar clústeres.

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

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

pclusterlos usuarios necesitan permisos de IAM para usar lapcluster CLI a fin de crear y administrar un clúster y sus recursos. Estos permisos se incluyen en las políticas de IAM que se pueden agregar a un usuario o rol. Para obtener más información sobre las funciones de IAM, consulte Creación de una función de usuario en la Guía delAWS Identity and Access Management usuario.

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

Las siguientes secciones contienen los permisos necesarios con ejemplos.

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

Los siguientes ejemplos de políticas incluyen los nombres de recurso de Amazon (ARN) para los recursos. Si trabaja en las particionesAWS GovCloud (US) o en las deAWS China, debe cambiar los ARN. Concretamente, deben cambiarse de «arn:aws» a «arn:aws-us-gov» para laAWS GovCloud (US) partición o «arn:aws-cn» para la partición deAWS China. Para obtener más información, consulte Nombres de recursos de Amazon (ARN) enAWS GovCloud (US) regiones en la Guía delAWS GovCloud (US) usuario y ARN paraAWS servicios en China en Introducción a losAWS servicios en China.

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

AWS ParallelClusterFunciones de instancia de EC2

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

Alternativas al uso del rol deAWS ParallelCluster instancia predeterminado

En lugar de la función deAWS ParallelCluster instancia predeterminada, puede utilizar la configuración delInstanceRole clúster para especificar su propia función de IAM existente para EC2. Para obtener más información, consulte AWS ParallelClusterparámetros de configuración para administrar los permisos de IAM. Por lo general, se especifican las funciones de IAM existentes para controlar por completo los permisos concedidos a EC2.

Si su intención es añadir políticas adicionales al rol de instancia predeterminado, le recomendamos que transfiera las políticas de IAM adicionales mediante la AdditionalIamPoliciesconfiguración en lugar deInstanceProfile laInstanceRole configuración. Puedes actualizarAdditionalIamPolicies cuando actualices tu clúster, sin embargo, no puedes actualizarloInstanceRole cuando actualices tu clúster.

AWS ParallelClusterejemplo pcluster de políticas de usuario

Los siguientes ejemplos muestran las políticas de usuario necesarias para crear y administrarAWS ParallelCluster y sus recursos mediante lapcluster CLI. Puede adjuntar políticas a un usuario o rol.

PolíticaAWS ParallelCluster pcluster de usuario base

La siguiente política de ejemplo muestra los permisos necesarios para ejecutarAWS ParallelClusterpcluster los comandos.

La última acción que figura en la política se incluye para validar los secretos especificados en la configuración del clúster. Por ejemplo, se usa unAWS 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 secreta. Para mejorar su postura de seguridad, le recomendamos que reduzca el alcance de esta declaración de política añadiendo solo 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 reducir los ejemplos de declaraciones de políticas de Amazon EFS a los sistemas de archivos específicos a los que se hace referencia en el archivoSección SharedStorage 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" ], "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" ], "Resource": "*", "Effect": "Allow", "Sid": "CloudWatchLogs" }, { "Action": [ "resource-groups:ListGroupResources" ], "Resource": "*", "Effect": "Allow", "Sid": "ResourceGroupRead" }, { "Action": "secretsmanager:DescribeSecret", "Resource": "arn:aws:secretsmanager:<REGION>:<AWS ACCOUNT ID>:secret:<SECRET NAME>", "Effect": "Allow" } ] }

PolíticaAWS ParallelCluster pcluster de usuario adicional al utilizar elAWS Batch planificador

En caso de que necesite crear y administrar un clúster con unAWS Batch planificador, 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íticaAWS ParallelCluster pcluster de usuario adicional 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 reducir los ejemplos de declaraciones de políticas de Amazon FSx a los sistemas de archivos específicos a los que se hace referencia en el archivoSección SharedStorage 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 ParallelClusterpolítica depcluster usuario de creación de imágenes

Los usuarios que deseen crear imágenes EC2 personalizadasAWS 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 ParallelClusterejemplos de políticas de usuario para administrar los recursos de IAM

Cuando se utiliceAWS ParallelCluster para crear clústeres o AMI personalizadas, se deben proporcionar políticas de IAM que contengan permisos para conceder el conjunto de permisos requerido aAWS ParallelCluster los componentes. Estos recursos de IAM pueden crearse automáticamenteAWS ParallelCluster o proporcionarse como entrada al crear un clúster o una imagen personalizada.

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

Modo de acceso a IAM privilegiado

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

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

nota

Si configura AdditionalPolicieslos parámetros HeadNodeIam//AdditionalPolicieso SchedulingSlurmQueues/Iam//, debe proporcionar alAWS ParallelCluster usuario permiso para adjuntar y separar políticas de rol para cada política adicional, tal como se muestra en la siguiente política. Agregue los ARN de políticas adicionales a la condición para adjuntar y separar políticas de roles.

aviso

Este modo permite al usuario tener privilegios de administrador de IAM enCuenta 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 restringido a IAM

Cuando no se otorgan políticas de IAM adicionales al usuario, un administrador debe crear manualmente las funciones de IAM requeridas por los clústeres o la creación de imágenes personalizadas y transferirlas 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:

Las funciones de IAM transferidas como parte de los parámetros enumerados anteriormente deben crearse en el prefijo de/parallelcluster/ ruta. Si esto no es posible, es necesario actualizar la política de usuario para concederiam:PassRole permisos en las funciones personalizadas específicas, 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 deAWS Batch clústeres porque no se pueden transferir todas las funciones de IAM en la configuración del clúster.

PermissionsBoundarymodo

Este modo delegaAWS ParallelCluster la creación de roles de IAM que están 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.

La siguiente política debe agregarse 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 AdditionalPoliciesparámetros HeadNode/Iam/AdditionalPolicieso Scheduling//SlurmQueuesIam/, debe conceder permiso al usuario para adjuntar y desvincular políticas de rol para cada política adicional, tal como se muestra en la siguiente política. Agregue los ARN de políticas adicionales a la condición para adjuntar y separar políticas de roles.

{ "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 PermissionsBoundaryconfiguración Iam/al crear o actualizar un clúster y en el PermissionBoundaryparámetro BuildIam//al crear una imagen personalizada.

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

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

Configuración del clúster

Rol de IAM de nodo principal

HeadNode / Iam / InstanceRole | InstanceProfile

Con esta opción, anula la función de IAM predeterminada que está asignada al nodo principal del clúster. Para obtener detalles adicionales, consulte la InstanceProfilereferencia.

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

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicypolítica de IAM gestionada. 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.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCorepolítica de IAM gestionada. Para obtener más información, consulte las políticasAWS gestionadasAWS Systems Manager en la Guía delAWS Systems Manager usuario.

  • 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 InstanceRolese utilice SchedulingSlurmQueuesIam///para anular la función de IAM de cálculo, la política de nodo principal indicada anteriormente debe incluir dicha función en laResource sección deliam:PassRole permiso.

Este es el conjunto mínimo de políticas que se deben utilizar como parte de esta función cuando el planificador esAWS Batch:

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicypolítica de IAM gestionada. 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.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCorepolítica de IAM gestionada. Para obtener más información, consulte las políticasAWS gestionadasAWS Systems Manager en la Guía delAWS Systems Manager usuario.

  • 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/S3Accesso Scheduling/SlurmQueues/S3Access

En estas secciones de configuración, puede personalizar el acceso a Amazon S3 concediendo políticas de Amazon S3 adicionales a las funciones de IAM asociadas al nodo principal o a los nodos de procesamiento del clúster cuando las creeAWS ParallelCluster. Para obtener más información, consulte la documentación de referencia de cada uno de los parámetros de configuración.

Este parámetro solo se puede utilizar cuando el usuario está configurado conModo de acceso a IAM privilegiado oPermissionsBoundarymodo.

Políticas de IAM adicionales

HeadNode/Iam/AdditionalIamPolicieso SlurmQueues/Iam/AdditionalIamPolicies

Utilice esta opción para adjuntar políticas de IAM gestionadas adicionales a las funciones de IAM asociadas al nodo principal o a los nodos de procesamiento del clúster cuando las creeAWS ParallelCluster.

aviso

Para usar esta opción, asegúrese de que el AWS ParallelClusterusuario tenga otorgadosiam:AttachRolePolicy losiam:DetachRolePolicy permisos para las políticas de IAM que deben adjuntarse.

AWS Lambdafunciones y rol

Iam / Roles / LambdaFunctionsRole

Esta opción anula la función asociada a todasAWS Lambda las funciones que se utilizan durante el proceso de creación del clúster. AWS Lambdadebe configurarse como el principal al que se le permite asumir el rol.

nota

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

Este es el conjunto mínimo de políticas que se deben utilizar como parte de esta función:

{ "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 los nodos de procesamiento

Scheduling / SlurmQueues / Iam / InstanceRole | InstanceProfile

Esta opción permite anular la función de IAM que está asignada a los nodos de procesamiento del clúster. Para obtener más información, consulte InstanceProfile.

Este es el conjunto mínimo de políticas que se deben utilizar como parte de esta función:

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicypolítica de IAM gestionada. 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.

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCorepolítica de IAM gestionada. Para obtener más información, consulte las políticasAWS gestionadasAWS Systems Manager en la Guía delAWS Systems Manager usuario.

  • 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 obligaAWS ParallelCluster a adjuntar la política de IAM dada comoPermissionsBoundary a todos los roles de IAM que se crean como parte de la implementación de un clúster.

ConsultePermissionsBoundarymodo la lista de políticas exigidas por el usuario al definir esta configuración.

Configuración de imagen personalizada

Rol de instancia para EC2 Image Builder

Build / Iam / InstanceRole | InstanceProfile

Con esta opción, anula la función de IAM que se asigna 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 deben utilizar como parte de esta función:

  • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCorepolítica de IAM gestionada. Para obtener más información, consulte las políticasAWS gestionadasAWS Systems Manager en la Guía delAWS Systems Manager usuario.

  • arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilderpolítica de IAM gestionada. Para obtener más información, consulte la EC2InstanceProfileForImageBuilderpolítica de 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" } ] }

AWS Lambdarol de limpieza

Build / Iam / CleanupLambdaRole

Esta opción anula la función asociada a todasAWS Lambda las funciones que se utilizan durante el proceso de creación de imágenes personalizadas. AWS Lambdadebe configurarse como el principal al que se le permite asumir el rol.

nota

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

Este es el conjunto mínimo de políticas que se deben utilizar como parte de esta función:

  • arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRolepolítica de IAM gestionada. Para obtener más información, consulte las políticasAWS gestionadas para las funciones de Lambda en la Guía paraAWS Lambda desarrolladores.

  • 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 EC2 utilizada por EC2 Image Builder para producir la AMI personalizada.

aviso

Para usar esta opción, asegúrese de que el AWS ParallelClusterusuario tenga otorgadosiam:AttachRolePolicy losiam:DetachRolePolicy permisos para las políticas de IAM que deben adjuntarse.

Límite de permisos

Build / Iam / PermissionsBoundary

Este parámetro obligaAWS ParallelCluster a adjuntar la política de IAM dada comoPermissionsBoundary a todos los roles de IAM que se crean como parte de la compilación de AMI personalizada.

ConsultePermissionsBoundarymodo la lista de políticas necesarias para utilizar dicha funcionalidad.