Questo documento spiega come configurare il account di servizio Cloud Build per rappresentare service account per Runtime, Compute Engine o App Engine in modo da poter eseguire il deployment delle immagini nei servizi gestiti.
Panoramica
Quando un'immagine viene implementata in servizi gestiti specifici, viene eseguita utilizzando l'identità del account di servizio per quel servizio gestito. Poiché Cloud Build può eseguire il deployment automatico di nuove istanze o versioni, il service account Cloud Build specificato o il service account Cloud Build predefinito deve essere in grado di rappresentare il account di servizio del tuo servizio gestito. Questo requisito si applica quando il deployment viene eseguito nei seguenti servizi gestiti:
| Servizio gestito | Service account |
|---|---|
| App Engine | Service account App Engine |
| Cloud Run Functions | Service account di runtime |
| Cloud Run | Identità del servizio |
| Compute Engine | Service account Compute Engine |
Configurare la simulazione dell'identità del account di servizio
Per configurare il account di servizio Cloud Build in modo che rappresenti un altroaccount di serviziot:
console
Vai alla pagina Autorizzazioni di settings Cloud Build.
Seleziona il account di servizio Cloud Build.
Attiva il ruolo IAM richiesto per il tuo servizio gestito:
Servizio gestito Ruolo richiesto App Engine Amministratore App Engine ( roles/appengine.appAdmin)Cloud Run Functions Cloud Functions Developer ( roles/cloudfunctions.developer)Cloud Run Amministratore di Cloud Run ( roles/run.admin)Compute Engine Amministratore istanze Compute v1 ( roles/compute.instanceAdmin.v1)Cloud Build mostra il riquadro Assegna ruolo Service Account User.
Scegli un account di servizio da rappresentare. Ad esempio, se prevedi di eseguire il deployment su Compute Engine e hai abilitato il ruolo Amministratore istanze Compute v1, scegli il account di servizio Compute Engine che vuoi che il account di servizio Cloud Build rappresenti.
Fai clic su Concedi autorizzazione.
gcloud CLI
In Google Cloud CLI, inserisci quanto segue:
gcloud iam service-accounts add-iam-policy-binding \
SERVICE_ACCOUNT_TO_IMPERSONATE \
--member="CLOUD_BUILD_SERVICE_ACCOUNT" \
--role="roles/iam.serviceAccountUser"
Dove:
- SERVICE_ACCOUNT_TO_IMPERSONATE è il account di servizio di cui vuoi simulare l'identità.
- CLOUD_BUILD_SERVICE_ACCOUNT è il account di servizio Cloud Build.
Cloud Build assegna al account di servizio Cloud Build il ruolo Utente service account (roles/iam.serviceAccountUser) per il account di servizio che vuoi rappresentare.
Il ruolo Utente service account consente a un'entità di collegare un account di servizio a una risorsa, consentendo al account di servizio Cloud Build di assumere l'identità del account di servizio gestito scelto. Per saperne di più, consulta Ruolo Utente service account e Collegare service account alle risorse nella documentazione IAM.