Utiliser la gestion du code source Git

Secure Source Manager est compatible avec toutes les commandes du client Git SCM et intègre des demandes d'extraction et un suivi des problèmes. L'authentification HTTPS et SSH est acceptée.

Rôles requis

Pour obtenir les autorisations nécessaires pour utiliser Git afin d'interagir avec un dépôt Secure Source Manager, demandez à votre administrateur de vous accorder les rôles IAM suivants :

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.

Pour en savoir plus sur l'attribution de rôles Secure Source Manager, consultez Contrôle des accès avec IAM et Accorder aux utilisateurs l'accès à une instance.

Installer Git et Google Cloud CLI

  1. Installez Git.

  2. Si l'outil d'installation Git vous invite à Choisir un assistant d'identification , sélectionnez Aucun (ne pas utiliser d'assistant d'identification).

  3. Installez la gcloud CLI.

  4. La version 395.0.0 ou ultérieure de la gcloud CLI est requise pour utiliser Git avec HTTPS. Pour vérifier votre version de la gcloud CLI, exécutez la commande suivante :

    gcloud --version
    
  5. Pour mettre à jour la gcloud CLI, exécutez la commande suivante :

    gcloud components update
    
  6. Après la mise à jour, exécutez gcloud init pour initialiser la gcloud CLI.

    Pour en savoir plus, consultez la documentation de la gcloud CLI sur la mise à jour des composants.

Configurer vos identifiants

Si vous vous authentifiez auprès de Secure Source Manager à l'aide d'un fournisseur d'identité tiers et de la fédération des identités des employés, vous n'avez pas besoin de suivre cette section. Vous devez plutôt créer une configuration de connexion au pool d'identités de personnel.

Ajoutez l'assistant d'authentification Secure Source Manager à votre configuration Git globale en exécutant la commande suivante :

Linux

git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh

Les versions antérieures de Git ne sont peut-être pas compatibles avec les caractères génériques. Pour ajouter l'assistant d'authentification sans caractères génériques, exécutez la commande suivante :

git config --global credential.'https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev'.helper gcloud.sh

Remplacez les éléments suivants :

  • INSTANCE_ID par le nom de votre instance Secure Source Manager.
  • PROJECT_NUMBER par votre numéro de projet. Pour obtenir de l'aide afin de trouver votre numéro de projet, consultez Identifier des projets.
  • LOCATION par la région de l'instance. Pour en savoir plus sur les régions, consultez la section Emplacements.

Windows

git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd

Les versions antérieures de Git ne sont peut-être pas compatibles avec les caractères génériques. Pour ajouter l'assistant d'authentification sans caractères génériques, exécutez la commande suivante :

git config --global credential.https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev.helper gcloud.cmd

Remplacez les éléments suivants :

  • INSTANCE_ID par le nom de votre instance Secure Source Manager.
  • PROJECT_NUMBER par votre numéro de projet. Pour obtenir de l'aide afin de trouver votre numéro de projet, consultez Identifier des projets.
  • LOCATION par la région de l'instance. Pour en savoir plus sur les régions, consultez la section Emplacements.

L'assistant d'authentification utilise la gcloud CLI pour récupérer vos Google Cloud identifiants lorsque vous utilisez des commandes Git avec Secure Source Manager.

Pour vous réauthentifier après la configuration initiale des identifiants, exécutez la commande suivante de la gcloud CLI :

gcloud auth login

S'authentifier à partir d'une VM Compute Engine à l'aide d'un compte de service

Vous pouvez vous authentifier à partir d'une machine virtuelle (VM) Compute Engine à l'aide d'un compte de service associé.

Configurer la VM et le compte de service

Si vous utilisez le compte de service Compute Engine par défaut, créez votre VM avec les champs d'application OAuth requis :

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform

Remplacez les éléments suivants :

  • VM_NAME : nom de votre VM.
  • PROJECT_ID: ID de votre Google Cloud projet.
  • ZONE : zone de votre VM.

Si vous utilisez un compte de service personnalisé, créez-le, puis créez la VM.

  1. Créez un compte de service :

    gcloud iam service-accounts create SA_NAME --project=PROJECT_ID
    

    Remplacez SA_NAME par le nom que vous souhaitez donner au compte de service.

  2. Accordez l'autorisation d'utiliser le compte de service. Pour créer une VM avec un compte de service, vous devez disposer du rôle Utilisateur de compte de service (roles/iam.serviceAccountUser) sur le compte de service. Accordez ce rôle au compte principal qui crée la VM :

    gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"
    

    Remplacez USER_EMAIL par l'adresse e-mail de l'utilisateur qui crée la VM.

  3. Créez la VM :

    gcloud compute instances create VM_NAME \
        --project=PROJECT_ID \
        --zone=ZONE \
        --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform \
        --service-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
    

Attribuer des rôles IAM au compte de service

Accordez au compte de service l'accès à l'instance et au dépôt Secure Source Manager :

  1. Accordez l'accès à l'instance :

    SA_EMAIL=$(gcloud compute instances describe VM_NAME --project=PROJECT_ID --zone=ZONE --format="get(serviceAccounts[0].email)")
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:$SA_EMAIL" \
        --role=roles/securesourcemanager.instanceAccessor
    
  2. Accordez l'accès en lecture au dépôt.

    Pour accorder l'accès en lecture à un dépôt spécifique, exécutez la commande suivante :

    gcloud ssm repos add-iam-policy-binding REPOSITORY_ID \
        --instance=INSTANCE_ID \
        --location=LOCATION \
        --member="serviceAccount:$SA_EMAIL" \
        --role=roles/securesourcemanager.repoReader
    

    Remplacez les éléments suivants :

    • REPOSITORY_ID : ID du dépôt.
    • INSTANCE_ID : ID de l'instance Secure Source Manager.
    • LOCATION : région de l'instance Secure Source Manager.

    Pour accorder l'accès en écriture, utilisez le rôle roles/securesourcemanager.repoWriter.

    Il est recommandé d'accorder l'accès au niveau du dépôt pour suivre le principe du moindre privilège. Si vous devez accorder l'accès à tous les dépôts d'un projet, consultez Contrôle des accès avec IAM.

La propagation des autorisations IAM peut prendre quelques minutes.

Configurer Git sur la VM

  1. Connectez-vous à la VM à l'aide de SSH :

    gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONE
    
  2. Installez Git sur la VM :

    sudo apt-get install git
    
  3. Sur la VM, configurez l'assistant d'identification Git comme décrit dans Configurer vos identifiants. Par exemple, sous Linux :

    git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
    

Une fois l'assistant d'identification configuré, Git utilise les identifiants par défaut de l'application du compte de service de la VM pour s'authentifier auprès de Secure Source Manager. Vous pouvez maintenant cloner un dépôt. Vous devez utiliser l'URL du dépôt HTTPS pour vous authentifier avec les identifiants par défaut de l'application.

Créer une configuration de connexion au pool d'identités de personnel

Vous n'avez pas besoin de suivre cette section, sauf si vous utilisez la fédération des identités des employés pour vous authentifier auprès de Secure Source Manager avec un fournisseur d'identité tiers.

Pour vous authentifier auprès de votre instance Secure Source Manager avec les identifiants de votre pool d'identités de personnel à l'aide de commandes de la gcloud CLI ou de commandes Git, vous devez créer une configuration de connexion avec votre pool d'identités de personnel.

Pour créer une configuration de connexion au pool d'identités de personnel, suivez les instructions de la section Obtenir des jetons éphémères pour la fédération des identités des employés afin de créer une connexion basée sur un navigateur avec la gcloud CLI.

Une fois que vous vous êtes authentifié, vous pouvez utiliser des commandes Git pour interagir avec votre instance Secure Source Manager. Vous devez vous réauthentifier lorsque la durée de la session de votre pool d'identités de personnel expire.

Cloner un dépôt

Clonez un dépôt en exécutant la commande suivante :

git clone REPOSITORY_URL

REPOSITORY_URL correspond à l'URL HTTPS ou SSH affichée en haut de la page du dépôt que vous souhaitez cloner.

Cloner avec Developer Connect

Vous pouvez cloner des dépôts à l'aide du proxy Git Developer Connect si vous avez associé votre dépôt Secure Source Manager à Developer Connect. Le clonage avec Developer Connect utilise IAM pour authentifier et autoriser l'accès au dépôt.

Avant de commencer

  1. Suivez les instructions pour créer une connexion à un dépôt Secure Source Manager dans Developer Connect.
  2. Assurez-vous que le proxy Git est activé sur votre connexion Developer Connect. Pour savoir comment activer le proxy Git, consultez Configurer et utiliser le proxy Developer Connect.
  3. Accordez aux comptes principaux qui doivent cloner à l'aide de l'URI du proxy le rôle roles/developerconnect.gitProxyReader sur la ressource GitRepositoryLink dans Developer Connect. Pour savoir comment accorder des rôles, consultez Contrôle des accès à Developer Connect avec IAM.

Configurer les identifiants pour Developer Connect

Ajoutez l'assistant d'authentification Developer Connect à votre configuration Git globale en exécutant la commande suivante :

Linux

git config --global credential.'https://*.developerconnect.dev'.helper gcloud.sh

Windows

git config --global credential.https://*.developerconnect.dev.helper gcloud.cmd

Cloner à l'aide de l'URI du proxy

Pour cloner un dépôt à l'aide de l'URI du proxy Developer Connect, exécutez la commande suivante :

git clone https://REGION-git.developerconnect.dev/v1/projects/PROJECT_ID/locations/REGION/connections/CONNECTION_ID/gitRepositoryLinks/LINK_ID

Remplacez les éléments suivants :

  • REGION : région de vos ressources Developer Connect.
  • PROJECT_ID : ID du projet de vos ressources Developer Connect.
  • CONNECTION_ID : ID de votre connexion Developer Connect.
  • LINK_ID : ID de votre ressource GitRepositoryLink Developer Connect.

Pour savoir comment afficher les détails de votre GitRepositoryLink ressource, consultez gcloud developer-connect connections git-repository-links. Vous pouvez utiliser les sous-commandes list ou describe pour afficher les détails du lien.

Envoyer un dépôt existant à Secure Source Manager

Vous devez créer un dépôt Secure Source Manager qui servira de dépôt distant avant de pouvoir y transmettre des données.

Pour envoyer votre dépôt Git existant à un dépôt Secure Source Manager vide, vous devez ajouter le dépôt Secure Source Manager en tant que dépôt distant et y envoyer des données.

  1. Pour définir le dépôt Secure Source Manager en tant que dépôt distant, exécutez la commande suivante :

    git remote add origin REPOSITORY_URL
    

    REPOSITORY_URL correspond à l'URL HTTPS ou SSH affichée en haut de la page du dépôt.

  2. Pour envoyer des données au dépôt, exécutez la commande suivante :

    git push -u origin main
    

Pour en savoir plus sur la gestion du code source Git, consultez la documentation Git.

Étape suivante