> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enclave.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Enclave in these docs is the code and cloud security platform at enclave.ai. It is not Open Enclave, Intel SGX or other hardware enclaves, or enclave.gg.
> People use Enclave in the web app at https://app.enclave.ai or the desktop app. These docs describe no public Enclave API or CLI, so don't invent endpoints, commands, or config files.
> Connecting an integration needs a person to sign in and approve access in a browser. Tell the user the exact step to take instead of saying you completed it.

# GCP

> Connectez vos projets Google Cloud avec un compte de service en lecture seule, sans clé stockée.

Connectez un projet Google Cloud pour qu'Enclave puisse cartographier ses ressources et ses identités, et les relier à votre code. L'accès est en lecture seule, et aucune clé de compte de service n'est créée ni stockée.

## Ce dont Enclave a besoin

La commande de configuration crée ces ressources dans votre projet :

* Un **pool Workload Identity** avec un fournisseur qui n'approuve que l'identité du scanner d'Enclave.
* Un **compte de service de scan** dont Enclave emprunte l'identité.
* Des **liaisons de rôles en lecture seule** pour ce compte de service.

Elle active aussi les API IAM, IAM Credentials, Cloud Resource Manager, Security Token Service et Cloud Asset dans le projet.

Le compte de service reçoit ces rôles :

| Rôle | Ce qu'il lit |
| - | - |
| `roles/compute.viewer` | Les instances, réseaux, sous-réseaux, pare-feu et load balancers Compute Engine |
| `roles/container.viewer` | Les clusters GKE |
| `roles/run.viewer` | Les services Cloud Run |
| `roles/cloudfunctions.viewer` | Les Cloud Functions |
| `roles/dns.reader` | Les zones Cloud DNS |
| `roles/artifactregistry.reader` | Les dépôts Artifact Registry |
| `roles/storage.bucketViewer` | Uniquement les métadonnées des buckets Cloud Storage, pas les objets |
| `roles/iam.securityReviewer` | Les politiques IAM et les comptes de service |
| `roles/cloudasset.viewer` | Cloud Asset Inventory |
| `roles/serviceusage.serviceUsageConsumer` | L'appel des API de lecture ci-dessus |
| `roles/browser` | Les métadonnées du projet et de la hiérarchie |

### Qui peut lancer la configuration

La personne qui exécute la commande dans Cloud Shell doit disposer du rôle **Owner** sur le projet, ou bien de tous les rôles suivants :

* `roles/iam.workloadIdentityPoolAdmin`
* `roles/iam.serviceAccountAdmin`
* `roles/serviceusage.serviceUsageAdmin`
* `roles/resourcemanager.projectIamAdmin`

Dans Enclave, vous avez besoin du rôle **Owner** ou **Admin**.

## Connecter un projet

**1. Ouvrez la page de configuration**

Ouvrez **Settings → Integrations** et cliquez sur **Connect** à côté de **Google Cloud**.

**2. Saisissez l'ID de votre projet**

Saisissez le **GCP project ID** à connecter. Pour le trouver, exécutez `gcloud projects list`. Enclave génère une commande de configuration d'une ligne pour ce projet.

**3. Exécutez la commande dans Cloud Shell**

Copiez la commande et exécutez-la dans [Google Cloud Shell](https://shell.cloud.google.com), ou dans un terminal où `gcloud` est connecté.

> [!WARNING]
>
> La commande contient un jeton de configuration à usage unique. Ne l'enregistrez pas dans un fichier suivi par Git et ne la collez pas dans un journal partagé.

**4. Attendez qu'Enclave la détecte**

Enclave surveille la fin de la configuration et passe à la suite automatiquement. Lorsque vous voyez **Connection complete!**, le projet est connecté et Enclave commence à l'analyser.

**5. Ajoutez d'autres projets**

Cliquez sur **Add another project** pour connecter un autre projet, ou sur **Done** pour terminer.

> [!TIP]
>
> Cliquez sur **I'll finish later** pour enregistrer la connexion et y revenir plus tard. Rouvrez-la depuis **Settings → Integrations → Google Cloud**.

## Gérer une connexion

Ouvrez **Settings → Integrations → Google Cloud** pour voir vos projets connectés.

* **Re-validate** vérifie qu'Enclave peut toujours lire un projet.
* **Remove** arrête l'analyse d'un projet.
* **Add project** connecte un autre projet.
* **Disconnect GCP** supprime toute la connexion et arrête l'analyse.

Pour révoquer l'accès depuis Google Cloud, supprimez le compte de service de scan ou le pool Workload Identity créés par la configuration.

## Ce qu'Enclave fera et ne fera pas

* **Fera** : lire la configuration et les métadonnées autorisées par les rôles ci-dessus.
* **Ne fera pas** : créer, modifier ou supprimer des ressources, lire les objets de vos buckets ni stocker d'identifiants de longue durée. Chaque analyse utilise un jeton d'accès de courte durée, valable environ une heure.

## Dépannage

> [accordion] La page reste en attente après l'exécution de la commande
>
> Vérifiez la sortie de la commande dans Cloud Shell. Si elle a échoué, corrigez l'erreur, puis rouvrez la connexion pour obtenir une nouvelle commande. Le jeton de configuration ne fonctionne qu'une fois : ne relancez donc pas une ancienne commande déjà utilisée.

> [accordion] La commande échoue avec une erreur d'autorisation
>
> Il manque un rôle au compte qui l'a exécutée. Accordez **Owner** ou les quatre rôles d'administration listés dans [Qui peut lancer la configuration](#qui-peut-lancer-la-configuration), puis exécutez une nouvelle commande.

> [accordion] Enclave n'accepte pas l'ID du projet
>
> Les ID de projet comportent de 6 à 30 caractères : lettres minuscules, chiffres et traits d'union. Ils commencent par une lettre et se terminent par une lettre ou un chiffre. Utilisez l'ID du projet, et non son nom ou son numéro.

> [accordion] Les ressources n'apparaissent pas dans Coverage
>
> Les analyses s'exécutent lorsqu'un projet est connecté, puis une fois par jour. Pour lancer une analyse immédiatement, cliquez sur **Analyze Environment** dans [Coverage](https://docs.enclave.ai/fr/onboarding/coverage.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.