- Intégrations & API
- Intégrations
- Cloud
- Azure
Connecter Azure à votre inventaire d'actifs
Le connecteur Azure lit les ressources exposées sur Internet de vos abonnements Azure et les conserve dans l'inventaire d'actifs d'Ostorlab, afin que vous puissiez les scanner et les suivre dans le cadre de votre surface d'attaque. Il n'a besoin que du rôle intégré Lecteur (Reader).
Cette page concerne le connecteur cloud Azure. Pour l'intégration CI/CD Azure DevOps, consultez Azure DevOps.
Que collecte le connecteur ?
Le connecteur lit Azure Resource Graph et l'API de gestion d'Azure DNS. Les adresses privées sont ignorées.
| Ressource | Ce qui est conservé |
|---|---|
| Abonnements | Chaque abonnement lu devient un nœud cloud qui est le parent des autres |
| Adresses IP publiques | Adresses IPv4 et IPv6, avec le nom d'hôte de l'étiquette DNS s'il y en a un |
| Équilibreurs de charge et passerelles d'application | Les frontaux auxquels une adresse IP publique est rattachée |
| Machines virtuelles | Les machines auxquelles une adresse IP publique est rattachée, via leur interface réseau |
| Azure DNS | Zones DNS publiques et leurs enregistrements A, AAAA et CNAME (les enregistrements génériques sont ignorés) |
Les bases de données, le CDN, le stockage, AKS, Functions et Front Door ne sont pas collectés. Les adresses IP publiques et les noms d'hôte des ressources deviennent des actifs IP et domaine ordinaires, que le reste de la plateforme peut scanner.
De quoi ai-je besoin avant de commencer ?
- Une offre Ostorlab qui inclut les intégrations. Sinon, Ostorlab répond « Your organisation does not have the necessary permissions to run this integration. »
- L'ID de votre locataire Microsoft Entra et l'ID de l'abonnement ou du groupe d'administration à connecter.
- L'interface de ligne de commande Azure (
az), par exemple dans Azure Cloud Shell, connectée au locataire propriétaire du périmètre. - Le rôle Propriétaire ou Administrateur de l'accès utilisateur sur ce périmètre, pour attribuer le rôle Lecteur. Selon les paramètres de votre locataire, l'ajout d'une application externe à l'annuaire peut aussi nécessiter un rôle d'administrateur de l'annuaire, tel qu'Administrateur d'application.
- Un propriétaire Ostorlab pour les actifs importés. Créez-en un au préalable si nécessaire.
Configurer l'accès dans Azure
Ouvrez Library > Integrations, sélectionnez la catégorie Cloud, puis la carte Azure (et non Azure DevOps). L'onglet Configuration commence par Étape 1 : préparez votre locataire Azure.

Les deux méthodes sont des scripts az, exécutés avec le SCOPE de votre choix :
/subscriptions/<subscription id>pour un abonnement ;/providers/Microsoft.Management/managementGroups/<group id>pour un groupe d'administration, qui couvre tous les abonnements qu'il contient.
Placez la valeur de SCOPE entre apostrophes, par exemple SCOPE='/providers/Microsoft.Management/managementGroups/<group id>' : les ID de groupe d'administration peuvent contenir des parenthèses, que le shell refuse lorsqu'elles ne sont pas entre guillemets.

Option 1 : application multi-locataire Ostorlab (recommandé)
Ostorlab inscrit sa propre application multi-locataire dans votre locataire et s'authentifie sans aucun secret.
- Dans l'Étape 1, cliquez sur Application multi-locataire Ostorlab : télécharger le fichier de configuration. Vous obtenez
ostorlab-azure-reader.sh. Le bloc Paramètres à utiliser affiche l'ID de l'application Ostorlab et l'ID du locataire Ostorlab avec lesquels le script travaille. -
Dans Cloud Shell, exécutez :
SCOPE='/subscriptions/<subscription id>' bash ostorlab-azure-reader.sh -
Le script inscrit l'application Ostorlab dans votre locataire si elle n'y est pas déjà, lui attribue le rôle intégré Lecteur sur le périmètre (il réessaie le temps qu'Azure propage le nouveau principal) et affiche
Tenant id: <votre ID de locataire>. Copiez cette valeur.
Option 2 : inscription d'application avec secret client
Utilisez cette méthode si vous préférez posséder l'application.
- Dans l'Étape 1, cliquez sur Inscription d'application avec secret client : télécharger le fichier de configuration. Vous obtenez
ostorlab-azure-service-principal.sh. -
Exécutez-le de la même manière :
SCOPE='/subscriptions/<subscription id>' bash ostorlab-azure-service-principal.sh -
Le script crée une inscription d'application nommée
ostorlab-cloud-connector-sub-<subscription id>(ouostorlab-cloud-connector-mg-<group id>), lui attribue Lecteur sur le périmètre et affichetenant_id,client_id,client_secretetscope_id. Associez-les au formulaire du connecteur :tenant_id-> ID de locataireclient_id-> ID clientclient_secret-> Secret clientscope_id(le GUID de l'abonnement ou l'ID du groupe d'administration) -> ID d'abonnement ou ID du groupe d'administration- Chaque périmètre a sa propre application. Relancer le script pour le même périmètre remplace le secret client : mettez alors à jour le connecteur avec le nouveau. Renouvelez le secret avant son expiration.
Tip
Le secret client est chiffré au repos et n'est plus jamais affiché dans Ostorlab.
Ajouter le connecteur
-
Dans l'onglet Configuration, sous Étape 2 : connecteurs Azure, cliquez sur Ajouter un connecteur (ou Ajouter un autre connecteur).

-
Remplissez le formulaire, puis cliquez sur Créer.

| Champ | Ce qu'il faut saisir |
|---|---|
| Nom | Un nom unique dans votre organisation, par exemple Azure Production. |
| Périmètre | Abonnement ou Groupe d'administration. |
| ID d'abonnement ou ID du groupe d'administration | Le GUID de l'abonnement, ou l'ID du groupe d'administration (1 à 90 lettres, chiffres, tirets, traits de soulignement, points ou parenthèses). Tous les abonnements d'un groupe d'administration sont collectés. |
| Méthode d'authentification | Application multi-locataire Ostorlab ou Inscription d'application avec secret client. |
| ID de locataire | Le GUID du locataire Microsoft Entra, affiché à la fin du script de configuration. |
| ID client et Secret client | Méthode de l'inscription d'application uniquement. |
| Propriétaire | Obligatoire. Les actifs importés sont rattachés à ce propriétaire. |
| Emplacement | Emplacement optionnel des actifs importés. |
| Actif | Les connecteurs inactifs sont ignorés par la synchronisation planifiée. |
Tester la connexion
Cliquez sur Tester la connexion dans la ligne du connecteur. Le test lit les données de votre périmètre sans rien importer.

Quatre vérifications s'exécutent :
| Vérification | Ce qu'elle contrôle |
|---|---|
| Identifiants | Ostorlab s'est authentifié auprès de Microsoft Entra ID en tant qu'application multi-locataire, ou a échangé le secret client contre un jeton, et a obtenu un jeton valide. |
| Permissions | Ostorlab a interrogé Resource Graph sur le périmètre et indique combien de ressources sont lisibles. |
| Périmètres | Les abonnements qui seront lus. Pour un groupe d'administration, tous les abonnements qu'il contient. Un abonnement qui ne peut pas être lu est cité dans le message. |
| Ressource exemple | Ostorlab lit une adresse IP publique du périmètre. La vérification réussit aussi si le périmètre n'en a aucune. |

Synchroniser le connecteur
Chaque connecteur actif se synchronise automatiquement toutes les douze heures. Pour importer immédiatement, cliquez sur Synchroniser maintenant dans la ligne du connecteur.

Une notification confirme la tâche (Synchronisation lancée (tâche ...)). Une synchronisation est refusée si le connecteur est inactif ou si une synchronisation du même connecteur est déjà en cours.

Lire les exécutions de synchronisation et les erreurs
Cliquez sur Synchronisations récentes pour voir les exécutions d'un connecteur.

| Colonne | Signification |
|---|---|
| Statut | En cours, Succès, Partiel (certains périmètres ont échoué, le reste a été importé) ou Échec (la synchronisation n'a pas pu aboutir, par exemple parce que les identifiants ont été refusés). |
| Ressources | Ressources trouvées lors de cette exécution. |
| Créés, Mis à jour | Actifs et nœuds nouveaux et modifiés. Le nombre de créés inclut les actifs IP et nom d'hôte en plus des nœuds. |
| Obsolètes | Ressources que le connecteur a marquées cloud:stale parce qu'elles n'ont pas été vues lors de cette exécution. |
| Erreurs | Le nombre d'erreurs de périmètre. Cliquez dessus pour les lister. |
Avec un groupe d'administration, un abonnement qui ne peut pas être lu compte pour une erreur (par exemple « Subscription ... could not be read. ») et les autres abonnements sont tout de même lus : l'exécution se termine en Partiel.

Note
Les ressources qui disparaissent d'Azure ne sont marquées cloud:stale qu'après une exécution sans aucune erreur de périmètre. Elles ne sont jamais supprimées de l'inventaire. Le tag est retiré lorsqu'une synchronisation ultérieure revoit la ressource.
Une exécution restée En cours pendant plus de deux heures est considérée comme arrêtée : elle ne bloque plus une nouvelle synchronisation, et la prochaine synchronisation planifiée la marque Échec.
Consulter les actifs dans l'inventaire
Les actifs importés appartiennent au propriétaire et à l'emplacement que vous avez choisis. Chacun porte le tag cloud:azure.
- Ouvrez Inventory > Assets.
-
Ouvrez le panneau de recherche, allez dans l'onglet Tags, définissez le nom du tag sur
cloudet la valeur surazure, puis cliquez sur Search.
-
Pour affiner la liste, filtrez sur les autres tags ajoutés par le connecteur :
azure:account(le GUID de l'abonnement),azure:region(par exemplewesteurope, ouglobal),azure:resource(l'ID de la ressource Azure) etazure:connector(l'ID du connecteur).

Suivre le chemin de découverte
Ouvrez un nœud cloud, tel qu'un équilibreur de charge, pour voir sa cible, ses tags, son propriétaire et son emplacement. La carte Discovery Path montre l'origine du nœud : l'abonnement Azure, puis sa ressource parente. Les adresses publiques et les noms d'hôte d'un nœud citent ce nœud dans leur propre chemin de découverte, ce qui permet de toujours savoir quel abonnement et quelle ressource les exposent.

Modifier, suspendre ou supprimer le connecteur
-
Modifier permet de changer le nom, la méthode d'authentification, le propriétaire, l'emplacement et l'interrupteur Actif. Laissez un secret client enregistré vide pour le conserver, ou saisissez-en un nouveau pour le remplacer.

-
Désactivez Actif pour suspendre la synchronisation planifiée tout en conservant le connecteur.
- Supprimer retire le connecteur : les actifs déjà importés restent dans l'inventaire et les synchronisations futures s'arrêtent.
- Pour retirer aussi l'accès d'Ostorlab dans Azure, supprimez l'attribution du rôle Lecteur de l'application Ostorlab (ou de votre inscription d'application) sur le périmètre, et supprimez l'inscription d'application ou l'application d'entreprise si vous n'en avez plus besoin.
Dépannage
| Symptôme | À vérifier |
|---|---|
| Le script s'arrête avec « SCOPE must be a subscription or a management group, not a nested resource path » | Définissez SCOPE sur /subscriptions/<id> ou /providers/Microsoft.Management/managementGroups/<id>, rien de plus profond. |
| Le script indique « Could not assign Reader » | Vous avez besoin du rôle Propriétaire ou Administrateur de l'accès utilisateur sur le périmètre. Relancez le script une fois le rôle accordé. |
| Le script ne peut pas ajouter l'application Ostorlab | Votre locataire restreint les applications externes. Demandez à un administrateur de l'annuaire, tel qu'un Administrateur d'application, de l'exécuter. |
| La vérification Identifiants échoue | L'ID de locataire est incorrect, l'attribution du rôle Lecteur est manquante, ou (méthode du secret client) le secret a expiré ou a été remplacé. Relancez le script et mettez à jour le connecteur. |
| La vérification Permissions échoue | Le rôle Lecteur n'est pas encore attribué sur le périmètre, ou pas encore propagé. Patientez quelques minutes et testez de nouveau. |
| La vérification Périmètres cite un abonnement qui « could not be read » | Le principal n'a pas le rôle Lecteur sur cet abonnement. Attribuez Lecteur sur le groupe d'administration ou sur cet abonnement. |
| Erreur de formulaire concernant un GUID | Les ID de locataire, d'abonnement et client sont des GUID, par exemple 00000000-0000-0000-0000-000000000000. |
| « The cloud connector is disabled. » | Activez Actif dans le formulaire de modification du connecteur. |
| « A sync of this cloud connector is already running. » | Attendez la fin de la synchronisation en cours. |
| Des ressources attendues sont absentes | Le connecteur ne conserve que les adresses IP publiques, leurs équilibreurs de charge, passerelles d'application et machines virtuelles, ainsi que les enregistrements Azure DNS publics. |
Étapes suivantes
- Découverte de la surface d'attaque
Passez en revue, confirmez et surveillez les actifs que vous avez importés. - Recherche avancée
Combinez les tags cloud avec d'autres filtres d'actifs. - Connecter AWS
Importez les ressources de vos comptes AWS. - Connecter Google Cloud
Importez les ressources de vos projets Google Cloud.