Skip to main content

Google Cloud — Discovery

Connectez votre projet Google Cloud (ou toute une organisation ou un dossier) afin que SecureAI puisse inventorier les agents, les points de terminaison et les modèles Vertex AI, ainsi que les comptes de service, les clés, les liaisons IAM, les journaux d’audit, l’utilisation et les coûts qui les entourent.
Cette carte lit uniquement le projet et n’envoie jamais de prompt. Si vous souhaitez faire passer le trafic LLM de SecureAI par votre propre compte Google Cloud, consultez Google Vertex AI — Inférence sur votre compte.

Ce que SecureAI importe

  • Vertex AI : agents (Agent Engine), points de terminaison de serving, jobs de batch et de tuning en cours, et modèles — le Model Registry ainsi que chaque modèle d’éditeur utilisé (Gemini, Claude, modèles ouverts).
  • Agent Builder / Gemini Enterprise et Dialogflow CX (facultatif) : les moteurs Agent Builder (Discovery Engine) avec leurs data stores, interrogés dans les emplacements global, us et eu ; et les agents Dialogflow CX, interrogés dans global et dans les emplacements Vertex AI que vous configurez.
  • Utilisation par modèle sur les 30 derniers jours : requêtes (et combien ont échoué), jetons d’entrée et de sortie, et jetons du cache de prompts.
  • Utilisation par identifiant sur les 30 derniers jours (Cloud Monitoring) : total des requêtes et requêtes vers les API d’IA (Vertex AI, Gemini API, Agent Builder, Dialogflow) pour chaque compte de service et chaque clé API. Le trafic des clients OAuth (personnes et outils comme la console ou gcloud) est totalisé à part. Elle fournit aussi la dernière utilisation de ces comptes et de ces clés.
  • Utilisation par modèle et par identité (facultatif) : quel compte de service ou quelle personne a appelé quel modèle Vertex AI, d’après les journaux d’audit d’accès aux données (Data Access) si vous les avez activés. Voir Utilisation par modèle et par identité.
  • Vertex AI utilisé en dehors de SecureAI : les identités qui ont appelé Vertex AI ou Gemini directement, sans passer par la connexion d’inférence de SecureAI. Voir Vertex AI utilisé en dehors de SecureAI.
  • Coût sur les 30 derniers jours : les dépenses réelles de ce projet en IA, issues de votre exportation de la facturation vers BigQuery, ou une estimation au prix catalogue.
  • NHI : comptes de service, clés de compte de service gérées par l’utilisateur, clés API, pools et fournisseurs de Workload Identity Federation, et clients OAuth — avec leur dernière utilisation (d’après Policy Analyzer et l’utilisation par identifiant) et leur risque de privilège. Révocables et restaurables depuis l’Inventaire des NHI, à la main ou avec des politiques automatiques.
  • Liaisons de rôles IAM du projet.
  • Journaux d’audit cloud des services d’IA et d’identité (Vertex AI, IAM, IAM Credentials, STS, API Keys, Resource Manager) : les 200 derniers événements des 30 derniers jours.
Par défaut, le connecteur lit un seul projet. Avec le champ Organization or folder, il lit chaque projet actif d’une organisation ou d’un dossier : voir Mode organisation ou dossier.

Prérequis

API activées

SecureAI lit chaque surface avec l’API Google correspondante. Activez-les sur le projet (API et services → Bibliothèque, ou avec gcloud services enable) : Une API désactivée ne fait pas échouer la synchronisation : elle apparaît comme une lacune, API disabled in the project — enable it, qui nomme le service. Agent Builder et Dialogflow sont l’exception : si leur API est désactivée, SecureAI considère que le projet n’utilise pas ce produit et ne le signale pas comme une lacune.

Rôles

Un compte de service sous l’identité duquel SecureAI agit. Accordez-lui ces rôles sur le projet (IAM et administration → IAM → Accorder l’accès) : Pour le coût réel, vos données Cloud Billing doivent être exportées vers BigQuery, et le compte de service a besoin de roles/bigquery.dataViewer sur le dataset d’exportation et de roles/bigquery.jobUser sur le projet qui exécute la requête. Pour révoquer et restaurer depuis SecureAI (facultatif), il vous faut le rôle de chaque action que vous souhaitez autoriser. Si votre déploiement propose l’accès sans clé, accordez-les à un compte de service distinct, dédié à la révocation et laissez au compte de lecture des rôles en lecture seule ; sinon, accordez-les au compte de service du connecteur :
Vous n’avez pas besoin de roles/billing.viewer : c’est un rôle de compte de facturation, il ne peut pas être accordé sur un projet et le connecteur ne l’utilise pas.
Rien n’est ignoré en silence : ce que SecureAI ne peut pas lire est listé avec le rôle qui corrige le problème — lors de la connexion, après chaque synchronisation et dans le panneau GCP.

Identifiants

Où les trouver

Option A — clé JSON
  1. Dans la Console Google Cloud, accédez à IAM et administration → Comptes de service → Créer un compte de service (par exemple secureai-discovery).
  2. Accédez à IAM et administration → IAM → Accorder l’accès, saisissez l’adresse e-mail du compte de service comme compte principal et ajoutez les rôles indiqués dans Prérequis.
  3. De retour dans Comptes de service, ouvrez le compte → Clés → Ajouter une clé → Créer une clé → JSON, puis téléchargez le fichier.
  4. Collez l’intégralité du JSON dans Service Account JSON, puis supprimez le fichier téléchargé.
La même chose avec gcloud :
Si vous utilisez Agent Builder ou Dialogflow CX, leurs API sont déjà activées sur le projet ; vous n’avez pas besoin de les activer pour SecureAI.
Si Google répond que la création de clés de compte de service est désactivée, votre organisation applique la règle iam.disableServiceAccountKeyCreation — le comportement par défaut des organisations créées depuis 2024. Utilisez l’option B, ou demandez à l’administrateur de votre organisation une exception pour ce projet.
Option B — sans clé (emprunt d’identité)
  1. Créez le compte de service et accordez-lui les rôles (étapes 1 et 2 ci-dessus).
  2. Dans le formulaire de connexion de SecureAI, le texte d’aide du champ Service account to impersonate (keyless — instead of the JSON) indique le compte SecureAI à autoriser. Dans Google Cloud, ouvrez votre compte de service → Autorisations → Accorder l’accès, saisissez ce compte comme compte principal et attribuez-lui roles/iam.serviceAccountTokenCreator. Avec gcloud :
  3. Saisissez l’adresse e-mail de votre compte de service dans le champ et laissez le JSON vide.
Si le champ n’apparaît pas, votre déploiement ne propose pas l’accès sans clé : utilisez l’option A.

Compte de service distinct pour la révocation

Si votre déploiement propose l’accès sans clé, vous pouvez séparer la lecture et la révocation. C’est recommandé plutôt que de donner les rôles de révocation au compte de service qui lit :
  1. Créez un second compte de service (par exemple secureai-revoke) et accordez-lui uniquement les rôles de révocation indiqués dans Prérequis.
  2. Sur ce compte, accordez roles/iam.serviceAccountTokenCreator au compte SecureAI indiqué dans le texte d’aide du champ Service account for revocation (optional — separate from reading).
  3. Saisissez son adresse e-mail dans ce champ.
SecureAI demande un jeton d’une heure à ce compte uniquement pendant qu’il révoque ou restaure une identité ; la synchronisation ne l’utilise jamais. Le compte de service de lecture conserve des rôles en lecture seule. SecureAI refuse également de révoquer le compte de révocation depuis l’inventaire.

Mode organisation ou dossier

Pour inventorier plusieurs projets avec un seul connecteur, renseignez Organization or folder avec organizations/<number> ou folders/<number> (par exemple organizations/123456789012).
  • SecureAI trouve les projets actifs avec Cloud Asset Inventory et lit chacun d’eux comme s’il s’agissait d’un connecteur à projet unique. Le Google Cloud Project ID reste le projet de quota et de facturation.
  • Accordez au compte de service, sur l’organisation ou le dossier : roles/cloudasset.viewer, roles/iam.securityReviewer et roles/aiplatform.viewer, plus roles/monitoring.viewer et roles/logging.viewer pour l’utilisation et l’audit.
  • Activez cloudasset.googleapis.com sur le projet du compte de service.
Pour un dossier, utilisez gcloud resource-manager folders add-iam-policy-binding <number> au lieu de gcloud organizations add-iam-policy-binding. Pour qu’une synchronisation se termine dans un délai raisonnable, chacune est plafonnée. Le projet de quota passe en premier, puis les projets qui ont des ressources Vertex AI : Ce qui dépasse un plafond apparaît comme une lacune partielle, avec la part qui a été lue. Un projet qui ne peut pas être lu est également listé comme une lacune, et rien de ce projet n’est retiré ni supprimé. Lors de la connexion, le test dans ce mode énumère uniquement la première page de projets et vérifie le projet de quota : la lecture de chaque projet est le travail de la synchronisation.

Se connecter

  1. Admin → Integrations → Cloud → Google Cloud — Découverte → Connecter l’Intégration.
  2. Saisissez l’ID du projet, l’emplacement (ou plusieurs dans More Vertex AI Locations) et soit la clé JSON, soit le compte de service dont emprunter l’identité. Si vous les utilisez, ajoutez le compte de service de révocation, l’organisation ou le dossier, et les champs de facturation.
  3. Cliquez sur Connecter. Avant d’enregistrer, SecureAI vérifie les identifiants par une lecture réelle du projet — cela prend quelques secondes. S’il ne peut pas lire le projet, il en indique la raison et n’enregistre rien ; ce que vous avez saisi reste dans le formulaire. Les messages possibles figurent dans Dépannage.
  4. Si l’enregistrement réussit mais que des rôles manquent, un avertissement les liste. Accordez-les et synchronisez à nouveau.
  5. Synchronisez maintenant avec le bouton d’actualisation de la carte. Ensuite, SecureAI synchronise automatiquement toutes les 6 heures.
Pour modifier les identifiants plus tard, utilisez à nouveau Connecter. Les champs laissés vides conservent leur valeur enregistrée ; saisir une clé JSON remplace un emprunt d’identité enregistré, et inversement.

Vérifier

  • Cloud Sensors liste les agents découverts. Cliquez sur la carte Google Cloud pour ouvrir le panneau GCP : utilisation et coûts (requêtes, échecs, jetons, cache, coût et sa source), modèles et déploiements, identité et accès (comptes de service et clés avec leur dernière utilisation, liaisons IAM), et audit.
  • Si le panneau affiche Discovery could not read everything, examinez chaque ligne (voir Dépannage) et synchronisez à nouveau.
  • L’Inventaire des NHI affiche les comptes de service et les clés.
Si une synchronisation échoue (par exemple parce que la clé a été supprimée ou les rôles retirés), la carte affiche l’erreur et SecureAI réessaie avec un délai progressif, en conservant le dernier inventaire. Une lecture partielle ne retire jamais d’agents et ne supprime jamais d’identités.

Utilisation par modèle et par identité

Cloud Monitoring indique combien de requêtes chaque identifiant a effectuées, mais pas vers quel modèle. Pour savoir quelle identité a appelé quel modèle, SecureAI lit les journaux d’audit d’accès aux données (Data Access) de Vertex AI. C’est facultatif et cela dépend de vous :
  • SecureAI ne les lit que si les journaux DATA_READ ou DATA_WRITE sont activés pour aiplatform.googleapis.com (ou pour tous les services). SecureAI le détecte dans la stratégie IAM ; il ne les active jamais.
  • Les activer entraîne un coût d’ingestion Cloud Logging, aux tarifs de Google. Vous les activez dans IAM et administration → Journaux d’audit → Vertex AI API → Lecture des données.
  • Le compte de service a besoin de roles/logging.privateLogViewer.
  • Par projet et par synchronisation, SecureAI lit jusqu’à 5 000 entrées ou pendant 20 secondes, selon la première limite atteinte.
  • S’ils sont désactivés, le panneau affiche une lacune facultative qui explique comment les activer. Si vous les avez activés au niveau de l’organisation ou du dossier mais que vous connectez un seul projet, SecureAI ne peut pas le voir dans la stratégie du projet et affiche quand même la lacune.

Risque de privilège

Une fois la stratégie IAM lue, SecureAI signale un compte de service comme privilégié lorsqu’il détient l’un de ces rôles :
  • Propriétaire (roles/owner) ou Éditeur (roles/editor) ;
  • tout rôle d’administration (roles/<service>.admin ou se terminant par Admin) ;
  • roles/iam.serviceAccountTokenCreator ou roles/iam.serviceAccountUser, qui permettent à leur détenteur d’agir en tant qu’autres comptes de service.
Une clé gérée par l’utilisateur d’un compte de service privilégié hérite du signalement : qui détient la clé détient ce privilège. Les clés API sans restriction (aucune API cible et aucune restriction d’application) sont également signalées. Dans l’Inventaire des NHI, elles apparaissent parmi les facteurs de risque sous Privileged (admin role or impersonation) et API key without restrictions. Si la stratégie IAM n’a pas pu être lue, SecureAI ne signale rien plutôt que de considérer un compte comme non privilégié.

Vertex AI utilisé en dehors de SecureAI

Dans le panneau GCP, l’onglet Identity & Access comprend Vertex AI used outside SecureAI : les identités qui ont appelé Vertex AI ou Gemini directement au cours des 30 derniers jours, sans passer par la connexion d’inférence Vertex AI. Ces prompts ne sont passés ni par le DLP, ni par les politiques, ni par les reçus signés.
  • Avec les journaux d’audit d’accès aux données (Data Access) activés (voir Utilisation par modèle et par identité), chaque ligne indique quels modèles ont été appelés et combien de fois, et seuls les appels d’inférence sont comptés.
  • Sans eux, le nombre provient de Cloud Monitoring par identifiant (compte de service ou clé API) et inclut tout appel à une API d’IA (Vertex AI, Gemini API, Agent Builder, Dialogflow), pas seulement l’inférence.
  • Le compte de service de la connexion d’inférence et celui du connecteur ne sont jamais comptés. Les personnes ne sont pas listées une par une : leurs appels sont regroupés sur une seule ligne (People (Google accounts), ou People and tools (OAuth) : console, gcloud, applications).
  • Si SecureAI n’a pas pu lire la connexion d’inférence lors de cette synchronisation, il ne classe rien, le signale comme lacune facultative et conserve le résultat de la synchronisation précédente.
  • Cela génère le constat Insights Google Vertex AI / Gemini is being used outside SecureAI : modéré, et critique si l’appelant est une clé API (un identifiant de longue durée). Il est associé à OWASP LLM02, ISO/IEC 42001 A.4.2 et A.6.2.6, et NIST AI RMF MAP-1.1 et GOVERN-6.1.

Coût

  • Avec la table d’exportation de la facturation : les dépenses réelles de ce projet en services d’IA (Vertex AI, Gemini API, Agent Builder, Dialogflow, …), déduction faite des crédits, dans la devise de votre compte de facturation. Lorsque des crédits couvrent l’utilisation, le montant net peut être nul ; le panneau affiche alors à côté le montant avant crédits. Google met à jour l’exportation avec un délai de plusieurs heures.
  • Sans elle : une estimation — jetons de Cloud Monitoring × prix catalogue, y compris Claude et les jetons du cache de prompts. Elle ne reflète ni les remises ni les contrats d’engagement d’utilisation.

Révocation et restauration

Les identités GCP sont révocables depuis l’Inventaire des NHI (cadenas) lorsque le connecteur, ou le compte de service de révocation, dispose du rôle de l’action concernée (voir Prérequis). Ce que chacune fait chez Google : Pour annuler une révocation, ouvrez le menu de l’identité dans l’Inventaire des NHI et choisissez Restore (Undo the revocation at Google Cloud). L’identité est réactivée dans Google Cloud et, dans SecureAI, elle est débloquée et reste In remediation jusqu’à ce que vous l’examiniez.
  • Seul ce que SecureAI a révoqué dans Google Cloud peut être restauré, à la main ou par une politique automatique. Ce n’est pas proposé pour un blocage appliqué uniquement sur la passerelle de SecureAI, ni pour une identité que votre équipe a désactivée directement dans Google Cloud.
  • Une clé de compte de service supprimée ne peut pas être restaurée : SecureAI refuse sans appeler Google.
  • La restauration utilise les mêmes rôles que la révocation.
Garde-fous :
  • Le compte de service utilisé par le connecteur, ainsi que ses clés, ne peuvent pas être révoqués depuis SecureAI — cela couperait la découverte. Il en va de même pour le compte de service de révocation. Effectuez leur rotation dans Google Cloud.
  • Le compte de service avec lequel s’authentifie la connexion d’inférence Vertex AI, ni la clé avec laquelle elle signe, ne peuvent pas non plus être révoqués : cela arrêterait chaque appel gouverné. Avec l’option sans clé (emprunt d’identité), seul le compte de service est protégé : ses clés peuvent être révoquées, car SecureAI ne signe avec aucune d’elles. Si SecureAI ne peut pas vérifier quelle identité utilise la connexion d’inférence, il ne révoque aucun compte de service ni aucune clé de compte de service (les clés API ne sont pas concernées).
  • Les comptes de service par défaut de Google (compte par défaut de Compute Engine, App Engine, Cloud Build, agents de service) demandent une seconde confirmation : en désactiver un arrête chaque VM, application ou build qui s’exécute sous son identité.
  • S’il manque au connecteur le rôle d’une action, l’erreur indique ce rôle.

Politiques NHI automatiques

Les politiques NHI automatiques (Inventaire des NHI → Automatic policies) alertent sur des identités Google Cloud ou les révoquent selon des règles, sans les examiner une par une. Elles sont évaluées à la fin de chaque synchronisation réussie du connecteur, uniquement sur ses identités. Chaque règle a trois modes : Off, Alert et Revoke. Toutes démarrent désactivées. Les garde-fous :
  • Simulation mode (dryRun) est activé par défaut : avec lui, aucune règle réglée sur Revoke ne coupe quoi que ce soit ; elle liste seulement ce qu’elle ferait. Le désactiver est la seule chose qui permet des coupures réelles. Simulate with this configuration montre l’effet avant d’enregistrer.
  • Revocation cap per run : 5 par défaut (de 1 à 50). Si, lors d’une exécution, les règles Revoke correspondent à plus d’identités que le plafond, rien n’est coupé et une alerte est envoyée.
  • Exclusions : aucune règle n’agit sur une identité dont le propriétaire, le nom ou la ressource correspond à un motif ; * est le seul caractère générique.
  • Seules les listes de clés complètes sont évaluées.
  • Un identifiant utilisé par SecureAI (celui du connecteur, celui du compte de révocation ou celui de l’inférence Vertex AI) n’est jamais coupé. Les clés des comptes de service par défaut de Google ne sont jamais coupées automatiquement : la règle se contente d’alerter, et une personne décide.
Sur Google Cloud, révoquer une clé de compte de service la supprime (elle ne peut pas être restaurée), et révoquer une clé API la supprime avec 30 jours pour la restaurer. Chaque action est auditée et notifiée.

Dépannage

Lors de la connexion

Si le test échoue, Connecter affiche l’un de ces messages et n’enregistre rien :

Lacunes du panneau

Lorsque le panneau GCP affiche Discovery could not read everything, chaque ligne nomme la surface et ce qui manque. Les lignes marquées optional ne font qu’enrichir l’inventaire.

Connexes