Questa pagina descrive in dettaglio come richiamare automaticamente le build da Secure Source Manager utilizzando i file di configurazione di Cloud Build e un file YAML dei trigger nel repository Secure Source Manager.
Per impostazione predefinita, Secure Source Manager utilizza un service agent gestito da Google per interagire con Cloud Build e altre risorse. Per isolare le autorizzazioni del team, ti consigliamo di configurare un'identità per repository associando un service account gestito dall'utente al repository. Secure Source Manager utilizza il account di servizio gestito dall'utente associato al repository per attivare le build.
A differenza del service agent predefinito, puoi configurare un account di servizio gestito dall'utente con l'autorizzazione iam.serviceAccounts.actAs sui service account Cloud Build personalizzati. In questo modo puoi eseguire le build utilizzando service account personalizzati, mantenendo le autorizzazioni di build limitate a quel repository.
Prima di iniziare
- Crea un'istanza Secure Source Manager.
- Crea un repository Secure Source Manager.
Configura un service account Cloud Build specificato dall'utente. Per consentire a Cloud Build di leggere dal repository Secure Source Manager, concedi al account di servizio Cloud Build (il service account predefinito o un service account gestito dall'utente) i seguenti ruoli:
- Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor) sull'istanza Secure Source Manager. - Secure Source Manager Repository Reader sul repository.
A seconda del caso d'uso, il account di servizio Cloud Build potrebbe richiedere ruoli aggiuntivi, ad esempio:
- Per archiviare i log di build in Cloud Logging, concedi il ruolo Writer log (
roles/logging.logWriter) al account di servizio Cloud Build. - Per accedere ai secret in Secret Manager, concedi il ruolo Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor) al account di servizio Cloud Build.
Per informazioni sui log di build, consulta Configurare i log di build.
- Secure Source Manager Instance Accessor (
Se le build vengono eseguite nei pool di worker, concedi al account di servizio gestito dall'utente del repository il ruolo Cloud Build WorkerPool User (
roles/cloudbuild.workerPoolUser) nel progetto in cui vengono eseguite le build.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per connettere un repository Secure Source Manager a Cloud Build, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Secure Source Manager Repository Writer (
roles/securesourcemanager.repoWriter) sul repository - Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor) sull'istanza Secure Source Manager
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.
Ruoli del account di servizio obbligatori
Per connettere Secure Source Manager a Cloud Build, devi configurare le autorizzazioni IAM per un'identità per repository.
Configurazione dell'identità per repository
Per utilizzare un'identità per repository, devi configurare le autorizzazioni.
- Utente: l'utente che configura il service account del repository deve avere
il ruolo Utente account di servizio (
roles/iam.serviceAccountUser) sul service account gestito dall'utente. Questa autorizzazione viene verificata durante la creazione o l'aggiornamento del repository. Service agent Secure Source Manager: concedi al service agent Secure Source Manager per il progetto del repository il ruolo Creatore token account di servizio (
roles/iam.serviceAccountTokenCreator) sul service account gestito dall'utente.L'indirizzo email del service agent Secure Source Manager ha il formato
service-REPOSITORY_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, doveREPOSITORY_PROJECT_NUMBERè il numero del progetto che ospita il repository.Service account gestito dall'utente:
- Concedi al service account gestito dall'utente il ruolo Utente account di servizio (
roles/iam.serviceAccountUser) sul service account Cloud Build personalizzato (nel progetto del repository). - Concedi al account di servizio gestito dall'utente il ruolo Editor Cloud Build (
roles/cloudbuild.builds.editor) e il ruolo Consumer utilizzo servizi (roles/serviceusage.serviceUsageConsumer) nel progetto in cui vengono eseguite le build.
- Concedi al service account gestito dall'utente il ruolo Utente account di servizio (
Per informazioni su come concedere i ruoli IAM, consulta Concedere o revocare un singolo ruolo.
Crea un file di configurazione di compilazione
Un file di configurazione di compilazione definisce i campi necessari a Cloud Build per eseguire le attività di compilazione. Puoi scrivere il file di configurazione di compilazione utilizzando la sintassi YAML.
Puoi creare file di configurazione di compilazione nel branch o nei branch da cui vuoi eseguire la compilazione.
Per creare un file di configurazione di compilazione:
- Nell'interfaccia web di Secure Source Manager, seleziona il repository che vuoi connettere a Cloud Build.
- Seleziona il branch da cui vuoi eseguire la compilazione utilizzando Cloud Build.
Crea un file di configurazione di compilazione. Per informazioni su come creare file di configurazione di compilazione, segui le istruzioni riportate in Crea un file di configurazione di compilazione.
Esegui il commit delle modifiche nel branch.
Crea un file dei trigger
Il file di configurazione dei trigger deve essere creato nel branch predefinito del repository.
Per creare un file di configurazione dei trigger:
- Nel repository locale o nell'interfaccia web di Secure Source Manager, passa al branch predefinito.
Crea un file denominato
.cloudbuild/triggers.yaml.Configura il trigger nel file
.cloudbuild/triggers.yaml:triggers: - name: TRIGGER_NAME project: PROJECT_ID configFilePath: CLOUD_BUILD_CONFIG_PATH eventType: EVENT_TYPE ignoredGitRefs: IGNORED_GIT_REFS includedGitRefs: INCLUDED_GIT_REFS serviceAccount: SERVICE_ACCOUNT includedFiles: INCLUDED_FILES ignoredFiles: IGNORED_FILES disabled: DISABLED_BOOL substitutions: _VARIABLE_NAME: VARIABLE_VALUE OVERRIDE_VARIABLE_NAME: OVERRIDE_VARIABLE_VALUESostituisci quanto segue:
TRIGGER_NAMEcon un nome per il trigger. I nomi dei trigger possono contenere solo caratteri alfanumerici e trattini e non possono iniziare o terminare con un trattino. I nomi dei trigger devono avere una lunghezza inferiore a 64 caratteri.PROJECT_IDcon l' Google Cloud ID del progetto in cui hai abilitato Cloud Build. Questo campo è facoltativo. Il valore predefinito è il progetto Secure Source Manager.CLOUD_BUILD_CONFIG_PATHcon il percorso del file di configurazione di Cloud Build che vuoi utilizzare per questo trigger. Questo campo è facoltativo. Il valore predefinito è.cloudbuild/cloudbuild.yamlEVENT_TYPEcon il tipo di evento che vuoi attivare per la build. Le opzioni sono le seguenti:pushper attivare il push ai branch specificatipull_requestper attivare una richiesta di pull ai branch specificati
Questo campo è facoltativo. Il valore predefinito è
push.INCLUDED_GIT_REFScon un'espressione regolare RE2 facoltativa che corrisponde ai riferimenti Git che vuoi attivare per una build. Il valore predefinito è vuoto. Un valore vuoto indica che non ci sono restrizioni.IGNORED_GIT_REFScon un'espressione regolare facoltativa che utilizza il formato dell'espressione regolare RE2 che corrisponde ai riferimenti Git che non vuoi attivare per una build. Il valore predefinito è vuoto. Un valore vuoto indica che non ci sono restrizioni. Il campoignoredGitRefsviene controllato prima del campoincludedGitRefs. Per ulteriori informazioni su questi campi, consulta Schema del file dei trigger.SERVICE_ACCOUNTcon il account di servizio Cloud Build da utilizzare per la build nel formatoprojects/PROJECT_ID/serviceAccounts/ACCOUNT. Sostituisci ACCOUNT con l'indirizzo email o l'ID univoco del account di servizio. Puoi utilizzare il service account Cloud Build predefinito o un service account gestito dall'utente. Il account di servizio Cloud Build legacy non può essere utilizzato a causa delle sue limitazioni.INCLUDED_FILEScon un'espressione regolare facoltativa in formato RE2 che corrisponde ai file che vuoi attivare per una build.Se uno dei file modificati non corrisponde al campo del filtro
ignoredFilese i file modificati corrispondono al campo del filtroincludedFiles, viene attivata una build. Il valore predefinito è vuoto. Un valore vuoto indica che non ci sono restrizioni.IGNORED_FILEScon un'espressione regolare facoltativa in formato RE2 che corrisponde ai file che non vuoi attivare per una build.Se tutti i file modificati in un commit corrispondono a questo campo del filtro, non viene attivata una build. Il valore predefinito è vuoto. Un valore vuoto indica che non ci sono restrizioni.
DISABLED_BOOLcontrueper disabilitare il trigger ofalseper abilitare il trigger. Questo campo è facoltativo. Il valore predefinito èfalse.VARIABLE_NAMEcon il nome di una variabile che vuoi introdurre nel file dei trigger.VARIABLE_VALUEcon il valore della variabile.OVERRIDE_VARIABLE_NAMEcon il nome della variabile di sostituzione predefinita di Secure Source Manager. Per informazioni sulle variabili di sostituzione predefinite disponibili, consulta la sezione sostituzioni di Schema del file dei trigger.OVERRIDE_VARIABLE_VALUEcon il valore con cui vuoi sostituire il valore predefinito della variabile di sostituzione predefinita.
Esegui il commit del file di configurazione dei trigger nel branch predefinito.
Dopo aver eseguito il commit del file dei trigger, Secure Source Manager attiva le build in base alla configurazione nel file dei trigger.
Secure Source Manager legge i file di configurazione e lo SHA del commit o il riferimento Git associato dei seguenti tipi di eventi:
- Per gli eventi
push, Secure Source Manager leggerà lo SHA del commit o il riferimento Git al termine del push. - Per gli eventi
pull_request, Secure Source Manager leggerà lo SHA del commit o il riferimento Git da cui vengono estratte le modifiche della richiesta di pull.
- Per gli eventi
Visualizza lo stato della build
Quando una build viene attivata da un evento push o pull request, lo stato del commit e della build viene visualizzato nell'interfaccia web di Secure Source Manager.
I valori possibili per lo stato della build sono i seguenti:
SUCCESS: la build è stata completata correttamente.
WARNING: si è verificato un problema durante il tentativo di compilazione.
FAILURE: la build non è riuscita durante l'esecuzione.
Puoi impedire l'unione dei commit con build non riuscite in branch importanti se configuri una regola di protezione del branch in modo che richieda un controllo dello stato riuscito dai trigger configurati nel file dei trigger. Per saperne di più sulla protezione dei branch, consulta la Panoramica sulla protezione dei branch.
Per visualizzare lo stato della build per un evento push:
Nell'interfaccia web di Secure Source Manager, vai al repository.
Se l'evento push più recente ha attivato una build, lo stato viene visualizzato accanto allo SHA del commit. Per visualizzare i dettagli sullo stato, fai clic sullo stato.
Per visualizzare lo stato della build per i commit precedenti, seleziona Commit per visualizzare la cronologia dei commit, quindi fai clic sullo stato di cui vuoi visualizzare i dettagli.
Per visualizzare lo stato della build per un evento pull request:
- Nell'interfaccia web di Secure Source Manager, fai clic su Pull request.
Fai clic sulla pull request che vuoi visualizzare.
Se le build sono state attivate dalla pull request, vedrai una sezione intitolata o Tutti i controlli sono riusciti o Alcuni controlli hanno segnalato avvisi.
Risoluzione dei problemi
Per trovare metodi per diagnosticare e risolvere gli errori di Cloud Build durante la connessione a Secure Source Manager, consulta Il file dei trigger non attiva la build.
Passaggi successivi
- Scopri come visualizzare i risultati della build in Cloud Build.
- Scopri come risolvere gli errori di build.