Introducción
Hasta ahora, los equipos que usaban Amazon SageMaker Feature Store para gestionar features en modelos de ML tenían que recurrir a herramientas externas para aplicar controles de acceso y configurar propiedades avanzadas de almacenamiento. Esto generaba fricciones entre los flujos de trabajo de data scientists y los requisitos de gobernanza de datos. Con el lanzamiento del soporte para SageMaker Python SDK v3, AWS elimina esa brecha al integrar capacidades nativas para:
- Control de acceso con Lake Formation: aplicar políticas de seguridad a nivel de columna y fila directamente desde la definición de los feature groups.
- Configuración de Apache Iceberg: ajustar propiedades de tablas como compresión, caducidad de snapshots y otros parámetros de rendimiento sin salir del SDK.
El cambio reduce la complejidad operativa y alinea la gestión de features con los estándares de gobernanza de AWS, algo crítico en entornos con múltiples equipos y conjuntos de datos sensibles.
Qué ocurrió
El 15 de mayo de 2025 AWS anunció que el SageMaker Python SDK v3 (versión 3.8.0 o superior) ahora soporta nativamente las siguientes funcionalidades en Amazon SageMaker Feature Store:
- Integración con AWS Lake Formation:
- Soporte para Apache Iceberg:
– compaction_mode (ej: full, incremental)
– snapshot_expire_minutes (ej: 1440 para 24 horas)
– write.format (ej: parquet)
Estas propiedades impactan directamente en el rendimiento de consultas y el almacenamiento en el offline store.
- Mejora en la experiencia del SDK:
> «Estas capacidades permiten a los data scientists gobernar el acceso a los datos de features y optimizar el rendimiento del offline store desde un solo SDK, sin necesidad de gestionar herramientas separadas.»
> — AWS What’s New, 15/05/2025
Impacto para DevOps / Infraestructura / Cloud / Seguridad
Para equipos de Cloud y DevOps
- Reducción de dependencias: antes, para aplicar controles de acceso avanzados, se requería integrar Lake Formation manualmente o usar políticas de IAM en S3/Glue. Ahora todo se gestiona desde el SDK.
- Consistencia en la configuración: las propiedades de Iceberg (ej:
compaction_mode) se aplican en el mismo flujo que la creación del feature group, evitando inconsistencias entre herramientas. - Escalabilidad: al centralizar la gestión en el SDK, los equipos pueden automatizar la creación de feature groups con políticas predefinidas usando scripts de Terraform o AWS CDK.
Para equipos de Seguridad
- Control granular sin complejidad: Lake Formation permite definir políticas como:
# Ejemplo de política de Lake Formation aplicada a un feature group
ColumnFilter:
- ColumnNames: ["credit_score", "transaction_amount"]
FilterExpression: "user_type = 'premium'"
Esto evita exponer datos sensibles (ej: PII) en consultas no autorizadas.
- Auditoría simplificada: las acciones en el offline store quedan registradas en CloudTrail sin configuraciones adicionales.
Para equipos de ML y Data Science
- Flujo de trabajo unificado: los data scientists pueden definir desde el SDK tanto la estructura de los features como las políticas de acceso y optimización, sin depender de equipos de infraestructura.
- Rendimiento predecible: configurar
compaction_modeosnapshot_expire_minutesdirectamente en el SDK evita cuellos de botella en consultas recurrentes (ej: entrenamiento de modelos nocturnos).
Métricas de adopción
Según el anuncio de AWS, la migración al SDK v3 es optativa pero recomendada para equipos que ya usaban SageMaker Feature Store. La versión mínima requerida es 3.8.0, lanzada el mismo día que el anuncio.
Detalles técnicos
Componentes afectados
| Componente | Versión afectada | Rol |
|---|---|---|
| SageMaker Python SDK | ≥ 3.8.0 | Cliente para gestión de Feature Store |
| SageMaker Feature Store | Todas las regiones | Servicio de almacenamiento de *features* |
| AWS Lake Formation | Disponible en todas las regiones | Motor de controles de acceso |
| Apache Iceberg | Integración nativa con Feature Store | Motor de tablas para el *offline store* |
- API del SDK:
create_feature_group ahora acepta dos nuevos parámetros opcionales: # Ejemplo de creación de un feature group con controles de Lake Formation y Iceberg
sagemaker_client.create_feature_group(
FeatureGroupName="customer_features",
RecordIdentifierName="customer_id",
EventTimeFeatureName="event_timestamp",
RoleArn="arn:aws:iam::123456789012:role/SageMakerFeatureStoreRole",
OnlineStoreConfig={"EnableOnlineStore": True},
OfflineStoreConfig={
"S3StorageConfig": {
"S3Uri": "s3://my-bucket/feature-store/"
},
"DataCatalogConfig": {
"LakeFormationIntegration": {
"EnableLakeFormation": True, # Habilita controles de acceso
"ColumnFilters": [
{
"ColumnName": "ssn",
"FilterExpression": "department = 'finance'"
}
]
},
"IcebergTableConfig": {
"TableProperties": {
"compaction_mode": "full", # Configuración de Iceberg
"snapshot_expire_minutes": "1440"
}
}
}
}
)
– LakeFormationIntegration: activa los controles de acceso basados en Lake Formation.
– IcebergTableConfig: permite definir propiedades avanzadas de Iceberg directamente en la creación del feature group.
- Requisitos previos:
lakeformation:GrantPermissions).– Iceberg: el offline store debe estar configurado para usar Iceberg (opción por defecto en nuevas instalaciones de SageMaker Feature Store desde 2024).
- Limitaciones conocidas:
– Las propiedades de Iceberg configuradas via SDK no pueden ser modificadas una vez creado el feature group; requieren recreación del feature group.
Comandos útiles para verificación
# Verificar versión del SDK instalado
pip show sagemaker | grep Version
# Verificar permisos de Lake Formation para un rol
aws lakeformation list-permissions --principal-identifier arn:aws:iam::123456789012:role/SageMakerFeatureStoreRole
# Consultar propiedades de Iceberg de un feature group (vía Athena)
SELECT table_properties
FROM "sagemaker_iceberg"."feature_store_db"."customer_features"
LIMIT 1;Qué deberían hacer los administradores y equipos técnicos
1. Actualizar el SDK y revisar permisos
Para equipos de DevOps/Cloud:- Actualizar el SageMaker Python SDK a la versión 3.8.0 o superior:
pip install --upgrade "sagemaker>=3.8.0"
- Verificar que el rol de IAM usado por SageMaker Feature Store tenga permisos para:
lakeformation:GrantPermissions– sagemaker:CreateFeatureGroup
– glue:GetDatabase y glue:GetTable (si se usa Glue Data Catalog).
- Revisar las políticas de Lake Formation existentes para evitar conflictos con los nuevos controles. Ejemplo de política mínima requerida:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"lakeformation:GrantPermissions"
],
"Resource": [
"arn:aws:lakeformation:us-east-1:123456789012:table/sagemaker_iceberg/feature_store_db/*"
],
"Principal": {
"AWS": "arn:aws:iam::123456789012:role/SageMakerFeatureStoreRole"
}
}
]
}
2. Migrar feature groups existentes (opcional pero recomendado)
Si ya tienes feature groups creados, puedes:
- Crear un nuevo feature group con las configuraciones deseadas (Lake Formation + Iceberg).
- Copiar los datos usando AWS Glue o un script personalizado:
import boto3
import pandas as pd
# Leer datos del feature group antiguo
old_fg = boto3.client('sagemaker').describe_feature_group(FeatureGroupName='old_group')
df = pd.read_parquet(old_fg['OfflineStoreConfig']['S3StorageConfig']['S3Uri'])
# Escribir en el nuevo feature group (requiere permisos de escritura)
new_fg = boto3.client('sagemaker').describe_feature_group(FeatureGroupName='new_group')
df.to_parquet(new_fg['OfflineStoreConfig']['S3StorageConfig']['S3Uri'])
- Actualizar las referencias en los modelos de ML y pipelines.
> Nota: AWS no soporta migración automática de controles de acceso o propiedades de Iceberg para feature groups existentes.
3. Configurar Lake Formation para equipos de ML
Pasos para habilitar Lake Formation en un feature group:- Habilitar Lake Formation en la cuenta AWS (si no está activo).
- Asignar permisos a los roles de los data scientists:
aws lakeformation grant-permissions \
--principal-data-lake-principal-identifier "arn:aws:iam::123456789012:role/DataScientistRole" \
--resource-catalog-id "sagemaker_iceberg" \
--permissions "SELECT" \
--database-resource "feature_store_db" \
--table-resource "*"
- Aplicar filtros de columna al crear el feature group (ej: ocultar
ssnpara roles no autorizados).
4. Optimizar el offline store con Iceberg
Recomendaciones para configurar Iceberg:- Modo de compresión:
compaction_mode=incremental– Para datos históricos: compaction_mode=full
- Caducidad de snapshots:
# Ejemplo en la creación del feature group
"IcebergTableConfig": {
"TableProperties": {
"compaction_mode": "incremental",
"snapshot_expire_minutes": "10080" # 7 días
}
}
- Formato de datos:
parquet para compatibilidad con Athena/Redshift.– Usar avro si se requiere integración con Kafka.
5. Validar la configuración
Pruebas recomendadas:- Acceso restringido:
# Intentar consultar un feature group sin permisos de Lake Formation
aws athena start-query-execution \
--query-string "SELECT * FROM sagemaker_iceberg.feature_store_db.customer_features LIMIT 10" \
--work-group "primary"
Debería fallar con error de permisos.
- Propiedades de Iceberg:
-- En Athena, verificar que las propiedades se aplicaron
SELECT table_properties['compaction_mode'] AS compaction_mode
FROM "sagemaker_iceberg"."feature_store_db"."customer_features";
Conclusión
La incorporación del soporte para SageMaker Python SDK v3 en Amazon SageMaker Feature Store marca un avance significativo en la gobernanza y optimización de features para equipos de ML. Al integrar controles de acceso con Lake Formation y configuración de Apache Iceberg directamente en el SDK, AWS reduce la fricción entre los flujos de trabajo de data science y los requisitos de infraestructura, permitiendo:
- Gobernanza unificada: aplicar políticas de seguridad sin salir del SDK.
- Rendimiento optimizado: configurar propiedades de Iceberg para evitar cuellos de botella en consultas.
- Automatización: integrar la creación de feature groups en pipelines de CI/CD con Terraform o AWS CDK.
Los equipos que adopten estas capacidades ganarán en agilidad y consistencia, especialmente en entornos multi-equipo o con datos sensibles. La actualización al SDK v3.8.0+ es el primer paso, pero la verdadera ventaja competitiva surgirá de rediseñar los flujos de trabajo alrededor de estas nuevas capacidades, aprovechando Lake Formation para auditorías y Iceberg para eficiencia en el almacenamiento.
FIN
