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.
Configuración de permisos
Se requieren funciones para el complemento y sus dependencias
Se requieren funciones de IAM para SageMaker los espacios de SageMaker HyperPod
Al habilitar las funciones de SageMaker Spaces (también conocidas como SageMaker IDE o cuadernos) en un clúster SageMaker HyperPod (EKS), se deben crear y asignar varias funciones de IAM. Estas funciones permiten el acceso seguro, el enrutamiento, las sesiones IDE remotas y el aprovisionamiento de almacenamiento de EBS. En la siguiente tabla se resumen las cuatro funciones y cuándo son necesarias.
Tabla de resumen de funciones
| Rol de IAM | ¿Obligatorio? | Finalidad | ¿Quién lo usa? | ¿La SageMaker consola permite la personalización? |
|---|---|---|---|---|
|
Función de ejecución del complemento Spaces |
Siempre es obligatorio |
Permite que el controlador de Spaces gestione Spaces, genere sesiones de SSM URLs prefirmadas y gestione |
Módulo de controlador adicional (privilegiado) |
✔ Sí |
|
Función de router integrado en el clúster |
Necesario para el acceso a la WeBui |
Permite que el pod del router realice operaciones de KMS para la firma JWT (autenticación WebUI) |
Módulo de enrutador integrado en el clúster (privilegiado) |
✔ Sí |
|
Función de instancia gestionada por SSM |
Necesario para el acceso remoto al IDE |
Utilizado por el agente SSM sidecar para sesiones IDE SSH-over-SSM remotas |
Módulos IDE SSM Agent in Space (no son módulos adicionales) |
✔ Sí |
|
Función de IAM para el complemento EBS CSI Driver |
Siempre es obligatorio |
Permite que el controlador CSI de EBS almacene create/attach/modify volúmenes para cargas de trabajo de Spaces |
Complemento del controlador EBS CSI |
Creado automáticamente |
|
Función de IAM para el complemento de DNS externo |
Necesario para el acceso a la WeBui |
Garantiza que a los puntos finales de Space y a los componentes del clúster se les puedan asignar automáticamente nombres DNS en las zonas alojadas de Route 53 del cliente. |
Complemento de DNS externo |
Creado automáticamente |
1. Función de ejecución del complemento Spaces (obligatorio)
La función de ejecución del complemento Spaces siempre es necesaria porque la utiliza el módulo controlador del complemento SageMaker Spaces, un componente administrativo que se instala mediante el complemento EKS. Esta función permite al controlador administrar Spaces, aprovisionar recursos, interactuar con SSM y generar prefirmados URLs para el acceso remoto al IDE y a la WeBui. También admite el acceso KMS utilizado para la firma de solicitudes para autenticar las solicitudes https de la WeBui. Esta función se puede crear automáticamente cuando se instala el complemento SageMaker Spaces a través de la consola. SageMaker Para la creación manual, AWS proporciona la política AmazonSageMakerSpacesControllerPolicy gestionada.
Política de confianza de referencia
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ], "Condition": { "StringEquals": { "aws:SourceAccount": "{{accountId}}", "aws:SourceArn": "arn:aws:eks:{{region}}:{{accountId}}:cluster/{{eksClusterName}}" } } } ] }
2. Función de enrutador en el clúster (necesaria para la autenticación de WeBui)
El pod del router, un componente privilegiado que autentica las sesiones de WeBui de Spaces, utiliza la función de enrutador dentro del clúster. El router usa una clave KMS para crear y firmar los tokens JWT que autorizan el acceso de los usuarios a espacios específicos. Esta función permite al módulo del router generar claves de datos y descifrarlas. Al igual que la función de controlador, refuerza la seguridad mediante restricciones de alcance basadas en etiquetas y clústeres. Esta función se puede generar automáticamente al instalar el complemento Spaces a través de la AWS SageMaker consola, pero los clientes pueden crearla manualmente.
Política de confianza de referencia
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ], "Condition": { "StringEquals": { "aws:SourceAccount": "{{accountId}}", "aws:SourceArn": "arn:aws:eks:{{region}}:{{accountId}}:cluster/{{eksClusterName}}" } } } ] }
Política de permisos de referencia
{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSDescribeKey", "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": "arn:aws:kms:{{region}}:{{accountId}}:key/{{kmsKeyId}}" }, { "Sid": "KMSKeyOperations", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:{{region}}:{{accountId}}:key/{{kmsKeyId}}", "Condition": { "StringEquals": { "kms:EncryptionContext:sagemaker:component": "amazon-sagemaker-spaces", "kms:EncryptionContext:sagemaker:eks-cluster-arn": "${aws:PrincipalTag/eks-cluster-arn}" } } } ] }
3. Función de instancia gestionada por SSM (necesaria para el acceso remoto al IDE)
El rol de instancia gestionada por SSM se transfiere al registrar la instancia gestionada por SSM para habilitar el acceso remoto al IDE. Esta función permite al agente de SSM registrar el pod como instancia gestionada por SSM y utilizar los canales del administrador de sesiones de SSM para la conectividad IDE remota (SSH-over-SSM). Se puede crear automáticamente al utilizar la consola. AWS SageMaker En el caso de las implementaciones manuales, los clientes deben crear este rol y proporcionárselo al complemento Spaces. El módulo controlador en sí no asume esta función; solo la proporciona cuando se llamassm:CreateActivation.
Política de confianza de referencia
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "{{account}}" }, "ArnEquals": { "aws:SourceArn": "arn:aws:ssm:{{region}}:{{account}}:*" } } } ] }
Política de permisos de referencia
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:DescribeAssociation" ], "Resource": [ "arn:aws:ssm:{{region}}:{{account}}:association/*", "arn:aws:ssm:{{region}}:{{account}}:document/*", "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:GetDocument", "ssm:DescribeDocument" ], "Resource": "arn:aws:ssm:{{region}}:{{account}}:document/*" }, { "Effect": "Allow", "Action": [ "ssm:GetParameter", "ssm:GetParameters" ], "Resource": "arn:aws:ssm:{{region}}:{{account}}:parameter/*" }, { "Effect": "Allow", "Action": [ "ssm:ListInstanceAssociations" ], "Resource": [ "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:PutComplianceItems" ], "Resource": [ "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:UpdateAssociationStatus" ], "Resource": [ "arn:aws:ssm:{{region}}:{{account}}:document/*", "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:UpdateInstanceAssociationStatus" ], "Resource": [ "arn:aws:ssm:{{region}}:{{account}}:association/*", "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:UpdateInstanceInformation" ], "Resource": [ "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:GetDeployablePatchSnapshotForInstance", "ssm:GetManifest", "ssm:ListAssociations", "ssm:PutInventory", "ssm:PutConfigurePackageResult" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2messages:AcknowledgeMessage", "ec2messages:DeleteMessage", "ec2messages:FailMessage", "ec2messages:GetEndpoint" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2messages:GetMessages", "ec2messages:SendReply" ], "Resource": "*", "Condition": { "ArnLike": { "ssm:SourceInstanceARN": "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" } } } ] }
4. Función de IAM para el complemento EBS CSI Driver
La función de IAM para el controlador CSI de EBS es obligatoria porque el controlador CSI de EBS aprovisiona volúmenes persistentes para las cargas de trabajo de Spaces. Si bien la EBSCSIDriverpolítica de Amazon AWS gestionada proporciona permisos básicos, los SageMaker HyperPod clústeres requieren capacidades adicionales, como la creación rápida de restauraciones instantáneas, el etiquetado de volúmenes propiedad de los clústeres y attaching/detaching los volúmenes de los nodos gestionados. HyperPod Estos permisos también incluyen permisos específicos, como. SageMaker APIs sagemaker:AttachClusterNodeVolume Si el controlador CSI de EBS no está instalado, la SageMaker consola ahora creará automáticamente este rol durante la instalación del complemento Spaces, sin necesidad de que el cliente tome ninguna medida.
5. Función de IAM para el complemento de DNS externo
El complemento de DNS externo administra los registros de DNS de los servicios y los recursos de entrada del HyperPod clúster. Garantiza que a los puntos finales de Space y a los componentes del clúster se les puedan asignar automáticamente nombres DNS en las zonas alojadas de Route 53 del cliente. En la actualidad, los clientes suelen instalar el DNS externo de forma manual mediante una opción de 1 clic en la consola de EKS. Como parte de la mejora de la experiencia de SageMaker Spaces, la SageMaker consola ahora creará automáticamente esta función durante la instalación del complemento de Spaces, sin necesidad de que el cliente tome ninguna medida.
Configuración de permisos para que AWS Toolkit acceda a Spaces SageMaker
Para permitir que el panel lateral del explorador de recursos de AWS VS Code Toolkit detecte SageMaker Spaces y se conecte a ellos, se requieren los siguientes permisos de IAM. Estos permisos permiten al kit de herramientas enumerar SageMaker HyperPod los clústeres disponibles, recuperar los detalles del clúster y obtener un token de conexión para el clúster de Amazon EKS asociado.
Política de IAM obligatoria
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerListClusters", "Effect": "Allow", "Action": "sagemaker:ListClusters", "Resource": "*" }, { "Sid": "SageMakerDescribeCluster", "Effect": "Allow", "Action": "sagemaker:DescribeCluster", "Resource": "arn:aws:sagemaker:{{region}}:{{account}}:cluster/cluster-name" }, { "Sid": "EksDescribeCluster", "Effect": "Allow", "Action": "eks:DescribeCluster", "Resource": "arn:aws:eks:{{region}}:{{account}}:cluster/cluster-name" }, { "Sid": "EksGetToken", "Effect": "Allow", "Action": "eks:GetToken", "Resource": "*" } ] }
Recomendaciones de alcance
-
Sustituya el nombre del clúster por los SageMaker HyperPod clústeres específicos a los que deben acceder sus usuarios.
-
La GetToken acción eks: actualmente no admite restricciones a nivel de recursos y debe usar el recurso: «*». Se trata de una limitación del AWS servicio. La autenticación del lado del cliente se realiza a través de las entradas de acceso EKS.