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 :
- Accesseur d'instances Secure Source Manager (
roles/securesourcemanager.instanceAccessor) sur l'instance Secure Source Manager -
Pour cloner un dépôt :
lecteur de dépôts Secure Source Manager (
roles/securesourcemanager.repoReader) sur le dépôt -
Pour envoyer des données à un dépôt :
rédacteur de dépôts Secure Source Manager (
roles/securesourcemanager.repoWriter) sur le dépôt
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
Installez Git.
Si l'outil d'installation Git vous invite à Choisir un assistant d'identification , sélectionnez Aucun (ne pas utiliser d'assistant d'identification).
La version
395.0.0ou 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 --versionPour mettre à jour la gcloud CLI, exécutez la commande suivante :
gcloud components updateAprès la mise à jour, exécutez
gcloud initpour 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_IDpar le nom de votre instance Secure Source Manager.PROJECT_NUMBERpar votre numéro de projet. Pour obtenir de l'aide afin de trouver votre numéro de projet, consultez Identifier des projets.LOCATIONpar 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_IDpar le nom de votre instance Secure Source Manager.PROJECT_NUMBERpar votre numéro de projet. Pour obtenir de l'aide afin de trouver votre numéro de projet, consultez Identifier des projets.LOCATIONpar 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.
Créez un compte de service :
gcloud iam service-accounts create SA_NAME --project=PROJECT_IDRemplacez
SA_NAMEpar le nom que vous souhaitez donner au compte de service.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_EMAILpar l'adresse e-mail de l'utilisateur qui crée la VM.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 :
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.instanceAccessorAccordez 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.repoReaderRemplacez 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
Connectez-vous à la VM à l'aide de SSH :
gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONEInstallez Git sur la VM :
sudo apt-get install gitSur 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
Où 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
- Suivez les instructions pour créer une connexion à un dépôt Secure Source Manager dans Developer Connect.
- 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.
- Accordez aux comptes principaux qui doivent cloner à l'aide de l'URI du proxy le rôle
roles/developerconnect.gitProxyReadersur la ressourceGitRepositoryLinkdans 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 ressourceGitRepositoryLinkDeveloper 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.
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_URLOù
REPOSITORY_URLcorrespond à l'URL HTTPS ou SSH affichée en haut de la page du dépôt.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
- En savoir plus sur la gestion du code source Git
- Lister et afficher les dépôts.