Atribución de costos de Amazon Bedrock con Athena y CUDOS: guía práctica
Amazon Bedrock ahora permite rastrear cada inferencia hasta el IAM principal que la invocó. Aquí verán cómo activar CUR 2.0 con datos de caller identity, conectar esos informes a Athena y aprovechar dashboards CUDOS para visualización y chargeback.
Introducción
Amazon Bedrock incorporó capacidades para atribuir costos a nivel de IAM principal, lo que permite enlazar cada solicitud de inferencia con el actor que la ejecutó. Esto facilita calcular costos por usuario, aplicación, equipo o tenant, y es especialmente útil para organizaciones en América Latina que necesitan visibilidad para gobernanza, facturación interna o modelos de chargeback.
En esta guía explico cómo configurar Cost and Usage Report (CUR) 2.0 con datos de IAM principal, cómo conectar esos informes a Amazon Athena para análisis SQL y cómo aprovechar los dashboards CUDOS para visualizaciones preconstruidas. También señalo consideraciones operativas importantes para el almacenamiento y el manejo de archivos CUR.
Por qué importa la atribución granular
Tener la columna line_item_iam_principal en CUR permite responder preguntas concretas: ¿qué usuarios o roles están llamando determinados modelos? ¿Qué aplicaciones consumen más tokens o costos? En entornos multi-equipo o multi-tenant —comunes en empresas y proveedores de software en Latinoamérica— esta visibilidad soporta políticas de costo, optimización y cumplimiento.
Athena ofrece mucha flexibilidad para consultas ad hoc, agregaciones y exportación de resultados a procesos de chargeback. CUDOS, por su parte, aporta dashboards ya diseñados que se ajustan a estructuras organizacionales y aceleran la visualización operativa y financiera.
Requisitos previos
Antes de comenzar necesitan:
- Una cuenta AWS con acceso a la consola de facturación.
- Permisos IAM para administrar Cost and Usage Reports, S3 y Athena.
- Un bucket S3 donde se almacenarán los reportes CUR.
- Conocimientos básicos de SQL y la consola AWS.
- (Opcional) Herramientas como Claude Code o Kiro-CLI para automatizar la configuración.
Además, para que la atribución funcione deben habilitar en CUR 2.0 la inclusión de datos de caller identity (IAM principal) de forma explícita; esto es lo que alimenta la columna line_item_iam_principal.
Configurar CUR 2.0 con datos de IAM principal
Sigan el flujo para crear una exportación estándar CUR 2.0. Durante la configuración, verifiquen estas opciones clave:
-
En “Additional export content” marquen: “Include caller identity (IAM principal) allocation data”. Este ajuste es esencial: permite que CUR genere la columna line_item_iam_principal y las etiquetas de IAM (prefijo iamPrincipal/).
-
En “Data table configurations”, seleccionen “Time granularity: Hourly” para obtener el mayor detalle temporal.
-
En “Data export delivery options”, configuren “File versioning: Overwrite existing report” para evitar duplicación de archivos.
Importante: al habilitar los datos de IAM principal, los archivos CUR crecerán porque lo que antes cabía en una fila puede expandirse en varias, una por cada principal que participó en el uso. Planifiquen capacidad S3 y consideren políticas de ciclo de vida para retener solo lo necesario.
También tengan en cuenta que la entrega del primer reporte CUR 2.0 puede tardar hasta 24 horas.
Conectar CUR 2.0 a Amazon Athena
Athena les permite interrogar los archivos CUR con SQL sin gestionar infraestructura. AWS ofrece un repositorio de ejemplo que automatiza el flujo de trabajo de conexión y prueba:
Flujo opcional automatizado:
- Clonen el repositorio: git clone https://github.com/aws-samples/sample-cur-iam-principal-bedrock-tracking
- Desde ese directorio pueden lanzar herramientas como Claude Code o Kiro CLI (si las usan) y seguir el archivo agent.md para la configuración automatizada.
Si prefieren la ruta manual, creen la tabla Athena apuntando al prefijo del bucket S3 donde llega el CUR. Si planean desplegar dashboards CUDOS, pueden instalar el stack desde AWS CloudFormation; la plantilla también instala la base de datos y las consultas de Athena necesarias.
Para comprobar la integración, ejecuten una consulta de prueba en Athena (reemplazando your_cur_table_name por el nombre real de su tabla CUR):
SELECT line_item_iam_principal, line_item_usage_type, line_item_unblended_cost —# Note: replace your_cur_table_name, like cid_data_export.cur2
FROM your_cur_table_name
WHERE line_item_product_code in (‘AmazonBedrock’, ‘AmazonBedrockService’)
AND line_item_iam_principal IS NOT NULL
LIMIT 10;
Si la consulta devuelve ARNs de IAM principal y tipos de uso de Bedrock, la configuración está lista para análisis más profundos.
Patrones de consulta y análisis con Athena
Con CUR disponible en Athena pueden construir distintos análisis según sus necesidades:
-
Desglose por IAM principal y tipo de uso: responde quién llamó qué modelos y cuánto costó. Esto sirve para asignar costos por aplicación o por usuario.
-
Agregaciones por etiquetas (cost allocation tags): si usan etiquetas de costos en recursos o en líneas de uso, pueden sumar gasto por equipo, proyecto o tenant.
-
Tendencias temporales y picos de uso: con granularidad horaria pueden detectar patrones diario/semana y anomalías que requieren optimización.
Athena es ideal cuando necesitan flexibilidad para generar reportes ad hoc, integrarlos con pipelines de datos o alimentar procesos de facturación interna.
CUDOS: dashboards preconstruidos para Bedrock
CUDOS ofrece paneles listos para usar que incorporan la atribución granular de Bedrock. Ventajas de CUDOS:
- Visuales adaptados a estructuras organizacionales y a procesos de chargeback.
- Implementación mediante CloudFormation que puede desplegar la base Athena junto con los dashboards.
Mientras Athena cubre la parte analítica y de consultas avanzadas, CUDOS acelera la adopción al presentar métricas y gráficos ya diseñados para equipos financieros, de producto e ingeniería.
Consideraciones prácticas para organizaciones en Latinoamérica
-
Gobernanza y cumplimiento: la atribución por IAM facilita auditorías internas y cumplimiento de políticas de acceso en entornos regulatorios.
-
Modelos de negocio y chargeback: proveedores de software y empresas con múltiples unidades de negocio pueden usar estos datos para asignar costos correctamente.
-
Costos operativos: planifiquen S3 y políticas de retención para evitar gastos innecesarios por archivos CUR más voluminosos.
Pasos siguientes y lista de verificación
- Habilitar CUR 2.0 con “Include caller identity (IAM principal) allocation data”.
- Configurar Time granularity en Hourly y file versioning en Overwrite existing report.
- Crear tabla en Athena apuntando al prefijo S3 del CUR.
- Ejecutar la consulta de prueba para validar la presencia de line_item_iam_principal.
- Evaluar despliegue de CUDOS vía CloudFormation para obtener dashboards preconstruidos.
- Implementar políticas S3 Lifecycle según el volumen de datos.
Conclusión
La atribución granular de Amazon Bedrock combina visibilidad técnica con herramientas de análisis y visualización (Athena y CUDOS) que permiten a equipos en América Latina gestionar costos, implementar chargeback y reforzar la gobernanza. Con una configuración de CUR 2.0 adecuada y una estrategia de almacenamiento, podrán convertir datos de uso en decisiones financieras y operativas más precisas.
Fuente original: AWS ML Blog