Se connecter aux dépôts GitLab Enterprise dans un réseau privé

Cette page explique comment vous connecter à des dépôts GitLab Enterprise hébergés dans un réseau privé à l'aide de Developer Connect et de l'Annuaire des services. Vous pouvez effectuer ces tâches à l'aide de la Google Cloud console, ou de Google Cloud CLI.

Ces instructions sont destinées aux développeurs d'applications, aux administrateurs de plates-formes et aux responsables de la sécurité qui souhaitent utiliser des dépôts de code source GitLab Enterprise avec Google. Plus précisément, vous pouvez utiliser des dépôts GitLab Enterprise avec Gemini Code Assist.

Pour en savoir plus sur Developer Connect, consultez la page Présentation de Developer Connect.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Developer Connect and Service Directory APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Developer Connect and Service Directory APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. L'activation de Developer Connect active également l' API Secret Manager.

  9. Assurez-vous d'avoir accès à un compte sur GitLab Enterprise.

    Pour sécuriser le travail de votre équipe, nous vous recommandons d'effectuer les tâches décrites dans ce guide à l'aide d'un compte de service ou d'un compte partagé par votre équipe, et non d'un compte personnel.

  10. Assurez-vous de posséder un dépôt GitLab Enterprise ou de disposer d'autorisations de niveau administrateur sur un dépôt partagé.
  11. Assurez-vous de disposer d'une ressource de service de l'Annuaire des services pour vous connecter à des réseaux privés, ou créez-en une. Vous pouvez créer la ressource de service de l'Annuaire des services dans le même projet que celui que vous utilisez avec Developer Connect, ou vous pouvez utiliser un autre projet.

    Pour les connexions à des réseaux en dehors de Google Cloud, vous devrez peut-être configurer l'Annuaire des services différemment. Consultez Utiliser l'Annuaire des services pour accéder à des hôtes en dehors de Google Cloud.

  12. Facultatif : Créez une clé de chiffrement gérée par le client (CMEK) pour chiffrer les secrets d'authentification créés par Developer Connect.
  13. Facultatif : Pour utiliser les instructions de ligne de commande de ce guide, procédez comme suit :
    1. Installez la Google Cloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version disponible en exécutant gcloud components update.
    2. Créez un compte de service Developer Connect en exécutant la commande suivante, où PROJECT_ID correspond à l'Google Cloud ID de votre projet :
              gcloud beta services identity create \
                  --service=developerconnect.googleapis.com \
                  --project=PROJECT_ID
              

Exigences concernant l'hôte

Si vous n'avez pas installé d'instance GitLab Enterprise Edition Server, consultez le guide d'installation de GitLab Enterprise Edition pour obtenir des instructions.

Lorsque vous suivez les instructions d'installation d'une instance GitLab Enterprise Edition Server, tenez compte des points suivants :

Rôles requis

Pour obtenir les autorisations dont vous avez besoin pour créer des connexions et des liens, demandez à votre administrateur de vous attribuer les rôles IAM suivants :

  • Si vous n'êtes pas le propriétaire du projet : administrateur Developer Connect (roles/developerconnect.admin) sur votre compte utilisateur.
  • Si vous prévoyez d'utiliser une CMEK pour chiffrer les secrets créés par Developer Connect : chiffreur/déchiffreur de CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) sur le compte de service Secret Manager.
  • Si vous prévoyez d'utiliser gcloud CLI pour effectuer les étapes de ce guide : rôle d'administrateur Secret Manager (roles/secretmanager.admin) sur le compte de service Developer Connect.
  • Si vous prévoyez d'utiliser la Google Cloud console pour effectuer les étapes de ce guide: administrateur IAM de projet (roles/resourcemanager.projectIamAdmin) sur votre compte utilisateur.

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Accorder des autorisations pour utiliser l'Annuaire des services

Procédez comme suit pour autoriser Developer Connect à utiliser l'Annuaire des services et pour permettre à l'Annuaire des services d'accéder à votre ressource de réseau VPC.

  1. Accordez des autorisations au compte de service Developer Connect pour utiliser l'Annuaire des services en exécutant les commandes suivantes :

    PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    
    SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-devconnect.iam.gserviceaccount.com"
    
    gcloud projects add-iam-policy-binding SERVICE_DIRECTORY_RESOURCE_PROJECT_ID \
        --member="serviceAccount:${SERVICE_ACCOUNT}" \
        --role="roles/servicedirectory.viewer"
    

    Remplacez les éléments suivants :

    • PROJECT_ID: ID de votre Google Cloud projet.
    • SERVICE_DIRECTORY_RESOURCE_PROJECT_ID : ID de projet du projet qui contient votre ressource de service de l'Annuaire des services. Google Cloud
  2. Accordez des autorisations à l'Annuaire des services pour accéder à votre ressource de réseau VPC. La ressource de réseau peut se trouver dans un autre projet.

    gcloud projects add-iam-policy-binding NETWORK_RESOURCE_PROJECT_ID \
        --member="serviceAccount:${SERVICE_ACCOUNT}" \
        --role="roles/servicedirectory.pscAuthorizedService"
    

    Remplacez NETWORK_RESOURCE_PROJECT_ID par l'ID de projet du projet qui contient votre ressource de réseau VPC.

Utiliser l'Annuaire des services pour accéder à des hôtes en dehors de Google Cloud

L'Annuaire des services utilise la plage d'adresses IP 35.199.192.0/19 pour connecter votre hôte en dehors de Google Cloud. Vous devez ajouter cette plage à une liste d'autorisation dans votre pare-feu. De plus, votre réseau privé doit être configuré pour acheminer cette plage via la connexion Cloud VPN ou Cloud Interconnect.

Si votre connexion utilise un routeur Cloud Router, vous pouvez la configurer pour communiquer la plage à votre réseau privé.

Pour en savoir plus, consultez Configurer l'accès au réseau privé.

Utiliser Cloud Load Balancing pour accéder à des hôtes en dehors de Google Cloud

Si la configuration de votre réseau ne vous permet pas d'acheminer la plage d'adresses IP de l'Annuaire des services 35.199.192.0/19 vers Cloud VPN ou Cloud Interconnect, vous pouvez créer un équilibreur de charge à l'aide de Cloud Load Balancing qui dirige le trafic vers votre hôte.

Lorsque vous créez le point de terminaison de l'Annuaire des services, veillez à utiliser l'adresse IP de la règle de transfert de l'équilibreur de charge au lieu de l'adresse IP de votre hôte. Vous pouvez utiliser un équilibreur de charge HTTPS interne ou un équilibreur de charge de protocole de contrôle de transmission (TCP) interne lorsque vous créez votre point de terminaison.

Lorsque vous créez votre équilibreur de charge TCP, tenez compte des points suivants :

  • Seul un groupe de points de terminaison du réseau (NEG) de connectivité hybride est nécessaire pour accéder à votre hôte.
  • L'équilibreur de charge TCP ne nécessite pas la clé privée non chiffrée de votre certificat SSL.
  • Votre configuration Cloud VPN doit utiliser Cloud Router avec un routage dynamique mondial. Si votre Cloud VPN utilise un routage statique, vous pouvez utiliser un proxy qui utilise Cloud Service Mesh à la place. Pour en savoir plus, consultez Configurer les services de périphérie réseau pour les déploiements hybrides.

Pour en savoir plus sur la création d'un équilibreur de charge HTTPS, consultez Configurer un équilibreur de charge d'application interne avec une connectivité hybride. Pour en savoir plus sur la création d'un équilibreur de charge TCP, consultez Configurer un équilibreur de charge réseau proxy interne régional avec une connectivité hybride.

Créer des jetons d'accès

Pour créer des jetons d'accès dans GitLab, procédez comme suit :

  1. Connectez-vous à GitLab.

  2. Suivez les instructions de la documentation GitLab pour créer des jetons d’accès personnels, des jetons d’accès de groupe, ou des jetons d’accès de projet avec les autorisations suivantes :

    • Un jeton avec le champ d'application api pour connecter et déconnecter des dépôts.
    • Un jeton avec le champ d'application read_api pour autoriser Developer Connect à lire le code source dans vos dépôts.
    • Pour les jetons d'accès de groupe et les jetons d'accès de projet, les jetons doivent avoir un rôle de responsable ou supérieur.

Créer une connexion

Cette section explique comment créer une connexion entre Developer Connect et GitLab Enterprise. Si vous utilisez la Google Cloud console, vous pouvez également commencer à ajouter des liens vers des dépôts lorsque vous avez terminé de configurer votre connexion.

Pour créer une connexion GitLab Enterprise, sélectionnez l'une des options suivantes :

Console

Lancez une connexion en procédant comme suit :

  1. Dans la Google Cloud console, ouvrez Developer Connect.

    Accéder à Developer Connect

    Developer Connect affiche la page Dépôts Git.

    • Si vous voyez une liste de fournisseurs de gestion du code source : commencez à configurer votre première connexion en sélectionnant un fournisseur de gestion du code source. Cliquez sur Connecter sur la fiche GitLab Enterprise.
    • Si vous voyez un tableau répertoriant les connexions existantes : définissez le fournisseur de gestion du code source en cliquant sur Créer une connexion > GitLab Enterprise.

      La page Créer une connexion s'ouvre.

  2. Pour Région, choisissez une région pour vos ressources de connexion.

    1. Pour Nom, saisissez un nom pour votre nouvelle connexion.
  3. Dans la section Jetons d'accès , saisissez les jetons de votre compte :

    • Jeton d'accès à l'API : saisissez le jeton d'accès avec le champ d'application api.
    • Jeton d'accès à l'API de lecture : saisissez le jeton d'accès avec le read_api champ d'application.

    Vous êtes responsable de la validité de vos jetons GitLab. Les jetons GitLab ont une durée de vie maximale de 365 jours, sauf indication contraire du créateur du jeton ou d'un administrateur. Pour savoir comment gérer les paramètres d'expiration et les notifications des jetons, consultez la documentation GitLab sur les jetons d'accès personnels, les jetons d'accès de groupe, et les jetons d'accès de projet.

  4. Pour URL de l'hôte, saisissez l'URL de l'hôte auquel vous souhaitez vous connecter.

  5. Cliquez sur Afficher plus pour afficher les paramètres de configuration facultatifs.

    1. La case à cocher Activer le proxy Developer Connect est cochée par défaut afin que Developer Connect puisse agir en tant que proxy pour les appels Git vers GitLab Enterprise.

    2. Dans la section Mise en réseau, pour Type de réseau, choisissez Réseau privé.

    3. Pour Certificat CA, cliquez sur Parcourir pour importer votre certificat autosigné certificat.

      Votre certificat ne doit pas dépasser 10 Ko et doit être au format PEM (.pem, .cer ou .crt). Si cette section est laissée vide, un ensemble de certificats par défaut sera utilisé à la place.

    4. Dans la section Service de l'Annuaire des services, sélectionnez l'emplacement de votre service :

      • Dans le projet your-project
      • Dans un autre projet
      • Saisir manuellement

      Si vous sélectionnez Dans un autre projet ou Saisir manuellement, spécifiez l'ID de votre Google Cloud projet. Sélectionnez le projet dans le menu déroulant ou saisissez manuellement l'ID du projet.

    5. Région : sélectionnez la région de votre service de l'Annuaire des services. La région spécifiée pour votre service doit correspondre à la région associée à votre connexion.

    6. Espace de noms : sélectionnez l'espace de noms de votre service de l'Annuaire des services.

    7. Service : sélectionnez le nom du service de l'Annuaire des services dans votre espace de noms.

    8. Facultatif : Dans la section Chiffrement, sélectionnez une clé CMEK pour chiffrer les secrets Secret Manager créés par Developer Connect.

  6. Cliquez sur Continuer.

Une fois la connexion créée, la page Associer des dépôts s'affiche.

Procédez comme suit pour associer des dépôts à votre connexion :

  1. Dans la liste des dépôts disponibles, sélectionnez ceux que vous souhaitez utiliser.

  2. Cliquez sur OK.

  3. Cliquez sur Associer.

Votre connexion est ajoutée à la page Connexions et les liens de votre dépôt sont ajoutés à la page Dépôts de la Google Cloud console. Vous pouvez ajouter d'autres liens à des connexions existantes à tout moment.

Si vous configurez Gemini Code Assist, poursuivez le processus en suivant les étapes décrites dans Configurer et utiliser la personnalisation du code Gemini Code Assist.

gcloud

  1. Créez un secret de webhook dans Secret Manager en exécutant la commande suivante, où WEBHOOK_SECRET_NAME est un nom pour votre secret de webhook :

         cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create WEBHOOK_SECRET_NAME
    
  2. Stockez vos jetons d'accès dans Secret Manager en exécutant les commandes suivantes :

    gcloud secrets create API_SECRET_NAME
    
    echo -n API_SECRET_DATA | gcloud secrets versions add API_SECRET_NAME --data-file=-
    
    gcloud secrets create READ_SECRET_NAME
    
    echo -n READ_SECRET_DATA | gcloud secrets versions add READ_SECRET_NAME --data-file=-
    

    Remplacez les éléments suivants :

    • API_SECRET_NAME : nom du secret qui stocke le jeton avec le champ d'application api.
    • API_SECRET_DATA : jeton avec le champ d'application api, semblable à glpat-XXXXXXXXXXXXXXXX.
    • READ_SECRET_NAME : nom du secret qui stocke le jeton avec le champ d'application read_api.
    • READ_SECRET_DATA : jeton avec le champ d'application read_api, semblable à glpat-XXXXXXXXXXXXXXXX.
  3. Exécutez la commande gcloud developer-connect connections create pour créer une connexion à GitLab Enterprise :

    gcloud beta developer-connect connections create CONNECTION_NAME \
        --location=REGION \
        --gitlab-config-read-authorizer-credential-user-token-secret-version=projects/PROJECT_ID/secrets/READ_SECRET_NAME/versions/VERSION \
        --gitlab-config-authorizer-credential-user-token-secret-version=projects/PROJECT_ID/secrets/API_SECRET_NAME/versions/VERSION \
        --gitlab-enterprise-config-host-uri=HOST_URI
        --gitlab-enterprise-config-webhook-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET_NAME/versions/VERSION
        --git-proxy-config-enabled
    

    Remplacez les éléments suivants :

    • CONNECTION_NAME : nom de votre connexion.
    • REGION : région de votre connexion.
    • PROJECT_ID : ID de votre projet Google Cloud .
    • READ_SECRET_NAME : nom du secret Secret Manager qui contient le jeton avec le champ d'application read_api.
    • API_SECRET_NAME : nom du secret Secret Manager qui contient le jeton avec le champ d'application api.
    • VERSION : numéro de version de chaque secret. Vous pouvez utiliser latest pour utiliser le numéro de version le plus récent.
    • HOST_URI : URI de l'hôte auquel vous souhaitez vous connecter.
    • WEBHOOK_SECRET_NAME : nom du secret Secret Manager qui contient votre secret de webhook.
    • --git-proxy-config-enabled est un indicateur facultatif qui permet à Developer Connect d'agir en tant que proxy pour les appels Git vers GitLab Enterprise. Vous devez activer cette fonctionnalité lorsque vous exécutez la personnalisation du code Gemini Code Assist sur des dépôts de code source GitLab Enterprise hébergés dans des réseaux privés.
    • --gitlab-enterprise-config-ssl-ca-certificate est un indicateur facultatif permettant d'ajouter un certificat SSL au format $HOME/my-ssl-ca.txt.

    Developer Connect établit la connexion à GitLab. Ensuite, créez un lien vers des dépôts.

Une fois que vous avez établi une connexion à GitLab Enterprise, vous pouvez créer un lien vers des dépôts. Vous pouvez répéter ces étapes ultérieurement pour créer un lien vers d'autres dépôts si nécessaire.

Pour créer des liens de dépôt sur une connexion GitLab Enterprise existante, sélectionnez l'une des options suivantes :

Console

Créez des liens vers des dépôts en procédant comme suit :

  1. Ouvrez la page Dépôts dans la Google Cloud console.

    Ouvrir la page Dépôts

  2. Cliquez sur Associer le dépôt.

    Le volet Associer des dépôts Git s'ouvre.

  3. Dans la liste des connexions, choisissez une connexion.

  4. Cliquez sur Continuer.

  5. Dans la liste des dépôts, sélectionnez ceux auxquels vous souhaitez créer un lien.

    Developer Connect affiche des noms suggérés pour vos ressources de dépôt.

  6. Sélectionnez une option de nommage des ressources de dépôt :

    • Généré : utilisez les noms de ressources de dépôt générés.
    • Manuel : saisissez vos propres noms.
  7. Cliquez sur Créer.

Developer Connect crée les liens de dépôt et les affiche dans la Google Cloud console.

gcloud

Créez un lien vers un dépôt GitLab en exécutant la commande suivante :

gcloud beta developer-connect connections git-repository-links create REPO_NAME \
    --clone-uri=REPO_URI \
    --connection=CONNECTION_NAME \
    --location=REGION

Remplacez les éléments suivants :

  • REPO_NAME : nom de votre lien de dépôt.
  • REPO_URI : lien vers votre dépôt, semblable à https://gitlab.com/my-project/test-repo.git.
  • CONNECTION_NAME : nom de votre connexion.
  • REGION : région de votre connexion.

Developer Connect crée les liens de dépôt.

Pour afficher la liste des dépôts associés, exécutez la developer-connect connections git-repository-links list commande.

Si vous configurez Gemini Code Assist, poursuivez le processus en suivant les étapes décrites dans Configurer et utiliser la personnalisation du code Gemini Code Assist.

Étape suivante