Utilizzare la gestione del codice sorgente Git

Secure Source Manager supporta tutti i comandi client Git SCM e dispone di richieste di pull e monitoraggio dei problemi integrati. Sono supportati sia HTTPS sia l'autenticazione SSH.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per utilizzare Git per interagire con un repository Secure Source Manager, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Per informazioni sulla concessione dei ruoli Secure Source Manager, consulta Controllo dell'accesso con IAM e Concedere agli utenti l'accesso all'istanza.

Installa Git e Google Cloud CLI

  1. Installa Git.

  2. Se il programma di installazione di Git ti chiede di Scegliere un helper delle credenziali, seleziona Nessuno (non utilizzare un helper delle credenziali).

  3. Installa gcloud CLI.

  4. Per utilizzare Git con HTTPS è necessaria gcloud CLI versione 395.0.0 o successive. Per controllare la versione di gcloud CLI, esegui questo comando:

    gcloud --version
    
  5. Per aggiornare gcloud CLI, esegui questo comando.

    gcloud components update
    
  6. Dopo l'aggiornamento, esegui gcloud init per inizializzare gcloud CLI.

    Per saperne di più, consulta la documentazione di gcloud CLI sull'aggiornamento dei componenti.

Configurare le credenziali

Se esegui l'autenticazione a Secure Source Manager utilizzando un provider di identità di terze parti e la federazione delle identità per la forza lavoro, non devi completare questa sezione. Devi invece creare una configurazione di accesso al pool di identità per la forza lavoro.

Aggiungi l'helper di autenticazione di Secure Source Manager alla configurazione Git globale eseguendo questo comando:

Linux

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

Le versioni precedenti di Git potrebbero non supportare i caratteri jolly. Per aggiungere l'helper di autenticazione senza caratteri jolly, esegui questo comando:

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

Sostituisci quanto segue:

  • INSTANCE_ID con il nome dell'istanza Secure Source Manager.
  • PROJECT_NUMBER con il numero del tuo progetto. Per assistenza su come trovare il numero del progetto, consulta Identificazione dei progetti.
  • LOCATION con la regione dell'istanza. Per saperne di più sulle regioni, consulta Località.

Windows

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

Le versioni precedenti di Git potrebbero non supportare i caratteri jolly. Per aggiungere l'helper di autenticazione senza caratteri jolly, esegui questo comando:

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

Sostituisci quanto segue:

  • INSTANCE_ID con il nome dell'istanza Secure Source Manager.
  • PROJECT_NUMBER con il numero del tuo progetto. Per assistenza su come trovare il numero del progetto, consulta Identificazione dei progetti.
  • LOCATION con la regione dell'istanza. Per saperne di più sulle regioni, consulta Località.

L'helper per l'autenticazione utilizza gcloud CLI per recuperare le tue credenzialiGoogle Cloud quando utilizzi i comandi Git con Secure Source Manager.

Per eseguire nuovamente l'autenticazione dopo la configurazione iniziale delle credenziali, esegui questo comando gcloud CLI:

gcloud auth login

Autenticazione da una VM Compute Engine utilizzando un account di servizio

Puoi autenticarti da una macchina virtuale (VM) Compute Engine utilizzando un account di servizio collegato.

Configura la VM e il account di servizio

Se utilizzi il account di servizio Compute Engine predefinito, crea la VM con gli ambiti OAuth richiesti:

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

Sostituisci quanto segue:

  • VM_NAME: il nome della VM.
  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • ZONE: la zona della VM.

Se utilizzi un account di servizio personalizzato, crealo e poi crea la VM.

  1. Crea un service account:

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

    Sostituisci SA_NAME con un nome per il account di servizio.

  2. Concedi l'autorizzazione per utilizzare il account di servizio. Per creare una VM con un service account, devi disporre del ruolo Utente service account (roles/iam.serviceAccountUser) nel account di servizio. Concedi questo ruolo all'entità che crea 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"
    

    Sostituisci USER_EMAIL con l'email dell'utente che crea la VM.

  3. Crea 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
    

Concedi ruoli IAM al account di servizio

Concedi al account di servizio l'accesso all'istanza e al repository Secure Source Manager:

  1. Concedi l'accesso all'istanza:

    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. Concedi l'accesso in lettura al repository.

    Per concedere l'accesso in lettura a un repository specifico, esegui questo comando:

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

    Sostituisci quanto segue:

    • REPOSITORY_ID: l'ID repository.
    • INSTANCE_ID: l'ID istanza di Secure Source Manager.
    • LOCATION: la regione dell'istanza Secure Source Manager.

    Per concedere l'accesso in scrittura, utilizza il ruolo roles/securesourcemanager.repoWriter.

    Per seguire il principio del privilegio minimo, ti consigliamo di concedere l'accesso a livello di repository. Se devi concedere l'accesso a tutti i repository di un progetto, consulta Controllo dell'accesso con IAM.

La propagazione delle autorizzazioni IAM può richiedere alcuni minuti.

Configura Git sulla VM

  1. Connettiti alla VM tramite SSH:

    gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONE
    
  2. Sulla VM, installa Git:

    sudo apt-get install git
    
  3. Sulla VM, configura l'helper delle credenziali Git come descritto in Configurare le credenziali. Ad esempio, su Linux:

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

Dopo aver configurato l'helper delle credenziali, Git utilizza le credenziali predefinite dell'applicazione del account di servizio della VM per l'autenticazione a Secure Source Manager. Ora puoi clonare un repository. Per l'autenticazione con le Credenziali predefinite dell'applicazione#39;applicazione, devi utilizzare l'URL del repository HTTPS.

Crea una configurazione di accesso al pool di identità per la forza lavoro

Non devi completare questa sezione a meno che tu non stia utilizzando la federazione delle identità per la forza lavoro per l'autenticazione in Secure Source Manager con un provider di identità di terze parti.

Per autenticarti con le credenziali del tuo pool di identità della forza lavoro nell'istanza di Secure Source Manager utilizzando i comandi gcloud CLI o Git, devi creare una configurazione di accesso con il tuo pool di identità della forza lavoro.

Per creare una configurazione di accesso al pool di identità della forza lavoro, segui le istruzioni riportate in Recuperare token di breve durata per la federazione delle identità per la forza lavoro per creare un accesso basato sul browser con gcloud CLI.

Una volta eseguita l'autenticazione, puoi utilizzare i comandi Git per interagire con l'istanza di Secure Source Manager. Devi eseguire nuovamente l'autenticazione quando scade la durata della sessione per il tuo pool di identità della forza lavoro.

Clonare un repository

Clona un repository eseguendo il seguente comando:

git clone REPOSITORY_URL

dove REPOSITORY_URL è l'URL HTTPS o SSH visualizzato nella parte superiore della pagina del repository che vuoi clonare.

Eseguire il push di un repository esistente in Secure Source Manager

Prima di poter eseguire il push, devi creare un repository Secure Source Manager da utilizzare come repository remoto.

Per eseguire il push del repository Git esistente in un repository Secure Source Manager vuoto, devi aggiungere il repository Secure Source Manager come repository remoto ed eseguire il push.

  1. Per impostare il repository Secure Source Manager come repository remoto, esegui questo comando:

    git remote add origin REPOSITORY_URL
    

    Dove REPOSITORY_URL è l'URL HTTPS o SSH visualizzato nella parte superiore della pagina del repository.

  2. Per eseguire il push nel repository, esegui questo comando:

    git push -u origin main
    

Per ulteriori informazioni sulla gestione del codice sorgente Git, consulta la documentazione di Git.

Passaggi successivi