Risoluzione dei problemi

Questa pagina mostra come risolvere i problemi relativi a Secure Source Manager.

Messaggio di errore durante la creazione di un repository

Quando provi a creare un repository, viene visualizzato il seguente errore:

There was an error while loading /repo/create. Try refreshing the page.

Questo problema si verifica quando:

  • L'API Secure Source Manager non è abilitata nel tuo progetto.
  • Non hai il ruolo Amministratore repository nel progetto o le autorizzazioni per creare repository nell'istanza di Secure Source Manager.

Per risolvere il problema:

  • Abilita l'API Secure Source Manager nel tuo progetto.
  • Chiedi all'amministratore di concederti i seguenti ruoli:
    • Ruolo Amministratore repository (roles/securesourcemanager.repoAdmin) nel progetto.
    • Instance Accessor (roles/securesourcemanager.instanceAccessor) sull'istanza Secure Source Manager.
    • Instance Repository Creator (roles/securesourcemanager.instanceRepositoryCreator) nell'istanza Secure Source Manager.

Per ulteriori dettagli, consulta la pagina Controllo dell'accesso con IAM.

Messaggio di errore durante la clonazione di un repository su un Mac

Quando provi a clonare un repository, viene visualizzato il seguente errore:

git: 'credential-gcloud.sh' is not a git command.  See 'git --help'.
fatal: Authentication failed for [repo-url]

Questo problema si verifica quando:

  • gcloud CLI è installata utilizzando Homebrew o un'altra installazione non standard.
  • git-credential-gcloud.sh non è aggiunto al tuo PATH.

Per risolvere il problema:

  • Esegui source $HOMEBREW_PREFIX/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc
  • Verifica che git-credential-gcloud.sh sia nel tuo percorso eseguendo il seguente comando:

    which git-credential-gcloud.sh
    

La connessione SSH non riesce e viene visualizzato l'errore "Nessuna corrispondenza"

Quando provi a eseguire operazioni Git su SSH, potresti ricevere uno dei seguenti messaggi di errore:

  • Unable to negotiate with <host> port <port>: no matching key exchange method found.
  • Unable to negotiate with <host> port <port>: no matching cipher found.
  • Unable to negotiate with <host> port <port>: no matching MAC found.

Questo problema si verifica quando il client SSH non supporta gli algoritmi crittografici richiesti da Secure Source Manager. Questo può accadere se utilizzi un client SSH precedente o se il client non è configurato per utilizzare gli algoritmi supportati.

Secure Source Manager richiede uno dei seguenti algoritmi:

  • Algoritmi di scambio di chiavi: curve25519-sha256, diffie-hellman-group14-sha256
  • Crittografie: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
  • MAC: hmac-sha2-256-etm@openssh.com, hmac-sha2-256

Per risolvere il problema, aggiorna il client SSH a una versione recente che supporti questi algoritmi.

Le richieste HTTPS Git non vanno a buon fine con un errore di autorizzazione negata o non autorizzata

Quando si tenta di eseguire i comandi Git tramite HTTPS, viene visualizzato un messaggio di errore di autorizzazione negata o non autorizzata.

Questo problema si verifica quando si verifica una delle seguenti condizioni:

  • Nel file di configurazione Git globale manca l'helper di autenticazione di Secure Source Manager.
  • Viene utilizzato l'archivio credenziali integrato di Git anziché chiamare l'helper di autenticazione di Secure Source Manager per ottenere una nuova credenziale.
  • Viene utilizzato un helper delle credenziali di sistema anziché chiamare l'helper di autenticazione di Secure Source Manager per ottenere una nuova credenziale.
  • Quando interagisci con i repository Secure Source Manager utilizzando HTTPS, viene utilizzata una versione precedente di Google Cloud CLI. Secure Source Manager richiede Google Cloud CLI versione 395.0.0 o successive.

Per risolvere il problema:

  1. Esegui questo comando per determinare i contenuti della configurazione Git globale.

    git config --list | grep credential
    
  2. Se vedi una riga simile a *credential*.helper=store su macOS o credential.helper = manager su sistema operativo Windows, rimuovi queste righe, quindi esegui nuovamente l'autenticazione utilizzando gcloud auth login prima di riprovare il comando Git.

  3. Se la risposta non include credential.https://*.*.sourcemanager.dev.helper=gcloud.sh su macOS o Linux o credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd su Windows, aggiungi l'helper di autenticazione di Secure Source Manager alla configurazione Git globale:

    Linux

    1. Per aggiungere l'helper di autenticazione di Secure Source Manager alla configurazione Git globale, esegui questo comando:

      git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
      
    2. Verifica che la riga dell'helper di autenticazione sia stata aggiunta alla configurazione Git globale eseguendo questo comando:

      git config --list | grep credential
      

      L'output dovrebbe includere credential.https://*.*.sourcemanager.dev.helper=gcloud.sh.

    3. Esegui l'autenticazione eseguendo gcloud auth login.

    4. Esegui un comando Git per testare l'autenticazione.

    Windows

    1. Controlla la versione di gcloud CLI seguendo le istruzioni riportate in Installa Git e Google Cloud CLI.
    2. Per aggiungere l'helper di autenticazione di Secure Source Manager alla configurazione Git globale, esegui questo comando:

      git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd
      
    3. Verifica che la riga dell'helper di autenticazione sia stata aggiunta alla configurazione Git globale eseguendo questo comando:

      git config --list | grep credential
      

      L'output dovrebbe includere credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd.

    4. Esegui l'autenticazione eseguendo gcloud auth login.

    5. Esegui un comando Git per testare l'autenticazione.

  4. Se in precedenza hai impostato la credenziale per il tuo host Git su gcloud.sh, ma ricevi un errore come 'credential-gcloud.sh' is not a git command, significa che Git non è in grado di trovare lo script git-credential-gcloud.sh nel PATH della tua macchina. Aggiorna il tuo PATH o sostituisci gcloud.sh nel file gitconfig con il percorso assoluto.

Le richieste HTTPS Git non vanno a buon fine con un token non valido

Per le operazioni Git HTTPS è necessario un token OAuth valido come password. In genere, questa operazione viene gestita dall'helper per le credenziali Git, ma può funzionare anche con i token OAuth generati utilizzando altri approcci (ad esempio, credenziali predefinite dell'applicazione).

Se una richiesta Git viene rifiutata a causa di un token non valido, in genere significa che non è stato possibile estrarre le informazioni dell'utente dal token in entrata. Esistono diverse possibili cause di questo errore:

  • Il tuo accesso a gcloud CLI potrebbe essere scaduto.

    Accedi di nuovo utilizzando gcloud auth login.

  • Il tuo token non ha un ambito sufficiente. I token OAuth devono avere i seguenti ambiti:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/userinfo.email

    Puoi controllare l'ambito del token chiamandocurl https://oauth2.googleapis.com/tokeninfo?access_token=${TOKEN}

  • Stai utilizzando un token generato da Workload Identity del parco risorse GKE:

  • Hai policy dell'organizzazione che impediscono l'utilizzo di token al di fuori di determinati perimetri, ad esempio l'accesso sensibile al contesto.

    Per risolvere il problema, imposta la proprietà di configurazione di gcloud CLI git_helper_use_adc su true e aggiorna le credenziali predefinite dell'applicazione (ADC):

    1. Accedi utilizzando le credenziali predefinite dell'applicazione:

      gcloud auth application-default login
      
    2. Imposta la proprietà git_helper_use_adc:

      gcloud config set auth/git_helper_use_adc true
      

Le richieste HTTPS Git non vanno a buon fine su macOS con errore 403 a causa di credenziali obsolete

Quando esegui operazioni Git su HTTPS su macOS, potresti ricevere un errore 403.

Questo problema può verificarsi su macOS se utilizzi il Portachiavi iCloud, che può interferire con i token di autenticazione di gcloud CLI archiviando e sincronizzando token obsoleti. Questi token inattivi possono causare errori di autenticazione con Secure Source Manager, anche dopo aver eseguito nuovamente l'autenticazione utilizzando gcloud auth login.

Per risolvere il problema, elimina manualmente le credenziali obsolete da Accesso Portachiavi:

  1. Apri l'applicazione Accesso Portachiavi sul Mac (disponibile in /Applications/Utilities/).
  2. Cerca sourcemanager.dev.
  3. Elimina tutte le voci di tipo "password internet" che corrispondono a *.*.sourcemanager.dev o all'URL dell'istanza di Secure Source Manager facendo clic con il tasto destro del mouse sulla voce e selezionando Elimina.
  4. Dopo aver eliminato le voci, riprova l'operazione Git. Ti potrebbe essere chiesto di eseguire nuovamente l'autenticazione con gcloud CLI. Se le operazioni Git continuano a non riuscire, esegui gcloud auth login prima di riprovare.

SSM restituisce un errore quando si utilizzano i token del service account Kubernetes (KSA) con Workload Identity del parco risorse GKE

Quando utilizzi Workload Identity del parco risorse GKE, i token KSA non elaborati non sono supportati da Secure Source Manager. L'utilizzo di questi token genera un errore.

Per risolvere il problema, devi simulare l'identità di un service account e associare il workload a un account di servizio Google. Devi anche aggiungere la seguente annotazione alla configurazione del KSA:

iam.gke.io/gcp-service-account: SERVICE_ACCOUNT@PROJECT_ID.

Il progetto non viene visualizzato nel selettore dei prodotti dell'interfaccia web

Quando utilizzi il selettore di prodotti dell'interfaccia web di Secure Source Manager, il tuo progetto non viene visualizzato.

Questo problema si verifica quando hai più credenziali di accesso per Secure Source Manager.

Per risolvere il problema:

  • Cancella i cookie aggiungendo quanto segue all'URL dell'istanza di Secure Source Manager: /_oauth/consent

    Ad esempio, se l'URL dell'istanza è https://my-instance-098765432123.us-central1.sourcemanager.dev/, inserisci https://my-instance-098765432123.us-central1.sourcemanager.dev/_oauth/consent nella barra degli indirizzi del browser e poi accedi con le credenziali corrette.

Il file dei trigger non attiva le build

Se le build non vengono attivate come previsto dopo l'invio del file dei trigger, potresti avere uno dei seguenti problemi:

  • Il file dei trigger non si trova nel branch predefinito. Per risolvere il problema, sposta il file dei trigger nel branch predefinito.
  • Il formato del file degli attivatori non è valido. Questo errore è indicato da un banner nella pagina del repository con il messaggio Build triggers configuration error: .... Per risolvere il problema, leggi lo schema del file di attivatori. Quando la configurazione del file dei trigger è corretta, il banner nella pagina del repository mostra Valid build triggers configuration.

Errore di configurazione dei trigger di build

Dopo aver inviato il file triggers.yaml al repository Secure Source Manager, nel banner viene visualizzato il seguente errore:

Build cannot be created.

Questo problema si verifica per i seguenti motivi:

  • Il file di configurazione di Cloud Build ha opzioni o un formato non validi.
  • L'agente di servizio Secure Source Manager non ha il ruolo Creatore token account di servizio nell'account di servizio gestito dall'utente del repository.
  • Il account di servizio gestito dall'utente non dispone del ruolo Utente service account nel account di servizio Cloud Build.
  • Il account di servizio gestito dall'utente non dispone del ruolo Cloud Build Editor nel progetto in cui vengono eseguite le build.
  • La policy dell'organizzazione iam.disableCrossProjectServiceAccountUsage blocca l'utilizzo del account di servizio gestito dall'utente (se il account di servizio si trova in un progetto diverso).

Per risolvere questo problema:

  • Assicurati di seguire lo schema del file degli attivatori corretto.
  • Verifica che siano stati concessi tutti i ruoli richiesti. Consulta Ruoli dei service account richiesti.
  • Se utilizzi un account di servizio gestito dall'utente in un altro progetto, verifica che la policy dell'organizzazione iam.disableCrossProjectServiceAccountUsage sia disabilitata nel progetto che ospita il account di servizio.

La build non riesce durante l'esecuzione

Se una build viene attivata correttamente, ma non riesce durante l'esecuzione, il commit associato ha lo stato di commit Non riuscito.

Per risolvere i problemi relativi a una build non riuscita, nella pagina del repository, accanto allo stato del commit non riuscito, fai clic su Dettagli.

Si apre il log di esecuzione di Cloud Build. Per ulteriori informazioni sulla risoluzione dei problemi relativi alle build in Cloud Build, consulta Risoluzione degli errori relativi alle build.

Push Git rifiutato a causa di dati sensibili rilevati

Quando esegui il push dei commit in un repository con la scansione dei secret abilitata, il push non va a buon fine e viene visualizzato un messaggio di errore simile al seguente:

remote: Push rejected: Sensitive data detected.

Questo problema si verifica quando l'analisi dei secret o un modello di ispezione personalizzato identifica informazioni sensibili nella cronologia dei commit.

Per risolvere il problema:

  • Ripristina il commit problematico utilizzando git reset --soft e rimuovi le informazioni sensibili prima di eseguire nuovamente il commit.
  • Se le informazioni rilevate sono accettabili e disponi delle autorizzazioni appropriate, ignora il controllo utilizzando l'opzione push -o dlpskip=true:

    git push -o dlpskip=true origin BRANCH_NAME
    

La quota giornaliera non viene reimpostata dopo la ricreazione

Se elimini un'istanza Secure Source Manager e la ricrei con lo stesso ID istanza nello stesso giorno, potresti ricevere un errore di quota esaurita o limite raggiunto per l'analisi dei secret.

Questo problema si verifica perché la quota di scansione dei secret è una quota di frequenza giornaliera collegata all'ID istanza. Se elimini e ricrei un'istanza con lo stesso ID nello stesso giorno, l'utilizzo della quota non viene reimpostato.

Per risolvere il problema, puoi eseguire una delle seguenti operazioni:

  • Attendi il giorno successivo affinché l'utilizzo della quota giornaliera venga reimpostato automaticamente su 0.
  • Ricrea l'istanza utilizzando un ID istanza univoco diverso.
  • Salta temporaneamente l'analisi dei secret o richiedi un aumento della quota. Per saperne di più, consulta Aumenta la quota disponibile.

Errore durante la configurazione del account di servizio del repository

Quando provi a creare o aggiornare un repository con un account di servizio gestito dall'utente, viene visualizzato il seguente errore:

Permission denied on resource ...

Questo problema si verifica se non disponi del ruolo Service Account User (roles/iam.serviceAccountUser) nel account di servizio che stai tentando di associare al repository. Secure Source Manager verifica che tu disponga dell'autorizzazione per agire come account di servizio prima di consentirti di associarlo al repository.

Per risolvere il problema, chiedi all'amministratore di concederti il ruolo Utente service account nel account di servizio.