Utilizzare la gestione del codice sorgente Git

Secure Source Manager supporta tutti i client SCM Git comandi e include richieste di pull e monitoraggio dei problemi. Sono supportate sia l'autenticazione HTTPS sia quella 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 Concedi 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 la versione 395.0.0 o successive di gcloud CLI. Per verificare 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.

Configura 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 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 progetto. Per trovare il numero del progetto, consulta Identifica i 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 progetto. Per trovare il numero del progetto, consulta Identifica i progetti.
  • LOCATION con la regione dell'istanza. Per saperne di più sulle regioni, consulta Località.

L'helper di autenticazione utilizza gcloud CLI per recuperare le Google Cloud credenziali quando utilizzi i comandi Git con Secure Source Manager.

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

gcloud auth login

Esegui l'autenticazione da una VM Compute Engine utilizzando un account di servizio

Puoi eseguire l'autenticazione 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: l' Google Cloud ID progetto.
  • ZONE: la zona della VM.

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

  1. Crea un account di servizio:

    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 a utilizzare il account di servizio. Per creare una VM con un service account, devi avere il 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'indirizzo 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 i 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 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 potrebbe richiedere alcuni minuti.

Configura Git nella VM

  1. Connettiti alla VM tramite SSH:

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

    sudo apt-get install git
    
  3. Nella VM, configura l'helper delle credenziali Git come descritto in Configura 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 eseguire l'autenticazione con le credenziali predefinite dell'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 eseguire l'autenticazione a Secure Source Manager con un provider di identità di terze parti.

Per eseguire l'autenticazione con le credenziali del pool di identità per la forza lavoro all'istanza Secure Source Manager utilizzando i comandi gcloud CLI o Git, devi creare una configurazione di accesso con il pool di identità per la forza lavoro.

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

Dopo aver eseguito l'autenticazione, puoi utilizzare i comandi Git per interagire con l'istanza Secure Source Manager. Devi eseguire di nuovo l'autenticazione quando scade la durata della sessione per il pool di identità per la forza lavoro.

Clona un repository

Clona un repository eseguendo questo comando:

git clone REPOSITORY_URL

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

Clona con Developer Connect

Puoi clonare i repository utilizzando il proxy Git di Developer Connect se hai collegato il repository Secure Source Manager in Developer Connect. La clonazione con Developer Connect utilizza IAM per autenticare e autorizzare l'accesso al repository.

Prima di iniziare

  1. Segui le istruzioni per creare una connessione a un repository Secure Source Manager in Developer Connect.
  2. Assicurati che il proxy Git sia abilitato nella connessione Developer Connect. Per istruzioni sull'abilitazione del proxy Git, consulta Configura e utilizza il proxy Developer Connect.
  3. Concedi alle entità che devono clonare utilizzando l'URI del proxy il ruolo roles/developerconnect.gitProxyReader nella risorsa GitRepositoryLink in Developer Connect. Per istruzioni sulla concessione dei ruoli, consulta Controllo dell'accesso a Developer Connect con IAM.

Configura le credenziali per Developer Connect

Aggiungi l'helper di autenticazione Developer Connect alla configurazione Git globale eseguendo questo comando:

Linux

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

Windows

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

Clona utilizzando l'URI del proxy

Per clonare un repository utilizzando l'URI del proxy Developer Connect, esegui questo comando:

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

Sostituisci quanto segue:

  • REGION: la regione delle risorse Developer Connect.
  • PROJECT_ID: l'ID progetto delle risorse Developer Connect.
  • CONNECTION_ID: l'ID della connessione Developer Connect.
  • LINK_ID: l'ID della risorsa GitRepositoryLink di Developer Connect.

Per istruzioni sulla visualizzazione dei dettagli della risorsa GitRepositoryLink, consulta gcloud developer-connect connections git-repository-links. Puoi utilizzare i sottocomandi list o describe per visualizzare i dettagli del link.

Esegui il push di un repository esistente in Secure Source Manager

Prima di poter eseguire il push, devi creare un repository Secure Source Manager che funga da 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 saperne di più sulla gestione del codice sorgente Git, consulta la documentazione di Git.

Passaggi successivi