AWS Identity and Access Management para SageMaker HyperPod - Amazon SageMaker

AWS Identity and Access Management para SageMaker HyperPod

AWS Identity and Access Management (IAM) es un servicio de AWS que ayuda al administrador a controlar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan quién está autenticado (ha iniciado sesión) y autorizado (tiene permisos) para utilizar recursos de Amazon EKS. IAM es un servicio de AWS que puede utilizar sin cargo adicional.

importante

Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear recursos de Amazon SageMaker también deben conceder permisos para añadir etiquetas a dichos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores AccessDenied al intentar crear recursos. Para obtener más información, consulte Concesión de permisos para etiquetar recursos de SageMaker.

Las Políticas administradas de AWS para Amazon SageMaker que conceden permisos para crear recursos de SageMaker ya incluyen permisos para añadir etiquetas al crear esos recursos.

Supongamos que hay dos capas principales de usuarios de SageMaker HyperPod: usuarios administradores de clústeres y usuarios científicos de datos.

  • Usuarios administradores de clústeres: son los responsables de crear y administrar los clústeres de SageMaker HyperPod. Esto incluye configurar los clústeres de HyperPod y administrar el acceso de los usuarios a ellos.

    • Crean y configuran clústeres de SageMaker HyperPod con Slurm o Amazon EKS.

    • Crean y configuran roles de IAM para los usuarios científicos de datos y los recursos de clúster de HyperPod.

    • Para la orquestación de SageMaker HyperPod con Amazon EKS, crean y configuran las entradas de acceso de EKS, el control de acceso basado en roles (RBAC) y Pod Identity para cumplir con los casos de uso de ciencia de datos.

  • Usuarios científicos de datos: se centran en el entrenamiento de modelos de ML. Utilizan el orquestador de código abierto o la CLI de SageMaker HyperPod para enviar y administrar los trabajos de entrenamiento.

    • Asumen y utilizan el rol de IAM proporcionado por los usuarios administradores de clústeres.

    • Interactúan con las CLI del orquestador de código abierto compatibles con SageMaker HyperPod (Slurm o Kubernetes) o la CLI de SageMaker HyperPod para comprobar la capacidad de los clústeres, conectarse al clúster y enviar las cargas de trabajo.

Configuran roles de IAM para los administradores de clústeres asociando los permisos o políticas correctos para utilizar clústeres de SageMaker HyperPod. Los administradores de clústeres también deben crear roles de IAM para proporcionar a SageMaker HyperPod recursos que deben asumir para ejecutar y comunicarse con los recursos necesarios de AWS, como Amazon S3, Amazon CloudWatch y AWS Systems Manager (SSM). Por último, el administrador de la cuenta de AWS o los administradores de clústeres deben conceder a los científicos permisos para acceder a los clústeres de SageMaker HyperPod y ejecutar cargas de trabajo de ML.

Según el orquestador que elija, los permisos necesarios para el administrador de clústeres y los científicos pueden variar. También puede controlar el alcance de los permisos para las distintas acciones de los roles mediante las claves de condición de cada servicio. Utilice las siguientes referencias de autorizaciones de servicio para añadir el alcance detallado de los servicios relacionados con SageMaker HyperPod.

Usuarios de IAM para la administración de clústeres

Los administradores de clústeres (administradores) utilizan y configuran los clústeres de SageMaker HyperPod, y realizan tareas de Funcionamiento de SageMaker HyperPod. En el siguiente ejemplo de política, se incluye el conjunto mínimo de permisos para que los administradores de clústeres ejecuten las API principales de SageMaker HyperPod y administren los clústeres de SageMaker HyperPod dentro de su cuenta de AWS.

Slurm
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateCluster", "sagemaker:ListClusters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode", "sagemaker:ListClusterNodes", "sagemaker:UpdateCluster", "sagemaker:UpdateClusterSoftware" ], "Resource": "arn:aws:sagemaker:region:account-id:cluster/*" } ] }
Amazon EKS
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": <execution-role-arn> }, { "Effect": "Allow", "Action": [ "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeCluterNode", "sagemaker:ListClusterNodes", "sagemaker:ListClusters", "sagemaker:UpdateCluster", "sagemaker:UpdateClusterSoftware", "sagemaker:DeleteClusterNodes", "eks:DescribeCluster", "eks:CreateAccessEntry", "eks:DescribeAccessEntry", "eks:DeleteAccessEntry", "eks:AssociateAccessPolicy", "iam:CreateServiceLinkedRole" ], "Resource": "*" } ] }

Para conceder permisos de acceso a la consola de SageMaker, utilice el ejemplo de política que se proporciona en Permisos necesarios para utilizar la consola de Amazon SageMaker.

Para conceder permisos de acceso a la consola de Amazon EC2 Systems Manager, utilice el ejemplo de política que se proporciona en Mediante la consola de AWS Systems Manager en la Guía del usuario de AWS Systems Manager.

También podría considerar la posibilidad de asociar la política AmazonSageMakerFullAccess al rol; sin embargo, tenga en cuenta que la política AmazonSageMakerFullAccess otorga permisos a todos los recursos, características y llamadas a la API de SageMaker.

Para obtener más información sobre los usuarios de IAM en general, consulte Usuarios de IAM en la Guía del usuario de AWS Identity and Access Management.

Usuarios de IAM para científicos

Los científicos inician sesión y ejecutan cargas de trabajo de ML en los nodos del clúster de SageMaker HyperPod aprovisionados por los administradores del clúster. A los científicos de su cuenta de AWS, les debe conceder el permiso "ssm:StartSession" para ejecutar el comando start-session de SSM. A continuación, se muestra una política de ejemplo para usuarios de IAM.

Slurm

Añada la siguiente política para otorgar permisos de sesión de SSM para conectarse a un destino de SSM para todos los recursos. Esto le permite acceder a los clústeres de HyperPod.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": "*" } ] }
Amazon EKS

Otorgue los siguientes permisos de rol de IAM para que los científicos de datos ejecuten los comandos hyperpod list-clusters y hyperpod connect-cluster entre los comandos de la CLI de HyperPod. Para obtener más información sobre la CLI de HyperPod, consulte Ejecución de trabajos en clústeres de SageMaker HyperPod orquestados por Amazon EKS. También incluye permisos de sesión de SSM para conectarse a un destino de SSM para todos los recursos. Esto le permite acceder a los clústeres de HyperPod.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DescribeHyerpodClusterPermissions", "Effect": "Allow", "Action": [ "sagemaker:DescribeCluster" ], "Resource": "<hyperpod-cluster-arn>" }, { "Sid": "UseEksClusterPermissions", "Effect": "Allow", "Action": [ "eks:DescribeCluster", ], "Resource": "<eks-cluster-arn>" }, { "Sid": "ListClustersPermission", "Effect": "Allow", "Action": [ "sagemaker:ListClusters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": "*" } ] }

Para conceder a los usuarios o roles de IAM de los científicos de datos acceso a las API de Kubernetes del clúster, consulte también Concesión a los usuarios y roles de IAM de acceso a las API de Kubernetes en la Guía del usuario de Amazon EKS.

Rol de IAM para SageMaker HyperPod

Para que los clústeres de SageMaker HyperPod se ejecuten y se comuniquen con los recursos necesarios de AWS, debe crear un rol de IAM que debe asumir el clúster de HyperPod.

Comience por asociar el rol administrado Política administrada de AWS: AmazonSageMakerHyperPodServiceRolePolicy. Con esta política administrada de AWS, los grupos de instancias del clúster de SageMaker HyperPod asumen el rol de comunicarse con Amazon CloudWatch, Amazon S3 y AWS Systems Manager Agent (SSM Agent). Esta política administrada es el requisito mínimo para que los recursos de SageMaker HyperPod se ejecuten correctamente, por lo que debe proporcionar un rol de IAM con esta política a todos los grupos de instancias.

sugerencia

En función de sus preferencias a la hora de diseñar el nivel de permisos para varios grupos de instancias, también puede configurar varios roles de IAM y asociarlos a distintos grupos de instancias. Al configurar el acceso de los usuarios del clúster a nodos específicos del clúster de SageMaker HyperPod, los nodos asumen el rol con los permisos selectivos que haya asociado manualmente.

Al configurar el acceso de los científicos a nodos específicos del clúster a través de AWS Systems Manager (consulte también Configuración de AWS Systems Manager y Ejecutar como para el control de acceso de los usuarios del clúster), los nodos del clúster asumen el rol con los permisos selectivos que asocie manualmente.

Cuando haya terminado de crear los roles de IAM, tome nota de sus nombres y ARN. Los roles se utilizan al crear un clúster de SageMaker HyperPod y conceden los permisos correctos que necesita cada grupo de instancias para comunicarse con los recursos necesarios de AWS.

Slurm

En el caso de HyperPod orquestado con Slurm, debe asociar la siguiente política administrada al rol de IAM de SageMaker HyperPod.

(Opcional) Permisos adicionales para usar SageMaker HyperPod con Amazon Virtual Private Cloud

Si desea utilizar su propia Amazon Virtual Private Cloud (VPC) en lugar de la VPC predeterminada de SageMaker, debe añadir los siguientes permisos adicionales al rol de IAM de SageMaker HyperPod.

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DetachNetworkInterface" ], "Resource": "*" } { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] }

En la siguiente lista, se detallan los permisos necesarios para habilitar las funcionalidades del clúster de SageMaker HyperPod al configurar el clúster con su propia Amazon VPC.

  • Se requieren los siguientes permisos ec2 para habilitar la configuración de un clúster de SageMaker HyperPod con su VPC.

    { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }
  • Se requiere el siguiente permiso ec2 para habilitar la función de reanudación automática de SageMaker HyperPod.

    { "Effect": "Allow", "Action": [ "ec2:DetachNetworkInterface" ], "Resource": "*" }
  • El siguiente permiso ec2 permite a SageMaker HyperPod crear etiquetas en las interfaces de red de su cuenta.

    { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] }
Amazon EKS

En el caso de HyperPod orquestado con Amazon EKS, debe asociar las siguientes políticas administradas al rol de IAM de SageMaker HyperPod.

Además de las políticas administradas, asocie la siguiente política de permisos al rol.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssignPrivateIpAddresses", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DetachNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute", "ec2:UnassignPrivateIpAddresses", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "eks-auth:AssumeRoleForPodIdentity" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] } ] }
nota

Tenga en cuenta que el permiso "eks-auth:AssumeRoleForPodIdentity" es opcional. Es obligatorio si tiene previsto usar EKS Pod Identity.

Rol vinculado al servicio de SageMaker HyperPod

Para garantizar la compatibilidad de Amazon EKS en SageMaker HyperPod, HyperPod crea un rol vinculado al servicio con Política administrada de AWS: AmazonSageMakerHyperPodServiceRolePolicy para supervisar y respaldar la resiliencia del clúster de EKS, como la sustitución de nodos y el reinicio de trabajos.

Políticas de IAM para Amazon EKS