Puede integrar watsonx.governance as a Service en AWS con Amazon SageMaker para aportar las capacidades de gobernanza, riesgo y conformidad de watsonx.governance a sus modelos de Amazon SageMaker.
Antes de empezar
Debe disponer de los siguientes servicios:
- Una instancia de watsonx.governance
- Una instancia de Amazon SageMaker
Configure los siguientes servicios en AWS:
- CloudTrail: Los eventos de Amazon SageMaker se publican en CloudTrail.
- Servicio de cola simple (SQS): Utilice este servicio para configurar una cola para sus modelos de Amazon SageMaker. Para obtener más información, consulte Configuración de Amazon SQS.
- EventBridge: Utilice este servicio para definir reglas que extraigan los cambios de tarjeta de modelo de Amazon SageMaker a una cola FIFO de Simple Queue Service (SQS).
- Gestor de acceso a recursos: Utilice este servicio para crear registros centrales de modelos y agrupar sus recursos para gestionarlos. Para obtener más información, consulte Instalación y configuración del Explorador de recursos.
Asegúrese de que los servicios CloudTrail y EventBridge se están ejecutando.
Planificación de la configuración
Credenciales para la conexión
Decida cómo desea configurar el acceso entre watsonx.governance y Amazon SageMaker. Puede utilizar un rol de cuenta cruzada o claves de acceso.
- Para utilizar una función de cuenta cruzada, consulte Creación de una función multicuenta.
- Para utilizar las teclas de acceso, consulte Configuración de las teclas de acceso.
Cuentas
Cada conexión a Amazon SageMaker se realiza a una cuenta que posee un registro de modelos centralizado. Puede conectarse a un máximo de diez cuentas diferentes, cada una con un modelo de registro. Para obtener más información sobre el uso de más de un registro de modelos central, consulte Guidance for Multi-Account Machine Learning Model Governance on AWS.
Entidades empresariales
Decida qué entidades empresariales desea utilizar. Necesita una entidad empresarial independiente para cada conexión de Amazon SageMaker que configure. Esta unidad económica debe estar en el nivel raíz y no ser hija de ninguna otra unidad económica. Sólo los casos de uso bajo la entidad empresarial configurada, junto con sus grupos de modelos y modelos asociados, se rigen por watsonx.governance y Amazon SageMaker.
La entidad de negocio es el padre de los casos de uso, pero no tiene por qué ser el padre principal. Puede utilizar la entidad empresarial para otros fines.
Los usuarios deben seleccionar la entidad de negocio cuando crean casos de uso. Asegúrese de que sus usuarios saben qué entidad empresarial deben utilizar. Además, asegúrese de que los aprobadores de casos de uso comprueban que la entidad empresarial está configurada correctamente antes de aprobar un caso de uso. Si la entidad empresarial no se configura correctamente antes de aprobar un caso de uso, el caso de uso y sus grupos de modelos y modelos hijos no se sincronizarán con Amazon SageMaker.
Por ejemplo, si un usuario selecciona un hijo de la entidad empresarial configurada y el caso de uso se aprueba, el trabajo de sincronización no sincroniza el caso de uso con Amazon SageMaker.
Para ayudar a los usuarios, utilice dominios de seguridad para darles acceso a las entidades empresariales específicas que necesiten.
Realice los pasos siguientes:
- Para cada conexión, decida qué entidad empresarial utilizar. Si desea utilizar una nueva entidad empresarial, créela antes de configurar la conexión con Amazon SageMaker. Para crear una entidad de negocio, debe tener permisos administrativos.
- En la consola Gobernanza, conceda a los usuarios acceso al dominio de seguridad de la entidad empresarial. Por ejemplo, cree un grupo, añada usuarios al grupo y, a continuación, asocie el grupo al dominio de seguridad de la entidad empresarial. Para más información, consulte Dominios de seguridad.
Perfil por defecto y usuario por defecto
Para cada conexión, se necesita un perfil por defecto y un usuario por defecto.
El perfil por defecto se utiliza para generar los enlaces pre-firmados en las vistas de tareas. Estos enlaces abren Amazon SageMaker utilizando el perfil por defecto. Otorgue al perfil predeterminado los derechos de acceso mínimos que necesitan los usuarios de gobernanza para obtener más información sobre grupos de modelos y modelos en Amazon SageMaker.
El enlace pre-firmado es válido durante cinco minutos. Transcurrido ese tiempo, los usuarios deben actualizar la vista de la tarea para regenerar el enlace.
El usuario por defecto se utiliza en los siguientes casos:
- Cuando un modelo no tiene un propietario asignado, el propietario del modelo se establece en este usuario por defecto.
- Cuando el propietario de un modelo no tiene una cuenta en la consola Gobernanza, el propietario del modelo se establece en este usuario por defecto.
Configuración de credenciales
Puede utilizar una función de cuenta cruzada o claves de acceso para conectarse a Amazon SageMaker. Considere la posibilidad de utilizar un rol de cuenta cruzada para mejorar la seguridad.
Creación de una función multicuenta
Esta tarea es necesaria si desea utilizar una función de cuenta cruzada para integrar Amazon SageMaker con watsonx.governance. Para obtener más información, consulte Acceso a recursos de cuentas cruzadas en IAM.
Para configurar la función de cuentas cruzadas, siga estos pasos:
- Generar un ID externo para la cuenta de AWS.
- Adjunte las siguientes políticas al rol:
AmazonSageMakerFullAccess
yAmazonSQSFullAccess
. - Añada el ID externo a la política de confianza del rol.
Ejemplo de definición de función
Puede utilizar el siguiente script de Terraform como guía para crear el rol de cuenta cruzada.
El script realiza las siguientes acciones:
- El script crea un rol IAM que se llama
Aws_Sagemaker_Sqs_Cross_Account_Role
. - El script asigna el ID externo
123456
al rol. - El script da acceso al rol a los siguientes servicios:
sqs.amazonaws.com
sagemaker.amazonaws.com
- A continuación, el script adjunta las siguientes políticas al rol:
AmazonSQSFullAccess
AmazonSageMakerFullAccess
En la línea siguiente, sustituya 999999999999
por el ID de la cuenta de producción de watsonx.governance.
+ AWS = "arn:aws:iam::999999999999:root"
Donde:
arn:aws:iam::767397658217:root
es el ID de la cuenta de producción watsonx.governance cuando el cliente instala una instancia desde AWS Marketplace.arn:aws:iam::384547875043:root
es el ID de la cuenta de producción de watsonx.governance cuando el usuario instala una instancia desde IBM.# module.iam.aws_iam_role.aws_sagemaker_sqs_cross_account_role[0] will be created + resource "aws_iam_role" "aws_sagemaker_sqs_cross_account_role" { + arn = (known after apply) + assume_role_policy = jsonencode( { + Statement = [ + { + Action = "sts:AssumeRole" + Condition = { + StringEquals = { + "sts:ExternalId" = "123456" } } + Effect = "Allow" + Principal = { + AWS = "arn:aws:iam::999999999999:root" + Service = [ + "sqs.amazonaws.com", + "sagemaker.amazonaws.com", ] } }, ] + Version = "2012-10-17" } ) + create_date = (known after apply) + force_detach_policies = false + id = (known after apply) + managed_policy_arns = (known after apply) + max_session_duration = 3600 + name = "Aws_Sagemaker_Sqs_Cross_Account_Role" + name_prefix = (known after apply) + path = "/" + tags_all = (known after apply) + unique_id = (known after apply) } # module.iam.aws_iam_role_policy_attachment.AmazonSQSFullAccess_role_policy_attach[0] will be created + resource "aws_iam_role_policy_attachment" "AmazonSQSFullAccess_role_policy_attach" { + id = (known after apply) + policy_arn = "arn:aws:iam::aws:policy/AmazonSQSFullAccess" + role = "Aws_Sagemaker_Sqs_Cross_Account_Role" } # module.iam.aws_iam_role_policy_attachment.AmazonSageMakerFullAccess_cross_role_policy_attach[0] will be created + resource "aws_iam_role_policy_attachment" "AmazonSageMakerFullAccess_cross_role_policy_attach" { + id = (known after apply) + policy_arn = "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess" + role = "Aws_Sagemaker_Sqs_Cross_Account_Role" }
Configurar una clave de acceso
Realice esta tarea si desea utilizar claves de acceso para conectar Amazon SageMaker con watsonx.governance.
En AWS, configure una clave de acceso a largo plazo para la integración con watsonx.governance. Sus credenciales deben tener el siguiente acceso:
- Acceso programático a Simple Queue service (SQS)
- Acceso programático a las API de Amazon SageMaker
- Permisos para actualizar tarjetas modelo en Amazon SageMaker
Para obtener más información, consulte Credenciales de seguridad deAWS.
Configuración de los servicios AWS para la integración
Realice los pasos siguientes:
- Configurar una cola SQS
- Crear una cuenta Amazon EventBridge rule and add your SQS queue as the target for the rule.
Configuración de una cola SQS
La integración utiliza una cola SQS para recibir notificaciones de cualquier cambio en los grupos de modelos y en los modelos.
Para cada conexión, configure una cola SQS en la cuenta.
Para configurar una cola SQS, siga estos pasos:
- En la consola AWS, seleccione el servicio Simple Queue Service.
- Haga clic en Crear cola.
- Escriba un nombre para la cola y, a continuación, introduzca la siguiente información:
- Tipo: FIFO
- Tiempo de espera de visibilidad: 30 segundos
- Periodo de conservación de mensajes: 4 días
- Tamaño máximo del mensaje: 256 KB
- Retraso en la entrega: 0
- Tiempo de espera de recepción de mensajes: 0
- En Configuración de la cola FIFO, active las siguientes opciones:
- Deduplicación basada en contenidos
- Cola FIFO de alto rendimiento
Se define la cola SQS. A continuación, configure una regla EventBridge.
Configuración de una regla EventBridge
Para configurar una regla EventBridge y añadir su cola SQS como destino, siga estos pasos:
- En la consola AWS, seleccione el servicio Amazon EventBridge.
- Pulse Crear regla.
- Escriba un nombre para la regla y haga clic en Siguiente.
- Para el origen del evento, haga clic en Otro.
- Para el método de creación, haga clic en Patrón personalizado (editor JSON) y, a continuación, introduzca el siguiente JSON para Patrón de eventos:
{ "source": ["aws.sagemaker"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["sagemaker.amazonaws.com"], "eventName": ["CreateModelPackage", "CreateModelPackageGroup" "DeleteModelPackage", "DeleteModelPackageGroup", "UpdateModelPackage"] } }
- Pulse Siguiente.
- Establezca como destino la cola SQS que ha creado.
- Haga clic en Siguiente en las páginas restantes y, a continuación, en Crear regla.
Ahora tiene una regla EventBridge con su cola SQS como objetivo de la regla.
Configuración de la integración
Para realizar esta tarea, necesita las credenciales AWS.
- Si está utilizando un rol de cuenta cruzada, necesita la siguiente información:
- El nombre de recurso de Amazon (ARN) del rol.
- El ID externo del rol.
- La URL del servicio Amazon SQS que configuraste para la integración.
- El ARN del perfil por defecto para las URL preasignadas.
- Si utilizas claves de acceso, necesitas la siguiente información:
- Su ID de cuenta AWS.
- El ID de la clave de acceso y el ID secreto que configuraste para la integración.
- La URL del servicio Amazon SQS que configuraste para la integración.
- El ARN del perfil por defecto para las URL preasignadas.
Permiso necesario: Se necesita el permiso de aplicación All/SOX/Administration/SageMaker en la consola de Gobernanza.
Para configurar la integración, siga estos pasos:
- Inicie sesión en la consola Gobernanza como administrador.
- Haga clic en > Integraciones > Amazon SageMaker.
- Pulse Nueva conexión.
- En Configuración general, realice los siguientes pasos:
- Especifique una descripción.
- Seleccione la entidad empresarial matriz para esta conexión de Amazon SageMaker. Utilice una unidad económica diferente para cada conexión que configure. Para más información, consulte Entidades empresariales.
- Seleccione un usuario por defecto. Para más información, consulte Perfil predeterminado y usuario predeterminado.
- En Credenciales de la cuenta deAWS, introduzca las credenciales de su cuenta de AWS y la región.
- En el campo ARN del perfil predeterminado, escriba el ARN del perfil predeterminado que creó para su cuenta.
- Escriba las credenciales.
- Para configurar el acceso mediante una función, haga clic en Función entre cuentas. Introduzca el ARN del rol y el ID externo.
- Para configurar el acceso mediante teclas, haga clic en Teclas de acceso. Introduzca el ID de su cuenta de AWS, el ID de la clave de acceso y el ID de la clave secreta.
- Escriba la región de su instancia watsonx.governance, por ejemplo
us-east-1
.
- En Modelo SQS URL, introduzca la URL de la cola SQS que configuró para la cuenta.
- Haga clic en Probar conexión y, a continuación, en Guardar.
- Haga clic en el conmutador para activar la integración. Se inicia el proceso de sincronización automática. Para ver el progreso, haga clic en Otros > Procesos en segundo plano. Este proceso sincroniza las actualizaciones a partir de ese momento.
- Si dispone de modelos existentes en Amazon SageMaker, deberá ejecutar una sincronización manual. Haga clic en Sincronizar la información existente del modelo. La tabla de sincronizaciones SageMaker muestra el progreso de la sincronización manual de la cuenta.
Tus modelos de Amazon SageMaker ya están disponibles en la consola de Gobernanza.
Si ya dispone de grupos de modelos y modelos en Amazon SageMaker que se crearon fuera del flujo de trabajo de casos de uso watsonx.governance, deberá vincular manualmente los grupos de modelos a sus casos de uso asociados.
Sincronización de datos
El proceso de sincronización automática está a la escucha de las siguientes acciones:
- Paquete modelo creado en Amazon SageMakerCreateModelPackage )
- Paquete modelo actualizado en Amazon SageMakerUpdateModelPackage )
- Paquete modelo eliminado en Amazon SageMakerDeleteModelPackage )
- Grupo de modelos creado ( CreateModelPackageGroup )
- Grupo de modelos eliminado DeleteModelPackageGroup )
Para ver el estado de los procesos de sincronización automatizados, haga clic en Otros > Procesos en segundo plano.
Para ver el estado de los procesos de sincronización manual, haga clic en > Integraciones > Amazon SageMaker. La tabla de sincronizaciones SageMaker enumera los procesos de sincronización manual para todas las conexiones. Para ver el estado de una conexión concreta, haga clic en su nombre en la tabla Conexiones.
Más información
Más información sobre estos flujos de procesos:
Tema principal: Configuración del entorno watsonx.governance en AWS