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 el
pcluster
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.
pcluster
los 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>
, reemplace y cadenas similares por los valores adecuados.<AWS
ACCOUNT ID>
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
Puede realizar un seguimiento de los cambios en las políticas de ejemplo en AWS ParallelClusterla documentación sobre GitHub
Temas
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.
Temas
- PolíticaAWS ParallelCluster pcluster de usuario base
- PolíticaAWS ParallelCluster pcluster de usuario adicional al utilizar elAWS Batch planificador
- PolíticaAWS ParallelCluster pcluster de usuario adicional al utilizar Amazon FSx for Lustre
- AWS ParallelClusterpolítica depcluster usuario de creación de imágenes
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.
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.
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.
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.
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:
-
Build / Iam / InstanceRole | InstanceProfile
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" }
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.
PermissionsBoundary
modo
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.
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
Temas
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/CloudWatchAgentServerPolicy
polí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/AmazonSSMManagedInstanceCore
polí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/CloudWatchAgentServerPolicy
polí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/AmazonSSMManagedInstanceCore
polí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.
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.
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/CloudWatchAgentServerPolicy
polí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/AmazonSSMManagedInstanceCore
polí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
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
Temas
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/AmazonSSMManagedInstanceCore
polí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/EC2InstanceProfileForImageBuilder
política de IAM gestionada. Para obtener más información, consulte laEC2InstanceProfileForImageBuilder
polí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.
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/AWSLambdaBasicExecutionRole
polí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.
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.