Guia de Configuracion de Azure
Esta guia lo acompana paso a paso en la creacion de un Service Principal con acceso de solo lectura para CLARITY y su incorporacion a su instancia.
Requisitos Previos
- Una suscripcion de Azure con el rol Owner o User Access Administrator
- Azure CLI instalado o acceso al Portal de Azure
Opcion 1: Azure CLI (Recomendado)
Cree un Service Principal y asigne los roles necesarios:
# Iniciar sesion en Azure
az login
# Crear un Service Principal con rol Reader en su suscripcion
az ad sp create-for-rbac \
--name "clarity-finops" \
--role "Reader" \
--scopes "/subscriptions/YOUR_SUBSCRIPTION_ID"Este comando produce la siguiente salida:
{
"appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"displayName": "clarity-finops",
"password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}Guarde estos valores — los necesitara:
appId= Client IDpassword= Client Secrettenant= Tenant ID
Ahora asigne el rol Cost Management Reader para acceso a datos de facturacion:
# Asignar rol Cost Management Reader
az role assignment create \
--assignee "APP_ID_FROM_ABOVE" \
--role "Cost Management Reader" \
--scope "/subscriptions/YOUR_SUBSCRIPTION_ID"Opcionalmente, asigne Monitoring Reader para metricas de rendimiento mejoradas:
# Opcional: Monitoring Reader para metricas detalladas
az role assignment create \
--assignee "APP_ID_FROM_ABOVE" \
--role "Monitoring Reader" \
--scope "/subscriptions/YOUR_SUBSCRIPTION_ID"Opcion 2: Portal de Azure
Paso 1: Registrar una Aplicacion
- Vaya a Microsoft Entra ID (Azure Active Directory) en el Portal de Azure
- Navegue a App registrations > New registration
- Ingrese:
- Name:
clarity-finops - Supported account types: Accounts in this organizational directory only
- Redirect URI: Dejar en blanco
- Name:
- Haga clic en Register
- En la pagina de resumen, copie el Application (client) ID y el Directory (tenant) ID
Paso 2: Crear un Client Secret
- En el registro de la aplicacion, vaya a Certificates & secrets > Client secrets > New client secret
- Ingrese una descripcion (por ejemplo, "CLARITY access") y seleccione un periodo de expiracion
- Haga clic en Add
- Copie el Value del secreto inmediatamente — solo se muestra una vez
Paso 3: Asignar Roles en la Suscripcion
- Vaya a Subscriptions > seleccione su suscripcion
- Navegue a Access control (IAM) > Add role assignment
- Asigne el rol Reader:
- Role:
Reader - Assign access to: User, group, or service principal
- Busque
clarity-finopsy seleccionelo - Haga clic en Review + assign
- Role:
- Repita para asignar el rol Cost Management Reader
- Opcionalmente asigne Monitoring Reader para metricas mejoradas
Paso 4: Encontrar el Object ID del Service Principal
Este paso es importante para la resolucion de problemas con asignaciones de roles:
- Vaya a Microsoft Entra ID > Enterprise applications
- Busque
clarity-finops - Anote el Object ID en esta pagina — este es el Object ID del Service Principal
Object ID del Service Principal
Azure tiene tres Object IDs diferentes para los registros de aplicaciones. Al resolver problemas de asignacion de roles o hacer referencia al SP programaticamente, siempre use el Object ID de Enterprise Applications (el Service Principal), no el Object ID de la pagina de App Registration. Son valores diferentes.
Roles Requeridos
| Rol | Proposito | Requerido |
|---|---|---|
| Reader | Descubrimiento de recursos — lista VMs, bases de datos, cuentas de almacenamiento, clusters AKS y todos los demas recursos | Si |
| Cost Management Reader | Datos de costos y facturacion — costos a nivel de servicio, costos a nivel de recurso, presupuestos y proyecciones | Si |
| Monitoring Reader | Metricas de rendimiento — utilizacion de CPU, memoria, red y disco desde Azure Monitor | Opcional |
Por que Reader?
Reader es un rol integrado de Azure que otorga acceso de lectura a todos los tipos de recursos en la suscripcion. CLARITY lo utiliza para descubrir todos los recursos que pueden generar costos — VMs, clusters AKS, bases de datos SQL, cuentas de almacenamiento, balanceadores de carga, App Services, recursos de red y mas. Esto garantiza visibilidad completa de recursos inactivos, sobredimensionados y subutilizados.
Acceso Multi-Suscripcion
Si tiene multiples suscripciones bajo el mismo tenant, puede asignar roles a nivel de Management Group para otorgar acceso a CLARITY a todas las suscripciones a la vez:
az role assignment create \
--assignee "APP_ID" \
--role "Reader" \
--scope "/providers/Microsoft.Management/managementGroups/YOUR_MG_ID"CLARITY descubrira automaticamente todas las suscripciones dentro del alcance del management group.
Agregar a CLARITY
- Inicie sesion en CLARITY y navegue a Provider Setup
- Haga clic en Add Account y seleccione Azure
- Ingrese lo siguiente:
- Subscription ID — el ID de su suscripcion de Azure
- Tenant ID — el Directory (tenant) ID del registro de la aplicacion
- Client ID — el Application (client) ID del registro de la aplicacion
- Client Secret — el valor del secreto que creo
- Haga clic en Save
CLARITY valida las credenciales de inmediato autenticandose contra su tenant de Azure y comienza la sincronizacion inicial.
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 Azure (Virtual Machines, SQL Database, Storage, etc.)
- Resources — Sus VMs, clusters AKS, bases de datos y otros recursos listados con atribucion de costos
- Insights — Recomendaciones de optimizacion basadas en Azure Advisor y analisis de utilizacion
- Organizations — Si el Service Principal tiene acceso a multiples suscripciones, estas aparecen en la pagina de Organizations con la jerarquia de management groups
Si los recursos aparecen pero los costos se muestran en cero, es posible que el rol Cost Management Reader aun no se haya propagado. Las asignaciones de roles en Azure pueden tardar hasta 5 minutos en tomar efecto.
Limpieza
Para eliminar el acceso de CLARITY de su entorno de Azure:
Azure CLI
# Eliminar asignaciones de roles
az role assignment delete \
--assignee "APP_ID" \
--role "Reader" \
--scope "/subscriptions/YOUR_SUBSCRIPTION_ID"
az role assignment delete \
--assignee "APP_ID" \
--role "Cost Management Reader" \
--scope "/subscriptions/YOUR_SUBSCRIPTION_ID"
# Eliminar el registro de la aplicacion
az ad app delete --id "APP_ID"Portal de Azure
- Vaya a Subscriptions > Access control (IAM) > elimine las asignaciones de roles de
clarity-finops - Vaya a Microsoft Entra ID > App registrations > seleccione
clarity-finops> Delete