Introducción
Provisionar entornos de Amazon SageMaker Unified Studio manualmente consume tiempo y genera inconsistencias entre cuentas y entornos. La nueva integración con Terraform resuelve este problema al permitir que los equipos de infraestructura definan, versionen y desplieguen dominios de SageMaker como código, integrándose nativamente con pipelines de IaC existentes. En esta guía, vas a crear un dominio de SageMaker Unified Studio usando el módulo oficial terraform-aws-sagemaker-unified-studio, configurar IAM roles mínimos necesarios y desplegar proyectos dentro del dominio. El resultado será un entorno reproducible, gobernado y conectado a tus servicios de AWS.
Qué es y para qué sirve
Amazon SageMaker Unified Studio es un entorno unificado de desarrollo para equipos de datos que abarca desde integración de datos hasta modelos de ML y GenAI, todo gobernado por un catálogo compartido. Hasta ahora, provisionar estos dominios requería clicks en la consola o scripts ad-hoc. Con el soporte de Terraform, podés:
- Automatizar dominios: Definir dominios de SageMaker en Terraform y desplegarlos en múltiples cuentas/regiones usando tus pipelines de IaC.
- Controlar acceso: Asignar IAM roles específicos a usuarios y grupos dentro del dominio.
- Gobernanza centralizada: Usar perfiles de proyecto y blueprints para estandarizar entornos de desarrollo, staging y producción.
- Integración nativa: El módulo usa el Terraform AWS Cloud Control Provider para manejar recursos AWS directamente.
El módulo oficial terraform-aws-sagemaker-unified-studio abstrae la complejidad de configurar dominios, roles IAM y proyectos, permitiendo que te enfoques en la lógica de tus pipelines.
Prerequisitos
Verificá que cumplís con estos requisitos antes de empezar:
| Componente | Versión mínima | Notas |
|---|---|---|
| **Terraform** | 1.6.0+ | Usá [tfenv](https://github.com/tfutils/tfenv) para gestionar versiones. |
| **AWS Provider** | 5.0+ | En BLOCK15 del proyecto. |
| **AWS CLI** | 2.13.0+ | Para validar credenciales. |
| **IAM Permissions** |
