Logotipo de Zephyrnet

Habilite Amazon SageMaker JumpStart para funciones de ejecución de IAM personalizadas

Fecha:

Con una Dominio de Amazon SageMaker, puede incorporar usuarios con un Gestión de identidades y accesos de AWS (IAM) rol de ejecución diferente al rol de ejecución del Dominio. En tal caso, el usuario de Dominio incorporado no puede crear proyectos usando plantillas y JumpStart de Amazon SageMaker soluciones Esta publicación describe un enfoque automatizado para habilitar JumpStart para usuarios de dominio con un rol de ejecución personalizado. Lo guiaremos a través de dos casos de uso diferentes para habilitar JumpStart y cómo resolver estos casos mediante programación. La solución automatizada puede ayudarlo a escalar su proceso para habilitar JumpStart para usuarios de dominio con roles personalizados, aumentando la productividad de su equipo de ciencia de datos y Estudio Amazon SageMaker administradores.

JumpStart es una función dentro de Studio que lo ayuda a comenzar rápida y fácilmente con el aprendizaje automático (ML). Con más y más clientes usando ML y adoptando cada vez más Amazon SageMaker, JumpStart facilita a los equipos de ciencia de datos y ML el acceso y el ajuste fino de más de 150 modelos populares de código abierto, como el procesamiento del lenguaje natural, la detección de objetos y los modelos de clasificación de imágenes.

Resumen de la solución

JumpStart requiere un dominio de SageMaker con plantillas de proyecto habilitadas para la cuenta y los usuarios de Studio, como se muestra en la siguiente captura de pantalla.

Si está habilitado, esta configuración permite a los usuarios (configurados para usar el rol de ejecución del dominio) crear proyectos usando plantillas y soluciones JumpStart. En el escenario donde el rol de ejecución del usuario es diferente al rol de ejecución del Dominio, JumpStart permanece deshabilitado para ese usuario incluso cuando está habilitado en el Dominio. Abordamos este escenario de rol personalizado y la solución automatizada en las siguientes secciones.

En esta solución, abordamos el problema para los siguientes dos casos:

  • Caso de uso 1 – Habilitación de JumpStart de manera automatizada para usuarios de dominio existentes con funciones personalizadas independientemente de las aplicaciones asignadas
  • Caso de uso 2 – Proporcionar un script de referencia que puede usar para habilitar JumpStart mediante programación mientras incorpora un nuevo usuario de Dominio con un rol personalizado

Incorporación de usuarios de dominio

Después de crear un dominio, puede incorporar usuarios para iniciar aplicaciones (como Studio, RStudio o Canvas). Debe asignar un rol de ejecución predeterminado a un usuario de Dominio durante el proceso de creación, como se muestra en la siguiente captura de pantalla.

Puede elegir una función diferente a la función de ejecución de dominio para un usuario. Sin embargo, esto puede deshabilitar JumpStart para dichos usuarios incluso cuando está habilitado en el Dominio. Este comportamiento se debe al hecho de que SageMaker no hace ninguna suposición sobre una función personalizada y su límite de permisos. Los permisos y las políticas necesarios deben asignarse explícitamente para acceder a plantillas y soluciones JumpStart publicadas por SageMaker en Catálogo de servicios de AWS.

Puede habilitar Proyectos de SageMaker y JumpStart manualmente para cada usuario seleccionando el perfil de usuario en el panel de control de Dominio de SageMaker. Sin embargo, este proceso puede llevar mucho tiempo si un usuario ya tiene algunas aplicaciones asignadas. los Editar El botón en la parte inferior derecha solo está habilitado cuando no hay aplicaciones asignadas a ese usuario (vea la siguiente captura de pantalla). Primero debe eliminar las aplicaciones asignadas para poder editar un perfil de usuario.

La causa de la función JumpStart deshabilitada es evidente durante el Paso 2 de la edición de un perfil de usuario, donde un mensaje dice "Si hay usuarios individuales que usan roles de ejecución personalizados en su organización, debe habilitarlos en la página de perfil de usuario".

En las siguientes secciones, lo guiaremos a través de dos soluciones automatizadas que cubren casos de uso para usuarios de Dominio nuevos y existentes.

Requisitos previos

Los pasos descritos como parte de esta solución tienen los siguientes requisitos previos:

  • Ha creado un dominio de SageMaker
  • El método de autenticación de SageMaker Domain es IAM
  • Las funciones personalizadas asignadas a los usuarios de SageMaker Domain tienen la AmazonSageMakerFullAccess póliza adjunta

Para poder Soluciones JumpStart para habilitarse para los usuarios, la cartera de AWS Service Catalog Amazon SageMaker Solutions y los productos ML Ops deben importarse a la cuenta, y esta cartera debe estar asociada con el rol que ejecuta SageMaker. La asociación de funciones es necesaria para que Studio pueda invocar las API de AWS Service Catalog asociadas con la cartera de soluciones.

Como práctica recomendada general, recomendamos probar el proceso en un entorno que no sea de producción seguido de pruebas de validación para asegurarse de que todo esté configurado y funcionando según sus expectativas antes de realizar cambios en el entorno de producción.

Caso de uso 1: habilite JumpStart para todos los usuarios de dominio existentes con un rol personalizado

Primero, consideremos el caso de uso para los usuarios existentes y habilitemos JumpStart para esos usuarios de forma automatizada.

Para lograrlo, hemos creado un Formación en la nube de AWS plantilla que puede ejecutar en la misma región donde existe el dominio de SageMaker.

La pila de CloudFormation contenida en el adjunto jumpstart_solutions_resources.template.yaml archivo tiene los siguientes componentes:

  • Amazon SageMakerServiceCatalogProductsLaunchRole y Amazon SageMakerServiceCatalogProductsUseRole – Crea estos dos roles de IAM, si
    ya no existen.
  • 1PProductUseRolePolicy – Crea esta política utilizada por AmazonSageMakerServiceCatalogProductsUseRole, si este rol aún no existe.
  • setup_solutions_tests_portafolio - Un AWS Lambda función que realiza la importación de la cartera de AWS Service Catalog y la asociación de funciones llamando a las API de Boto3. Esta función se llama una vez durante Creación de pilas de CloudFormation.
  • Rol de LambdaIAMRole – Utilizado por la función setup_solutions_tests_portfolio para llamar a las API de AWS Service Catalog y SageMaker.
  • ConfiguraciónPortafolioInvocador – Invoca la función setup_solutions_tests_portfolio.

Después de que la función Lambda se ejecuta como parte de la implementación de CloudFormation, actualiza todos los usuarios de SageMaker Domain existentes para habilitar JumpStart y Projects para ellos. Para obtener más información sobre cómo crear y monitorear una pila de CloudFormation, consulte Cómo funciona AWS CloudFormation.

Caso de uso 2: habilite JumpStart para un solo usuario de dominio con un rol personalizado

Muchos clientes prefieren escalar el proceso de incorporación de usuarios de Dominio automatizándolo mediante programación. En esta sección, proporcionamos una referencia de script de Python que puede usar como parte del proceso de incorporación para habilitar JumpStart para un nuevo usuario con un rol personalizado. Este script de Python realiza la asociación requerida para el rol de usuario dado. El proceso automatizado que llama a este script debe tener permiso para usar las API de AWS Service Catalog y SageMaker. Ver el siguiente código:

sagemaker_client = boto3.client("sagemaker")
sc_client = boto3.client("servicecatalog") # function to return 'Amazon SageMaker' portfolio id
def get_solutions_portfolio_id(sc_client): portfolio_shares = sc_client.list_accepted_portfolio_shares() for portfolio in portfolio_shares['PortfolioDetails']: if portfolio['ProviderName'] == 'Amazon SageMaker': return(portfolio['Id']) portfolio_id = get_solutions_portfolio_id(sc_client)
# import Solutions Service Catalog Portfolio sagemaker_client.enable_sagemaker_servicecatalog_portfolio() sc_client.associate_principal_with_portfolio( PortfolioId=portfolio_id, PrincipalARN=, # custom role ARN PrincipalType='IAM' )

Puede llamar al script de forma independiente o incrustarlo como un paso dentro de un proceso automatizado para crear un perfil de usuario para la incorporación a Studio. Para obtener más información sobre el uso de Boto3, consulte Referencia Boto3.

Limpiar

Después de que todos los roles personalizados estén habilitados para usar JumpStart, podemos limpiar los recursos que ya no se necesitan. Puede eliminar la función Lambda setup_solutions_tests_portfolio y el rol de IAM LambdaIAMRole creado por la plantilla de CloudFormation. Los otros dos roles de IAM, AmazonSageMakerServiceCatalogProductsLaunchRole y AmazonSageMakerServiceCatalogProductsUseRole, y la política asociada 1PProductUseRolePolicy (si se creó) no se deben eliminar porque deben existir para acceder a JumpStart.

Conclusión

En esta publicación, compartimos los pasos para habilitar JumpStart para un rol personalizado para usuarios existentes y nuevos usuarios mediante programación. Como siempre, asegúrese de validar los pasos mencionados en esta solución en un entorno que no sea de producción antes de implementarla en producción.

¡Pruébelo y háganos saber si tiene alguna pregunta en la sección de comentarios!

Recursos adicionales

Para obtener más información, consulte lo siguiente:


Acerca de los autores

Nikhil Jha es gerente técnico sénior de cuentas en Amazon Web Services. Sus áreas de enfoque incluyen AI/ML y análisis. En su tiempo libre, le gusta jugar al bádminton con su hija y explorar el aire libre.

Evan Kravitz es ingeniero de software en Amazon Web Services y trabaja en SageMaker JumpStart. Le gusta cocinar y salir a correr en la ciudad de Nueva York.

punto_img

Información más reciente

punto_img