View a markdown version of this page

Configuración de permisos - Amazon SageMaker AI

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

Las funciones requeridas Add-on 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 Add-on ejecución de Spaces

Siempre necesario

Permite que el controlador de Spaces gestione Spaces, genere URL prefirmadas y gestione sesiones de SSM

Add-on módulo controlador (privilegiado)

✔ Sí

In-Cluster Función de router

Necesario para el acceso a la WeBui

Permite que el pod del router realice operaciones de KMS para la firma JWT (autenticación WebUI)

In-cluster pod de enrutador (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 controlador CSI de EBS Add-on

Siempre es obligatorio

Permite al controlador CSI de EBS create/attach modificar/modificar los volúmenes para las cargas de trabajo de Spaces

Controlador EBS CSI Add-on

Creado automáticamente

Función de IAM para DNS externo Add-on

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.

DNS externo Add-on

Creado automáticamente

1. Función Add-on de ejecución de Spaces (obligatoria)

La función de Add-on ejecución de Spaces siempre es necesaria porque la utiliza el módulo controlador complementario de 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 URL prefirmadas 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. In-Cluster Función de router (necesaria para la autenticación de WeBui)

El pod del In-Cluster router utiliza la función de router, un componente privilegiado que autentica las sesiones de WeBui de Spaces. 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 SSM registrar el pod como instancia gestionada por SSM y utilizar los canales del administrador de sesiones 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 controlador CSI de EBS Add-on

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 el módulo AWS gestionado AmazonEBSCSIDriverPolicyproporciona permisos básicos, los SageMaker HyperPod clústeres requieren capacidades adicionales, como la creación rápida de restauraciones instantáneas y el etiquetado de los volúmenes que pertenecen a los clústeres y los volúmenes de los nodos. attaching/detaching HyperPod-managed Estos permisos también incluyen API como. SageMaker-specific 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 DNS externo Add-on

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 AWS Kit de herramientas para acceder a los espacios SageMaker

Para permitir que el panel lateral del explorador de recursos del 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.