Guia de Configuracion de Google Cloud
Esta guia lo acompana paso a paso en la creacion de una Service Account con acceso de solo lectura para CLARITY y su incorporacion a su instancia.
Requisitos Previos
- Un proyecto de GCP con el rol Owner o IAM Admin
gcloudCLI instalado y autenticado, o acceso a la Consola de GCP- Una cuenta de facturacion vinculada al proyecto
Opcion 1: gcloud CLI (Recomendado)
Cree una Service Account dedicada, asigne roles, habilite APIs y descargue la clave:
# Establecer el ID del proyecto
export PROJECT_ID="your-project-id"
gcloud config set project $PROJECT_ID
# Crear la service account
gcloud iam service-accounts create clarity-finops \
--display-name="CLARITY FinOps" \
--description="Read-only access for CLARITY cost management"
# Asignar roles requeridos
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:clarity-finops@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/viewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:clarity-finops@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/bigquery.dataViewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:clarity-finops@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/billing.viewer"
# Asignar roles opcionales (recomendados)
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:clarity-finops@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/monitoring.viewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:clarity-finops@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/recommender.viewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:clarity-finops@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/logging.viewer"Habilite las APIs requeridas:
# Habilitar todas las APIs requeridas
gcloud services enable \
compute.googleapis.com \
sqladmin.googleapis.com \
container.googleapis.com \
storage.googleapis.com \
cloudresourcemanager.googleapis.com \
cloudbilling.googleapis.com \
bigquery.googleapis.com \
monitoring.googleapis.com \
logging.googleapis.com \
recommender.googleapis.com \
cloudfunctions.googleapis.com \
cloudasset.googleapis.comCree y descargue la clave de la Service Account:
# Crear el archivo de clave JSON
gcloud iam service-accounts keys create clarity-key.json \
--iam-account=clarity-finops@${PROJECT_ID}.iam.gserviceaccount.com
# Verificar que la clave fue creada
cat clarity-key.json | python3 -c "import sys,json; d=json.load(sys.stdin); print(f'Project: {d[\"project_id\"]}\nEmail: {d[\"client_email\"]}')"Proteja Su Archivo de Clave
El archivo clarity-key.json contiene credenciales privadas. Guardelo de forma segura, no lo incluya en el control de versiones y eliminelo de su maquina local despues de agregarlo a CLARITY.
Opcion 2: Consola de GCP
Paso 1: Crear una Service Account
- Vaya a IAM & Admin > Service Accounts en la Consola de GCP
- Haga clic en Create Service Account
- Ingrese:
- Name:
clarity-finops - Description: Read-only access for CLARITY cost management
- Name:
- Haga clic en Create and Continue
Paso 2: Asignar Roles
En el paso Grant this service account access to project, agregue los siguientes roles:
- Haga clic en Add Another Role para cada uno:
Viewer(Basic)BigQuery Data ViewerBilling Account ViewerMonitoring Viewer(opcional)Recommender Viewer(opcional)Logs Viewer(opcional)
- Haga clic en Continue, luego Done
Paso 3: Crear una Clave
- Haga clic en la service account
clarity-finopsrecien creada - Vaya a la pestana Keys
- Haga clic en Add Key > Create new key
- Seleccione el formato JSON
- Haga clic en Create — el archivo de clave se descarga automaticamente
Paso 4: Habilitar APIs
- Vaya a APIs & Services > Library
- Busque y habilite cada API listada en la seccion APIs Requeridas a continuacion
Roles Requeridos
| Rol | Proposito | Requerido |
|---|---|---|
| roles/viewer | Descubrimiento de recursos — instancias de Compute Engine, Cloud SQL, clusters GKE, Cloud Storage, Cloud Functions | Si |
| roles/bigquery.dataViewer | Consultas de exportacion de facturacion — lee datos de costos desde las tablas de exportacion de facturacion en BigQuery | Si |
| roles/billing.viewer | Acceso a la cuenta de facturacion — metadatos de la cuenta de facturacion, catalogo de precios e informacion de presupuestos | Si |
| roles/monitoring.viewer | Metricas de rendimiento — utilizacion de CPU, memoria, red y disco desde Cloud Monitoring | Opcional |
| roles/recommender.viewer | Recomendaciones de GCP — recomendaciones de dimensionamiento, recursos inactivos y compromisos desde la API de Recommender | Opcional |
| roles/logging.viewer | Registros de auditoria — actividad de Cloud Audit Log para correlacion de eventos y seguimiento de cambios | Opcional |
Por que roles/viewer?
roles/viewer es un rol basico de GCP que otorga acceso de lectura a todos los servicios del proyecto. CLARITY lo utiliza para descubrir todos los recursos que pueden generar costos — instancias GCE, bases de datos Cloud SQL, clusters GKE, buckets Cloud Storage, Cloud Functions, redes VPC, reglas de firewall y mas. Esto garantiza visibilidad completa de recursos inactivos, sobredimensionados y subutilizados.
APIs Requeridas
CLARITY necesita las siguientes APIs habilitadas en su proyecto. La validacion preliminar verifica todas estas al agregar credenciales.
Requeridas (la sincronizacion fallara sin estas)
| API | Servicio | Proposito |
|---|---|---|
bigquery.googleapis.com | BigQuery | Consultas de datos de exportacion de facturacion |
compute.googleapis.com | Compute Engine | Descubrimiento de instancias de VM y metricas |
monitoring.googleapis.com | Cloud Monitoring | Utilizacion de CPU, memoria y red |
cloudresourcemanager.googleapis.com | Cloud Resource Manager | Metadatos del proyecto e IAM |
Opcionales (las funcionalidades se degradan de forma controlada sin estas)
| API | Servicio | Proposito |
|---|---|---|
container.googleapis.com | Kubernetes Engine | Descubrimiento de clusters y cargas de trabajo GKE |
sqladmin.googleapis.com | Cloud SQL Admin | Descubrimiento de instancias Cloud SQL |
cloudfunctions.googleapis.com | Cloud Functions | Descubrimiento de funciones serverless |
recommender.googleapis.com | Recommender | Recomendaciones de dimensionamiento y recursos inactivos |
cloudbilling.googleapis.com | Cloud Billing | Detalles de la cuenta de facturacion y catalogo de precios |
billingbudgets.googleapis.com | Cloud Billing Budget | Monitoreo de presupuestos y alertas |
storage.googleapis.com | Cloud Storage | Descubrimiento de buckets |
cloudasset.googleapis.com | Cloud Asset | Inventario de recursos entre servicios |
logging.googleapis.com | Cloud Logging | Actividad de registros de auditoria y correlacion de eventos |
Habilite todas a la vez mediante CLI:
gcloud services enable \
bigquery.googleapis.com \
compute.googleapis.com \
monitoring.googleapis.com \
cloudresourcemanager.googleapis.com \
container.googleapis.com \
sqladmin.googleapis.com \
cloudfunctions.googleapis.com \
recommender.googleapis.com \
cloudbilling.googleapis.com \
billingbudgets.googleapis.com \
storage.googleapis.com \
cloudasset.googleapis.com \
logging.googleapis.comExportacion de Facturacion a BigQuery
Los datos de facturacion de GCP se acceden a traves de la exportacion de facturacion a BigQuery. Esto debe configurarse manualmente por un administrador de la cuenta de facturacion.
Configurar la Exportacion de Facturacion
- Vaya a la Consola de GCP > Billing > Billing export
- Seleccione la pestana Standard usage cost
- Haga clic en Edit Settings
- Elija el proyecto donde debe residir el dataset de exportacion (use el mismo proyecto que su Service Account de CLARITY)
- Cree un nuevo dataset o seleccione uno existente (por ejemplo,
billing_export) - Haga clic en Save
Que Esperar
- Los datos de exportacion de facturacion se llenan retroactivamente en aproximadamente 24-48 horas despues de la configuracion inicial
- Los nuevos registros de costos aparecen diariamente, generalmente con un retraso de 1 dia
- La exportacion contiene datos de costos a nivel de recurso desglosados por servicio, SKU, proyecto y region
Auto-Descubrimiento
CLARITY descubre automaticamente su dataset y nombre de tabla de exportacion de facturacion en BigQuery durante la validacion preliminar. No necesita configurar el nombre del dataset manualmente — CLARITY escanea todos los datasets del proyecto en busca de tablas de exportacion de facturacion.
Se Requiere Administrador de Cuenta de Facturacion
Habilitar la exportacion de facturacion requiere el rol Billing Account Administrator a nivel de la cuenta de facturacion (no del proyecto). Si su service account o usuario no tiene este rol, solicite a su administrador de facturacion que habilite la exportacion. La Service Account de CLARITY no necesita este rol — solo necesita roles/bigquery.dataViewer para leer los datos exportados.
Agregar a CLARITY
- Inicie sesion en CLARITY y navegue a Provider Setup
- Haga clic en Add Account y seleccione GCP
- Ingrese lo siguiente:
- Project ID — el ID de su proyecto de GCP
- Service Account Email —
clarity-finops@YOUR_PROJECT_ID.iam.gserviceaccount.com - Service Account Key — suba el archivo de clave JSON o pegue su contenido
- Haga clic en Save
CLARITY ejecuta una validacion preliminar que automaticamente:
- Se autentica con las credenciales de la service account
- Verifica el estado de habilitacion de todas las APIs requeridas y opcionales
- Busca la configuracion de exportacion de facturacion en BigQuery
- Reporta cualquier permiso faltante o API deshabilitada antes de iniciar la sincronizacion
Validacion Preliminar
Si alguna API requerida esta deshabilitada, CLARITY la senalara inmediatamente con instrucciones especificas sobre que habilitar. Puede corregir los problemas y volver a validar sin necesidad de reingresar las credenciales.
Verificacion
Despues de que se complete la sincronizacion inicial (generalmente 2-5 minutos), verifique que los datos esten fluyendo:
- Dashboard — Desglose de costos por servicio de GCP (Compute Engine, Cloud SQL, GKE, Cloud Storage, etc.)
- Resources — Sus instancias GCE, bases de datos Cloud SQL, clusters GKE y otros recursos con atribucion de costos
- Insights — Recomendaciones de optimizacion de la API de Recommender y analisis basado en utilizacion
- Forecast — Proyecciones de costos basadas en su historial de exportacion de facturacion en BigQuery
Si los recursos aparecen pero los costos se muestran en cero, verifique que:
- La exportacion de facturacion a BigQuery este habilitada y haya tenido tiempo de llenarse retroactivamente (24-48 horas)
- El rol
roles/bigquery.dataViewereste asignado a la service account - El dataset de exportacion de facturacion este en el mismo proyecto que la service account
Limpieza
Para eliminar el acceso de CLARITY de su proyecto de GCP:
export PROJECT_ID="your-project-id"
# Eliminar asignaciones de roles IAM
for ROLE in roles/viewer roles/bigquery.dataViewer roles/billing.viewer roles/monitoring.viewer roles/recommender.viewer roles/logging.viewer; do
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:clarity-finops@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="$ROLE" 2>/dev/null
done
# Eliminar todas las claves de la service account
gcloud iam service-accounts keys list \
--iam-account=clarity-finops@${PROJECT_ID}.iam.gserviceaccount.com \
--format="value(name)" | while read KEY_ID; do
gcloud iam service-accounts keys delete $KEY_ID \
--iam-account=clarity-finops@${PROJECT_ID}.iam.gserviceaccount.com --quiet
done
# Eliminar la service account
gcloud iam service-accounts delete \
clarity-finops@${PROJECT_ID}.iam.gserviceaccount.com --quiet