Skip to content

Connecteurs cloud (AWS / Azure / GCP)

Objectif

Un connecteur est le lien sécurisé entre Finoptika et un fournisseur cloud : il porte les credentials (chiffrés) et le périmètre (compte, abonnement, projet, région). Cet écran permet de créer, tester, synchroniser et maintenir ces connexions, point de départ de toute ingestion automatisée.

Qui l'utilise

Tenant Admin, FinOps Admin, architecte cloud.

ActionPermission RBAC
Voir les connecteursbilling:integrations:read
Créer / modifier / supprimer un connecteurbilling:integrations:write
Synchroniser (Sync)billing:sync

Prérequis

Préparez, côté cloud, avant d'ouvrir Finoptika :

FournisseurCe qu'il vous faut
AWSRôle IAM cross-account (recommandé) ou clés d'accès ; ID de compte ; accès CUR ou Cost Explorer
AzureApplication Entra ID (Service Principal) avec Cost Management Reader ; ID d'abonnement
GCPCompte de service avec accès BigQuery billing export ; project_id et dataset_id

🔒 Les identifiants ne sont jamais réaffichés après enregistrement : ils sont chiffrés côté serveur (voir core/security/).

Accès

  • Menu Data & integration → Cloud connections
  • URL : \/admin/connections

Écran des connexions cloud

Éléments de l'interface

Zone UIDescriptionAction possible
Bouton Add connectionEn haut à droiteOuvrir le formulaire de création
Formulaire ProviderAWS, Azure, GCP ou OCIChoisir le fournisseur
Connection nameNom lisible, ex. Production AWS EUSaisir
AuthenticationMode d'auth (voir §références)Sélectionner + renseigner
ScopeCompte, abonnement, projet, régionRenseigner le périmètre
Credentials / secretsChiffrés à l'enregistrementSaisir (une seule fois)
Liste Configured connectionsConnexions existantes + badge de statutTest / Sync / Edit / Delete
Bouton Test (éclair)Test de connectivitéValider credentials + scope
Bouton Sync (nuage)Récupération des donnéesLancer un import (sync)

Badges de statut :

BadgeSignification
activeDernière validation réussie
invalidÉchec du dernier test — corriger credentials ou scope
pendingJamais testé / en attente

Workflow pas à pas

1. Créer un connecteur

  1. Data & integration → Cloud connections, puis Add connection.
  2. Choisissez le Provider, donnez un Connection name parlant.
  3. Renseignez Authentication et Scope (tableaux par fournisseur ci-dessous).
  4. Saisissez les secrets (HTTPS uniquement — jamais par e-mail/chat).
  5. Create connection → la connexion apparaît dans la liste.

2. Tester la connectivité

  1. Cliquez Test (icône éclair) sur la ligne.
  2. Lisez le message de résultat en haut de page.
  3. Statut attendu : active (Last test : OK). Sinon, lisez l'erreur sous la connexion.

3. Synchroniser

  1. Sur une connexion active, cliquez Sync (icône nuage).
  2. Un message indique fournisseur, période et nombre de lignes importées.
  3. La sync peut être asynchrone si les workers Celery sont activés (bandeau informatif).

Référence par fournisseur

Amazon Web Services (AWS)

Mode authChamps credentialsChamps scope
Cross-account IAM role (recommandé)role_arn, external_idaccount_id, region, organization_id
Access key (migration)access_key_id, secret_access_keyaccount_id, region

Côté AWS : créez un rôle IAM en lecture seule (Cost Explorer, S3 CUR, Organizations) ; autorisez le compte Finoptika à l'assumer (sts:AssumeRole) avec un External ID unique ; déposez les CUR dans S3 ou activez la sync Cost Explorer.

Exemple :

ChampValeur exemple
ProviderAmazon Web Services
Connection nameAWS Production
AuthenticationCross-account IAM role
account_id123456789012
regioneu-west-1
role_arnarn:aws:iam::123456789012:role/FinOpticaReadOnly
external_id(fourni par votre équipe sécurité)

Microsoft Azure

Mode authChamps credentialsChamps scope
Service Principalclient_id, client_secrettenant_id, subscription_id, billing_account_id
Managed Identityclient_idsubscription_id, resource_group

Côté Azure : enregistrez une application Entra ID ; accordez Cost Management Reader ; planifiez un export Cost Management vers un compte de stockage si vous utilisez Azure Blob drop.

Google Cloud Platform (GCP)

Mode authChamps credentialsChamps scope
Service Accountclient_email, private_keyproject_id, billing_account_id, dataset_id
Workload Identityworkload_provider, service_account_emailproject_id, billing_account_id

Côté GCP : activez l'export de facturation vers BigQuery ; créez un compte de service avec BigQuery Data Viewer sur le dataset billing ; renseignez project_id, billing_account_id, dataset_id.

Délai & backfill GCP

L'export BigQuery de GCP a un délai de 24–48 h et pas de backfill automatique : les tout premiers jours après activation peuvent apparaître vides. C'est normal.

Oracle Cloud Infrastructure (OCI)

Mode authChamps credentialsChamps scope
API Keyuser_ocid, fingerprint, private_keytenancy_ocid, compartment_ocid, region

Bonnes pratiques FinOps

  • 🔒 Préférez rôle IAM / Workload Identity aux clés statiques (rotation, moindre privilège).
  • Nommez les connexions par environnement + région (AWS Prod EU, Azure NonProd).
  • Testez après chaque changement de secret ; supprimez les connexions inutilisées.
  • Un External ID unique par tenant limite le risque de confused deputy.

Limitations & disclaimers

  • La sync ne rafraîchit pas les dashboards : cliquez Refresh ensuite.
  • Les secrets ne sont jamais réaffichés — pour les remplacer, ré-éditez la connexion.
  • La suppression d'une connexion est auditée (voir audit trail).
  • Fraîcheur : après une sync, l'horodatage Synced des dashboards se met à jour au prochain Refresh.

Dépannage

SymptômeCause probableRésolution
« Admin API unavailable »API sans routes adminRedémarrer l'API / conteneur backend
Test FailedRôle IAM, secret expiré, scope erronéVérifier le scope ; régénérer le secret ; relancer Test
Bouton Sync désactivéConnexion non activeCorriger credentials puis Test
Données GCP vides après syncDélai export BigQuery (24–48 h)Patienter ; vérifier dataset_id
Sync OK mais dashboards videsFiltre provider/périodeRefresh ; ajuster Period end et Cloud

Voir aussi

Documentation Finoptika · Estimations P90 consultatives, jamais garanties · Données isolées par tenant (RLS + RBAC).