Aller au contenu
Documentation

Démarrer

Connecter un abonnement Azure

Le service principal à créer, le rôle Reader et les droits supplémentaires par analyse, Entra ID et ce que Ctadel lit.

Cette page décrit le service principal à créer pour qu'un abonnement Azure soit inventorié, les rôles à lui accorder selon ce que vous voulez analyser, et ce que le collecteur lit.

Ce qu'il vous faut

Un service principal (inscription d'application dans Entra ID) et quatre valeurs : le « Tenant ID », le « Client ID (App ID) », un « Client Secret » créé sous « Certificates & secrets », et le « Subscription ID » de l'abonnement à analyser. Un compte Ctadel correspond à un abonnement ; un même service principal peut servir à plusieurs comptes.

Les identifiants ne sont pas vérifiés à l'enregistrement du compte. Le bouton « Découvrir les abonnements » du dialogue les teste : Ctadel demande un jeton au locataire et liste les abonnements visibles ; une clé refusée renvoie l'erreur d'Azure.

Rôles à accorder

Inventaire

Au niveau de l'abonnement :

RôleCe qu'il donne
ReaderL'inventaire par Azure Resource Manager : calcul, réseau, stockage, bases, AKS, Key Vault, affectations de rôles, journal d'activité. Aucune écriture.
Log Analytics ReaderLes paramètres de diagnostic et les requêtes de journaux.

Analyses de contenu

Chaque analyse demande un droit distinct ; sans lui, elle est absente et le reste fonctionne.

AnalyseDroit à accorderCe que fait Ctadel
Contenu des blobs (secrets, données sensibles)Storage Blob Data Reader sur les comptes de stockage.Ctadel demande un jeton Entra ID pour https://storage.azure.com/ et lit les objets. Il n'appelle pas listKeys : cette opération délivrerait une clé de compte en lecture-écriture, et elle est refusée sur les comptes où les clés partagées sont désactivées.
Disques des machines virtuellesDes droits d'écriture au-delà de Reader : instantanés de disques managés, création d'un groupe de ressources, d'un réseau virtuel et d'une machine virtuelle.Ctadel crée un groupe de ressources ctadel-scan-<région> avec son réseau, prend un instantané du disque, le monte sur une machine de scan temporaire dans votre abonnement, puis supprime le tout.
Code et paramètres des Function AppsUn rôle personnalisé avec Microsoft.Web/sites/config/list/action et Microsoft.Web/sites/publish/action ; AcrPull sur le registre pour les fonctions conteneurisées.Lecture du code depuis le site SCM et du niveau d'authentification. Sans ces actions, la fonction est rapportée non lue, jamais « propre ».
Objets des clusters AKSL'action Microsoft.ContainerService/managedClusters/listClusterAdminCredential/action sur les clusters.Ctadel récupère le kubeconfig administrateur du cluster par l'API ARM et lit les objets Kubernetes avec. La posture AKS lue par ARM n'en dépend pas.

Entra ID

Les utilisateurs, les principaux de service et les réglages du locataire sont lus par Microsoft Graph, avec des permissions d'application et un consentement administrateur :

Permission GraphCe qu'elle apporte
Application.Read.AllPrincipaux de service, secrets et certificats des inscriptions d'application.
User.Read.AllUtilisateurs Entra ID.
Directory.Read.AllRôles d'annuaire privilégiés et leurs membres ; sans elle, la propriété « administrateur » d'un utilisateur reste inconnue au lieu de « faux ». Aussi les groupes Entra et leurs membres, et les applications d'entreprise attribuées à chaque utilisateur.
Policy.Read.AllPolitique d'autorisation (droits des invités, inscription d'applications) et accès conditionnel.
AuditLog.Read.AllDernière connexion des utilisateurs ; demande aussi une licence P1 ou P2.
Reports.Read.AllÉtat d'enregistrement MFA des utilisateurs.
AccessReview.Read.AllRevues d'accès des invités ; demande une licence P2.

Une permission absente laisse la propriété correspondante non renseignée, jamais fausse.

Déclarer l'abonnement dans Ctadel

  1. Ouvrez « Paramètres », onglet « Intégrations », sous-onglet « Fournisseurs cloud », puis « Ajouter un compte » sur la ligne Microsoft Azure.
  2. Saisissez un « Libellé », puis « Tenant ID », « Client ID (App ID) », « Client Secret » et « Subscription ID ».
  3. Cliquez sur « Découvrir les abonnements » : Ctadel obtient un jeton et liste les abonnements visibles par le service principal, en signalant ceux qui ne sont pas actifs.
  4. Cliquez sur « Créer », ou sur « Ajouter les N comptes » pour créer un compte par abonnement découvert.

Ce que le collecteur lit

FamilleRessources lues
Abonnement et locatairePosture de l'abonnement, réglages Entra ID du locataire, affectations de rôles, plans Defender for Cloud et contact de sécurité, paramètres de diagnostic, alertes du journal d'activité.
IdentitésUtilisateurs Entra ID (synchronisation locale, dernière connexion, âge du mot de passe, MFA, rôles privilégiés), principaux de service et leurs secrets.
CalculMachines virtuelles, disques et instantanés, clusters AKS et leurs pools de nœuds, Function Apps, App Service, Logic Apps, registres de conteneurs.
RéseauRéseaux virtuels, groupes de sécurité réseau, adresses IP publiques, répartiteurs de charge, passerelles, interfaces réseau, points de terminaison privés, Application Gateway, Azure Firewall, Front Door, zones DNS, API Management.
DonnéesComptes de stockage et leur posture, serveurs et bases SQL, PostgreSQL flexible, Cosmos DB, Redis, Synapse, Data Factory, HDInsight, Event Hubs, Service Bus, App Configuration, coffres Recovery Services.
Secrets et clésKey Vault et Managed HSM.
IAServices cognitifs, dont Azure OpenAI.

Les abonnements à l'état « Warned » ou « PastDue » sont lus comme les abonnements actifs ; ceux à l'état « Disabled » ou « Deleted » ne le sont pas.

Lorsqu'un type de ressource n'a pas pu être lu complètement, les ressources déjà connues de ce type restent dans l'inventaire et ne sont pas considérées comme supprimées.

Limites

  • Le contenu des bases Azure SQL n'est pas analysé : seule leur posture (accès public, chiffrement, audit) est lue. Une analyse de contenu qui ne touche jamais le serveur de production est à l'étude.
  • Le niveau d'authentification d'une Function App reste inconnu sans Microsoft.Web/sites/config/list/action. Les paramètres d'application ne sont pas téléchargés.
  • La liste des clés et secrets d'un coffre Key Vault demande un accès au plan de données du coffre ; sans lui, la propriété correspondante reste inconnue.
  • Les propriétés Entra ID (dernière connexion, MFA, revues d'accès) dépendent des permissions Graph et des licences listées plus haut.
  • L'accès aux objets AKS passe par le kubeconfig administrateur du cluster, pas par une identité en lecture seule.
  • La détection sur le journal d'activité Azure est en validation interne, non disponible pour les clients.
  • Les identifiants ne sont vérifiés que si vous cliquez sur « Découvrir les abonnements » ; sinon, une erreur (secret erroné ou expiré, rôle retiré) apparaît dans l'état du compte au premier scan.