Skip to content

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
  • gcloud CLI 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:

bash
# 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:

bash
# 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.com

Cree y descargue la clave de la Service Account:

bash
# 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

  1. Vaya a IAM & Admin > Service Accounts en la Consola de GCP
  2. Haga clic en Create Service Account
  3. Ingrese:
    • Name: clarity-finops
    • Description: Read-only access for CLARITY cost management
  4. Haga clic en Create and Continue

Paso 2: Asignar Roles

En el paso Grant this service account access to project, agregue los siguientes roles:

  1. Haga clic en Add Another Role para cada uno:
    • Viewer (Basic)
    • BigQuery Data Viewer
    • Billing Account Viewer
    • Monitoring Viewer (opcional)
    • Recommender Viewer (opcional)
    • Logs Viewer (opcional)
  2. Haga clic en Continue, luego Done

Paso 3: Crear una Clave

  1. Haga clic en la service account clarity-finops recien creada
  2. Vaya a la pestana Keys
  3. Haga clic en Add Key > Create new key
  4. Seleccione el formato JSON
  5. Haga clic en Create — el archivo de clave se descarga automaticamente

Paso 4: Habilitar APIs

  1. Vaya a APIs & Services > Library
  2. Busque y habilite cada API listada en la seccion APIs Requeridas a continuacion

Roles Requeridos

RolPropositoRequerido
roles/viewerDescubrimiento de recursos — instancias de Compute Engine, Cloud SQL, clusters GKE, Cloud Storage, Cloud FunctionsSi
roles/bigquery.dataViewerConsultas de exportacion de facturacion — lee datos de costos desde las tablas de exportacion de facturacion en BigQuerySi
roles/billing.viewerAcceso a la cuenta de facturacion — metadatos de la cuenta de facturacion, catalogo de precios e informacion de presupuestosSi
roles/monitoring.viewerMetricas de rendimiento — utilizacion de CPU, memoria, red y disco desde Cloud MonitoringOpcional
roles/recommender.viewerRecomendaciones de GCP — recomendaciones de dimensionamiento, recursos inactivos y compromisos desde la API de RecommenderOpcional
roles/logging.viewerRegistros de auditoria — actividad de Cloud Audit Log para correlacion de eventos y seguimiento de cambiosOpcional

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)

APIServicioProposito
bigquery.googleapis.comBigQueryConsultas de datos de exportacion de facturacion
compute.googleapis.comCompute EngineDescubrimiento de instancias de VM y metricas
monitoring.googleapis.comCloud MonitoringUtilizacion de CPU, memoria y red
cloudresourcemanager.googleapis.comCloud Resource ManagerMetadatos del proyecto e IAM

Opcionales (las funcionalidades se degradan de forma controlada sin estas)

APIServicioProposito
container.googleapis.comKubernetes EngineDescubrimiento de clusters y cargas de trabajo GKE
sqladmin.googleapis.comCloud SQL AdminDescubrimiento de instancias Cloud SQL
cloudfunctions.googleapis.comCloud FunctionsDescubrimiento de funciones serverless
recommender.googleapis.comRecommenderRecomendaciones de dimensionamiento y recursos inactivos
cloudbilling.googleapis.comCloud BillingDetalles de la cuenta de facturacion y catalogo de precios
billingbudgets.googleapis.comCloud Billing BudgetMonitoreo de presupuestos y alertas
storage.googleapis.comCloud StorageDescubrimiento de buckets
cloudasset.googleapis.comCloud AssetInventario de recursos entre servicios
logging.googleapis.comCloud LoggingActividad de registros de auditoria y correlacion de eventos

Habilite todas a la vez mediante CLI:

bash
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.com

Exportacion 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

  1. Vaya a la Consola de GCP > Billing > Billing export
  2. Seleccione la pestana Standard usage cost
  3. Haga clic en Edit Settings
  4. Elija el proyecto donde debe residir el dataset de exportacion (use el mismo proyecto que su Service Account de CLARITY)
  5. Cree un nuevo dataset o seleccione uno existente (por ejemplo, billing_export)
  6. 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

  1. Inicie sesion en CLARITY y navegue a Provider Setup
  2. Haga clic en Add Account y seleccione GCP
  3. Ingrese lo siguiente:
    • Project ID — el ID de su proyecto de GCP
    • Service Account Emailclarity-finops@YOUR_PROJECT_ID.iam.gserviceaccount.com
    • Service Account Key — suba el archivo de clave JSON o pegue su contenido
  4. 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:

  1. La exportacion de facturacion a BigQuery este habilitada y haya tenido tiempo de llenarse retroactivamente (24-48 horas)
  2. El rol roles/bigquery.dataViewer este asignado a la service account
  3. 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:

bash
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

Plataforma Multi-Cloud FinOps