Modifica dell'account di servizio Cloud Build

Cloud Build seleziona automaticamente il servizio Cloud Build di eseguire build per tuo conto, a meno che non ignori questo comportamento. Questo account di servizio potrebbe disporre di autorizzazioni inutilmente generiche per il tuo caso d'uso, come l'accesso a Cloud Source Repositories e a qualsiasi del tuo progetto

Il comportamento predefinito di Cloud Build per usare gli account di servizio nei nuovi progetti sono stati modificati nell'arco di diverse settimane a maggio e giugno 2024. Questi queste modifiche migliorano la condizione di sicurezza predefinita dei nostri clienti in avanti. Puoi disattivare queste modifiche configurando l'organizzazione un vincolo di criterio.

Prima di questa modifica, Cloud Build utilizzava una Account di servizio specifico di Cloud Build come predefinito.

Dopo questa modifica, Cloud Build ora utilizza Account di servizio predefinito Compute Engine come predefinita.

L'impatto sui tuoi progetti dipende dalla tua adesione a un organizzazione:

  • Progetti senza un'organizzazione. Se abiliti l'API Cloud Build ai tuoi progetti dopo la modifica, utilizzerai il servizio Compute Engine predefinito per le build inviate utilizzando l'API Cloud Build o Google Cloud CLI. Per questi progetti non sarà disponibile l'opzione per utilizzare l'account di servizio Cloud Build legacy, ma puoi utilizzare un specificato dall'utente.

  • Progetti con un'organizzazione. Se abiliti l'API Cloud Build sul tuo dopo la modifica, utilizzerai il servizio Compute Engine predefinito per le build inviate utilizzando l'API Cloud Build o Google Cloud CLI. Puoi utilizzare un modello specificato dall'utente l'account di servizio oppure disattiva la modifica attivando l'account di servizio Account di servizio Cloud Build nella tua organizzazione.

  • Progetti esistenti senza un'organizzazione. Se hai attivato le sull'API Cloud Build sui tuoi progetti prima della modifica, continuerai con il comportamento precedente utilizzando il servizio Cloud Build legacy predefinito per tutte le build. Puoi continuare a utilizzare account di servizio specificato dall'utente, selezionando un account di servizio Compute Engine o crearne uno tuo.

  • Progetti esistenti con un'organizzazione. Se hai attivato le sull'API Cloud Build sui tuoi progetti prima della modifica, continuerai con il comportamento precedente utilizzando il servizio Cloud Build legacy predefinito. Puoi anche continuare a utilizzare un servizio specificato dall'utente Google Cloud.

  • Attivazione. Dovrai specificare un account di servizio quando crei aggiornare un trigger, a meno che l'account di servizio predefinito per il tuo è l'account di servizio Cloud Build legacy.

  • API. L'abilitazione dell'API Cloud Build abilita anche l'API Identity and Access Management.

  • Nome dell'account di servizio Cloud Build: Cloud Build verrà denominato Cloud Build legacy dell'account di servizio.

Cosa occorre fare?

Se fai parte di un'organizzazione, quest'ultima può configurare il comportamento di tutti i progetti configurando un criterio dell'organizzazione con i vincoli scelti.

La tua organizzazione può disattivare queste modifiche impostando quanto segue vincoli booleani dei criteri dell'organizzazione:

  • Non applicata: constraints/cloudbuild.disableCreateDefaultServiceAccount
  • Non applicato: constraints/cloudbuild.useComputeServiceAccount
  • Data applicazione: constraints/cloudbuild.useBuildServiceAccount

Se non puoi o non vuoi modificare il criterio dell'organizzazione, attivi API Cloud Build dopo la modifica, verificare che il servizio predefinito Compute Engine Google Cloud o quello di servizio creato dall'utente. autorizzazioni per la build. In particolare, l'utente che invia la build deve Avere l'autorizzazione iam.serviceAccounts.actAs per il servizio .

Nuovi vincoli dei criteri dell'organizzazione

Cloud Build ha introdotto un nuovo criterio dell'organizzazione booleano vincoli da configurare:

  • La possibilità di utilizzare l'account di servizio Cloud Build legacy.
  • L'account di servizio predefinito per tutti i progetti in un'organizzazione.

Per modificare i criteri dell'organizzazione, puoi utilizzare la console Google Cloud o Google Cloud CLI:

Per ulteriori informazioni sui criteri dell'organizzazione, consulta Introduzione al Servizio Criteri dell'organizzazione.

Configura la disponibilità dell'account di servizio Cloud Build legacy

Per configurare la disponibilità del servizio Cloud Build legacy. quando abiliti l'API Cloud Build, Cloud Build Introduci il seguente vincolo di criterio booleano:

  • Non applicato: constraints/cloudbuild.disableCreateDefaultServiceAccount. Consente di utilizzare il servizio Cloud Build legacy nei nuovi progetti.

  • Data applicazione: constraints/cloudbuild.disableCreateDefaultServiceAccount. Disabilita l'utilizzo dell'account di servizio Cloud Build legacy nei nuovi in modo programmatico a gestire i progetti. Questo è il valore predefinito del vincolo.

Questo vincolo riguarda solo i progetti che abilitano l'API Cloud Build dopo il è stata implementata una modifica. Se decidi di non applicare il vincolo del criterio, la modifica è definitiva per tutti i progetti che l'API quando la configurazione è attiva. Non puoi disattivare la disponibilità dell'account di servizio Cloud Build legacy su un progetto in cui l'account di servizio era precedentemente disponibile. Tuttavia, anche se l'account di servizio è disponibile, puoi impedire agli utenti della tua organizzazione di utilizzarla, descritti nella sezione che segue.

Come per tutti i criteri e i vincoli dell'organizzazione, puoi impostare questi criteri a livello di organizzazione o di progetto.

Configurare l'account di servizio predefinito per un'organizzazione

Per configurare quale account di servizio predefinito viene utilizzato in un'organizzazione: Cloud Build sta introducendo due nuovi criteri booleani vincoli:

  • constraints/cloudbuild.useBuildServiceAccount: configura l'utilizzo del Account di servizio legacy di Cloud Build.
  • constraints/cloudbuild.useComputeServiceAccount: configura l'utilizzo del Account di servizio predefinito Compute Engine.

Puoi configurare questi criteri indipendentemente l'uno dall'altro, ma utile quando le regole di applicazione vengono combinate nei seguenti scenari:

  • Utilizza l'account di servizio predefinito di Compute Engine per entrambi le build inviate manualmente e quelle attivate. Imposta quanto segue vincoli nel criterio dell'organizzazione:

    • Non applicato: constraints/cloudbuild.useBuildServiceAccount
    • Data applicazione: constraints/cloudbuild.useComputeServiceAccount
  • Utilizza un account di servizio specificato dall'utente per entrambi inviati manualmente e le build attivate. Questa è in genere l'opzione più sicura. Imposta i seguenti vincoli nei criteri dell'organizzazione:

    • Non applicato: constraints/cloudbuild.useBuildServiceAccount
    • Non applicato: constraints/cloudbuild.useComputeServiceAccount
  • Continua a utilizzare l'account di servizio legacy di Cloud Build. Se dei compromessi in termini di sicurezza, imposta i seguenti vincoli criterio dell'organizzazione:

    • Non applicata: constraints/cloudbuild.disableCreateDefaultServiceAccount
    • Non applicato: constraints/cloudbuild.useComputeServiceAccount
    • Data applicazione: constraints/cloudbuild.useBuildServiceAccount
  • Continua a utilizzare l'account di servizio legacy di Cloud Build per ai progetti che hanno abilitato l'API Cloud Build prima della modifica, e inizia a utilizzare Compute Engine predefinito per i nuovi progetti. Assicurati di per capire i compromessi di sicurezza che ne derivano, imposta i seguenti vincoli nel criterio dell'organizzazione:

    • Data applicazione: constraints/cloudbuild.disableCreateDefaultServiceAccount
    • Data applicazione: constraints/cloudbuild.useComputeServiceAccount
    • Data applicazione: constraints/cloudbuild.useBuildServiceAccount

recupera l'account di servizio predefinito attuale per un progetto

per determinare quale account di servizio viene utilizzato da Cloud Build come predefinito un progetto, puoi utilizzare Google Cloud CLI o l'API Cloud Build:

Interfaccia a riga di comando gcloud

Esegui questo comando per ottenere l'account di servizio predefinito per l'account di servizio progetto:

gcloud builds get-default-service-account

API Cloud Build

Utilizza cURL per chiamare l'API Cloud Build:

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/defaultServiceAccount

Sostituisci i valori segnaposto con i seguenti: