- Intégrations & API
- Intégrations
- Cloud
- Google Cloud
Connecter Google Cloud à votre inventaire d'actifs
Le connecteur Google Cloud lit les ressources exposées sur Internet de vos projets Google Cloud 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 d'un accès en lecture.
Que collecte le connecteur ?
Tout est lu via Cloud Asset Inventory, projet par projet. Les adresses privées sont ignorées.
| Ressource | Ce qui est conservé |
|---|---|
| Instances Compute Engine | Les instances dotées d'une adresse IPv4 ou IPv6 externe |
| Adresses réservées | Adresses externes régionales et globales |
| Règles de transfert | Règles régionales et globales dont le schéma d'équilibrage de charge est externe |
| Cloud DNS | Zones gérées publiques et leurs jeux d'enregistrements (les enregistrements génériques sont ignorés) |
Seules les ressources listées ci-dessus sont importées ; Cloud Run, Cloud Functions, GKE et les autres services ne sont pas collectés.
Chaque projet devient un nœud cloud qui est le parent des autres nœuds du projet. Les adresses IP publiques et les noms d'hôte qu'une ressource expose 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 du projet qui hébergera le compte de service (l'ID du projet, pas son nom d'affichage).
-
gcloudauthentifié en tant que propriétaire de ce projet, par exemple dans Cloud Shell. Pour un connecteur à l'échelle de l'organisation, également propriétaire de l'organisation. - Pour un connecteur à l'échelle de l'organisation, l'ID numérique de l'organisation.
- Un propriétaire Ostorlab pour les actifs importés. Créez-en un au préalable si nécessaire.
Configurer l'accès dans Google Cloud
Ouvrez Library > Integrations, sélectionnez la catégorie Cloud, puis la carte Google Cloud. L'onglet Configuration commence par Étape 1 : préparez votre projet Google Cloud.

Les deux boutons de téléchargement fournissent un fichier nommé ostorlab-gcp-connector.sh ; les versions par emprunt d'identité et par clé sont identiques, sauf pour la dernière étape. L'emprunt d'identité du compte de service est à privilégier : aucune clé ne quitte votre organisation.

Option 1 : emprunt d'identité du compte de service (recommandé)
- Dans l'Étape 1, cliquez sur Emprunt d'identité du compte de service : télécharger le fichier de configuration. Le bloc Paramètres à utiliser affiche
ostorlab_service_account, le compte de service qu'Ostorlab crée pour votre organisation, et lesrolesque le script accorde. -
Ouvrez Cloud Shell, importez le script et exécutez-le pour un projet :
PROJECT_ID=<project id> bash ostorlab-gcp-connector.shPour lire tous les projets d'une organisation, accordez les rôles au niveau de l'organisation :
ORGANIZATION_ID=<organization id> PROJECT_ID=<project id> bash ostorlab-gcp-connector.sh -
Le script affiche l'e-mail du compte de service,
ostorlab-cloud-connector@<project id>.iam.gserviceaccount.com. Copiez-le.
Le script :
- active les API
cloudresourcemanager.googleapis.com,cloudasset.googleapis.cometiamcredentials.googleapis.comdans le projet, et rien d'autre ; - crée le compte de service
ostorlab-cloud-connectordans le projet ; - lui accorde
roles/cloudasset.vieweretroles/browser, sur le projet ou sur l'organisation ; - accorde au compte de service d'Ostorlab (
ostorlab_service_account) le rôleroles/iam.serviceAccountTokenCreatorsur le nouveau compte de service, afin qu'Ostorlab puisse emprunter son identité sans aucune clé.
Relancer le script ne présente aucun risque : il réutilise le compte de service s'il existe et réessaie le temps que Google propage le nouveau compte.
Option 2 : clé de compte de service
Utilisez cette méthode si l'emprunt d'identité n'est pas possible.
- Dans l'Étape 1, cliquez sur Clé de compte de service : télécharger le fichier de configuration.
- Exécutez la même commande que ci-dessus dans Cloud Shell. Au lieu de l'attribution du rôle de créateur de jetons, le script crée un fichier de clé JSON,
ostorlab-cloud-connector-key.json. - Copiez le contenu du fichier entier pour le formulaire du connecteur, puis supprimez le fichier de votre machine.
-
Pour renouveler la clé, relancez le script et mettez à jour le connecteur avec la nouvelle clé. Listez ensuite les clés pour trouver l'ID de la précédente, puis supprimez-la. Le script ne supprime jamais une ancienne clé :
gcloud iam service-accounts keys list --iam-account <service account email> gcloud iam service-accounts keys delete <previous key id> --iam-account <service account email>
Tip
La clé JSON est chiffrée au repos et n'est plus jamais affichée dans Ostorlab.
Ajouter le connecteur
-
Dans l'onglet Configuration, sous Étape 2 : connecteurs Google Cloud, 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 GCP Production. |
| ID de projet | L'ID du projet Google Cloud : 6 à 30 lettres minuscules, chiffres ou tirets, commençant par une lettre et se terminant par une lettre ou un chiffre. |
| ID d'organisation (optionnel) | Le numéro d'organisation Google Cloud. S'il est renseigné, tous les projets actifs de l'organisation sont collectés. |
| Méthode d'authentification | Emprunt d'identité du compte de service ou Clé de compte de service. |
| E-mail du compte de service | Méthode d'emprunt d'identité uniquement. L'e-mail affiché par le script. |
| Clé JSON du compte de service | Méthode de la clé uniquement. Le fichier de clé JSON entier. |
| 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 projet sans rien importer.

Quatre vérifications s'exécutent :
| Vérification | Ce qu'elle contrôle |
|---|---|
| Identifiants | Ostorlab a obtenu un jeton Google pour le compte de service (par emprunt d'identité, ou à partir de la clé enregistrée). |
| Permissions | Cloud Asset Inventory liste les projets du périmètre. |
| Périmètres | Les projets qui seront lus : votre projet, ou tous les projets actifs de l'organisation. La vérification échoue si le projet n'est pas actif ou ne peut pas être lu. |
| Ressource exemple | Ostorlab lit la première adresse externe réservée du périmètre. La vérification réussit aussi si aucune n'est réservée. |
Si une vérification échoue, les suivantes sont aussi signalées comme ignorées ou en échec : corrigez d'abord la première vérification en échec.

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 projets ont échoué, le reste a été importé) ou Échec (la synchronisation n'a pas pu aboutir, par exemple parce que Google a refusé le jeton). |
| 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. |
Un projet dont le listage échoue compte pour une erreur, et les autres projets sont tout de même lus : l'exécution se termine en Partiel.

Note
Les ressources qui disparaissent de Google Cloud 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:gcp.
- Ouvrez Inventory > Assets.
-
Ouvrez le panneau de recherche, allez dans l'onglet Tags, définissez le nom du tag sur
cloudet la valeur surgcp, puis cliquez sur Search.
-
Pour affiner la liste, filtrez sur les autres tags ajoutés par le connecteur :
gcp:account(l'ID du projet),gcp:region,gcp:resource(le nom complet de la ressource) etgcp:connector(l'ID du connecteur).

Suivre le chemin de découverte
Ouvrez un nœud cloud, tel qu'une règle de transfert, pour voir sa cible, ses tags, son propriétaire et son emplacement. La carte Discovery Path montre l'origine du nœud : le projet Google Cloud, 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 projet et quelle ressource les exposent.

Modifier, suspendre ou supprimer le connecteur
-
Modifier permet de changer le nom, les ID de projet et d'organisation, la méthode d'authentification, le propriétaire, l'emplacement et l'interrupteur Actif. Laissez une clé enregistrée vide pour la conserver, ou collez-en une nouvelle pour la 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 Google Cloud, supprimez le compte de service
ostorlab-cloud-connector(ou retirez ses liaisons IAM ainsi que la liaison de créateur de jetons qui fait confiance à Ostorlab). Supprimer le compte de service ne supprime pas les liaisons de rôles du projet ou de l'organisation faites pour lui : retirez aussiroles/cloudasset.vieweretroles/browserpour ce membre.
Dépannage
| Symptôme | À vérifier |
|---|---|
| « Google refused to issue a token for the service account ... Check that the organisation's Ostorlab service account has roles/iam.serviceAccountTokenCreator on it. » | La dernière étape du script n'a pas été exécutée, ou la liaison a été supprimée. Relancez le script. |
| « Google refused the service account key. Check that the key and the service account ... are enabled. » | La clé a été supprimée ou désactivée, ou le compte de service est désactivé. Créez une nouvelle clé et mettez à jour le connecteur. |
| « Project ... is not active or cannot be read. » | L'ID de projet est incorrect, le projet est en cours de suppression, ou le compte de service n'a pas les rôles dessus. |
| « No active project found in scope. » | Connecteur à l'échelle de l'organisation : les rôles n'ont été accordés que sur le projet. Relancez le script avec ORGANIZATION_ID. |
| La vérification Permissions échoue | Les API du script ne sont pas activées dans le projet, ou les rôles sont manquants. Relancez le script. |
| Erreur de formulaire concernant la clé JSON | Collez le fichier de clé entier : il doit s'agir d'une clé de compte de service ("type": "service_account") avec un client_email et un private_key. |
| Le test indique que la connexion n'est pas disponible pour le moment | Un problème du côté d'Ostorlab, pas dans votre projet. Réessayez plus tard et contactez le support s'il persiste. |
| « 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 | Elles n'ont peut-être pas d'adresse externe, ou se trouvent dans une zone DNS privée. Le connecteur ne conserve que les ressources exposées sur Internet. |
É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 Azure
Importez les ressources de vos abonnements Azure.