Cloud Build ti consente di definire una policy dell'organizzazione
(constraints/cloudbuild.allowedIntegrations
) per controllare
quali servizi esterni possono richiamare i trigger di build. Ad esempio, se il trigger rileva le modifiche a un repository GitHub e GitHub è negato nel criterio dell'organizzazione, il trigger non verrà eseguito. Puoi specificare
un numero qualsiasi di valori consentiti o negati per la tua organizzazione o il tuo progetto.
Questa pagina spiega come configurare la policy dell'organizzazione (constraints/cloudbuild.allowedIntegrations
)
per le integrazioni utilizzando la console Google Cloud
e lo strumento a riga di comando gcloud
.
Prima di iniziare
-
Enable the Cloud Build and Organization Policy APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. Per utilizzare gli esempi di riga di comando in questa guida, installa e configura Google Cloud SDK.
Per impostare, modificare o eliminare una policy dell'organizzazione, devi disporre del ruolo Amministratore dei criteri dell'organizzazione (
roles/orgpolicy.policyAdmin
). Per scoprire come aggiungere il ruolo al tuo account, consulta Aggiungere un amministratore delle policy dell'organizzazione.
Configurazione del criterio dell'organizzazione per le integrazioni consentite
Questa sezione spiega come configurare il criterio dell'organizzazione
(constraints/cloudbuild.allowedIntegrations
) per definire le build per
le integrazioni consentite.
Console
Apri la pagina Policy dell'organizzazione nella console Google Cloud .
Fai clic sulla riga contenente il criterio Integrazioni consentite (Cloud Build).
Viene visualizzata la pagina Dettagli norme.
Per modificare la policy, fai clic su Modifica.
Viene visualizzata la pagina Modifica policy.
Nella sezione Applicabile a, seleziona Personalizza per impostare la definizione per le norme.
Nella sezione Applicazione criterio, seleziona Sostituisci per definire le tue regole per il criterio. In caso contrario, seleziona Unisci con il padre per assicurarti che le regole della risorsa padre vengano applicate alle tue impostazioni. Per saperne di più, consulta Informazioni sulla valutazione della gerarchia.
Nella sezione Regole, fai clic su Aggiungi regola per aggiungere una nuova regola per il tuo criterio.
In Valori policy, seleziona Consenti tutto per consentire le build di tutti i servizi, Nega tutto per negare le build di tutti i servizi o Personalizzato per consentire o negare le build di servizi specifici.
Se selezioni Personalizzato come valore, completa i seguenti passaggi:
Nella sezione Tipo di criterio, seleziona Consenti o Nega.
Nella sezione Valori personalizzati, inserisci l'URL host dell'istanza o del repository da cui vuoi consentire o negare le build. Ad esempio, per consentire o negare le build da GitHub, inserisci il tuo URL come
github.com
owww.github.com
.Puoi anche inserire più URL separati da uno spazio. Ad esempio,
github.com ghe.staging-test.com
.In base all'evento, l'URL host che specifichi è uno dei seguenti:
- Evento RepoSync: l'host è
source.developers.google.com
. - Evento dell'app GitHub: l'host viene derivato dal campo
repository.html_url
nel payload JSON, che è sempregithub.com
. - Evento GitHub Enterprise: l'host viene derivato dal campo
repository.html_url
nel payload JSON. Ad esempio,ghe.staging-test.com
. - Evento Pub/Sub: l'host viene derivato dall'origine specificata nel trigger. Se non è specificata alcuna origine nel trigger, non viene eseguito alcun controllo dei criteri dell'organizzazione.
- Evento webhook: l'host viene derivato dall'origine specificata nel trigger. Se nel trigger non è specificata alcuna origine, viene eseguito il controllo dei criteri dell'organizzazione.
- Evento RepoSync: l'host è
Per salvare la regola, fai clic su Fine.
Per aggiungere un'altra regola, fai clic su Aggiungi regola. In caso contrario, per salvare il criterio, fai clic su Salva.
gcloud
Apri una finestra del terminale.
Se vuoi consentire o negare le build da tutti i servizi, crea un file YAML con i seguenti contenuti:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - ALLOW_OR_DENY: true
Dove:
PROJECT_NUMBER
è il numero di progetto.INHERIT
ètrue
se vuoi che le regole dei criteri vengano ereditate dalla risorsa padre. Altrimenti,false
.ALLOW_OR_DENY
èallowAll
se vuoi consentire le build da tutti gli URL host. In caso contrario,denyAll
.HOST_URL
è l'URL dell'host. Ad esempio,github.com
. Puoi anche specificare altri URL nelle righe seguenti.
Se vuoi consentire o negare le build da servizi selezionati, crea un file YAML con i seguenti contenuti:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - values: ALLOW_OR_DENY: HOST_URL ...
Dove:
PROJECT_NUMBER
è il numero di progetto.INHERIT
ètrue
se vuoi che le regole dei criteri vengano ereditate dalla risorsa padre. Altrimenti,false
.ALLOW_OR_DENY
èallowedValues
se vuoi specificare gli URL host da cui consentire le build. Altrimenti,deniedValues
.HOST_URL
è l'URL dell'host. Ad esempio,github.com
. Puoi anche specificare altri URL nelle righe seguenti.
Imposta la policy dell'organizzazione eseguendo il comando seguente, dove FILE_NAME è il nome del file YAML:
gcloud org-policies set-policy FILE_NAME
Per verificare che la policy sia stata impostata, esegui questo comando, dove PROJECT_ID è l'ID progetto:
gcloud org-policies describe cloudbuild.allowedIntegrations --effective --project PROJECT_ID
Test del criterio dell'organizzazione per le integrazioni consentite
Questa sezione spiega come testare la policy dell'organizzazione
(constraints/cloudbuild.allowedIntegrations
) utilizzando i trigger di build.
Se non l'hai ancora fatto, crea un trigger di build.
Esegui il push di una modifica alla fonte.
Se le norme sono configurate per consentire le build dalla tua origine, potrai visualizzare le esecuzioni delle build dal trigger nella pagina Cronologia build. In caso contrario, la build non verrà eseguita. Per visualizzare la cronologia delle build limitate dalla definizione delle norme, consulta la pagina Explorer log per il motivo del payload JSON e il motivo del rifiuto.
Passaggi successivi
- Scopri come creare e gestire i trigger di build.
- Scopri come configurare le build all'approvazione.
- Scopri di più sulle autorizzazioni necessarie per visualizzare i log di build.
- Scopri di più sugli audit log creati da Cloud Build.