Thème
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.
| Action | Permission RBAC |
|---|---|
| Voir les connecteurs | billing:integrations:read |
| Créer / modifier / supprimer un connecteur | billing:integrations:write |
| Synchroniser (Sync) | billing:sync |
Prérequis
Préparez, côté cloud, avant d'ouvrir Finoptika :
| Fournisseur | Ce qu'il vous faut |
|---|---|
| AWS | Rôle IAM cross-account (recommandé) ou clés d'accès ; ID de compte ; accès CUR ou Cost Explorer |
| Azure | Application Entra ID (Service Principal) avec Cost Management Reader ; ID d'abonnement |
| GCP | Compte 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

Éléments de l'interface
| Zone UI | Description | Action possible |
|---|---|---|
| Bouton Add connection | En haut à droite | Ouvrir le formulaire de création |
| Formulaire Provider | AWS, Azure, GCP ou OCI | Choisir le fournisseur |
| Connection name | Nom lisible, ex. Production AWS EU | Saisir |
| Authentication | Mode d'auth (voir §références) | Sélectionner + renseigner |
| Scope | Compte, abonnement, projet, région | Renseigner le périmètre |
| Credentials / secrets | Chiffrés à l'enregistrement | Saisir (une seule fois) |
| Liste Configured connections | Connexions existantes + badge de statut | Test / Sync / Edit / Delete |
| Bouton Test (éclair) | Test de connectivité | Valider credentials + scope |
| Bouton Sync (nuage) | Récupération des données | Lancer un import (sync) |
Badges de statut :
| Badge | Signification |
|---|---|
active | Dernière validation réussie |
invalid | Échec du dernier test — corriger credentials ou scope |
pending | Jamais testé / en attente |
Workflow pas à pas
1. Créer un connecteur
- Data & integration → Cloud connections, puis Add connection.
- Choisissez le Provider, donnez un Connection name parlant.
- Renseignez Authentication et Scope (tableaux par fournisseur ci-dessous).
- Saisissez les secrets (HTTPS uniquement — jamais par e-mail/chat).
- Create connection → la connexion apparaît dans la liste.
2. Tester la connectivité
- Cliquez Test (icône éclair) sur la ligne.
- Lisez le message de résultat en haut de page.
- Statut attendu :
active(Last test : OK). Sinon, lisez l'erreur sous la connexion.
3. Synchroniser
- Sur une connexion active, cliquez Sync (icône nuage).
- Un message indique fournisseur, période et nombre de lignes importées.
- La sync peut être asynchrone si les workers Celery sont activés (bandeau informatif).
Référence par fournisseur
Amazon Web Services (AWS)
| Mode auth | Champs credentials | Champs scope |
|---|---|---|
| Cross-account IAM role (recommandé) | role_arn, external_id | account_id, region, organization_id |
| Access key (migration) | access_key_id, secret_access_key | account_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 :
| Champ | Valeur exemple |
|---|---|
| Provider | Amazon Web Services |
| Connection name | AWS Production |
| Authentication | Cross-account IAM role |
| account_id | 123456789012 |
| region | eu-west-1 |
| role_arn | arn:aws:iam::123456789012:role/FinOpticaReadOnly |
| external_id | (fourni par votre équipe sécurité) |
Microsoft Azure
| Mode auth | Champs credentials | Champs scope |
|---|---|---|
| Service Principal | client_id, client_secret | tenant_id, subscription_id, billing_account_id |
| Managed Identity | client_id | subscription_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 auth | Champs credentials | Champs scope |
|---|---|---|
| Service Account | client_email, private_key | project_id, billing_account_id, dataset_id |
| Workload Identity | workload_provider, service_account_email | project_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 auth | Champs credentials | Champs scope |
|---|---|---|
| API Key | user_ocid, fingerprint, private_key | tenancy_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ôme | Cause probable | Résolution |
|---|---|---|
| « Admin API unavailable » | API sans routes admin | Redémarrer l'API / conteneur backend |
| Test Failed | Rôle IAM, secret expiré, scope erroné | Vérifier le scope ; régénérer le secret ; relancer Test |
| Bouton Sync désactivé | Connexion non active | Corriger credentials puis Test |
| Données GCP vides après sync | Délai export BigQuery (24–48 h) | Patienter ; vérifier dataset_id |
| Sync OK mais dashboards vides | Filtre provider/période | Refresh ; ajuster Period end et Cloud |