Durante il deployment dell'origine di una funzione, Cloud Run sfrutta Cloud Build per creare e implementare la funzione.
Questa pagina mostra come impostare un account di servizio specificato dall'utente da utilizzare da parte di Cloud Build per eseguire le build della funzione per tuo conto. Questa guida è pertinente per gli sviluppatori di piattaforme che eseguono il deployment di funzioni in Cloud Run e devono personalizzare l'account di servizio di compilazione utilizzato da Cloud Build.
Prima di iniziare
Abilita l'API Cloud Build:
gcloud services enable cloudbuild.googleapis.com
Crea un account di servizio o disponi di un account di servizio esistente da utilizzare come account di servizio per Cloud Build.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per eseguire il deployment dal codice sorgente, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Cloud Run Source Developer (
roles/run.sourceDeveloper
) -
Utente account di servizio (
roles/iam.serviceAccountUser
)
Per consentire all'account di servizio utilizzato per Cloud Build di eseguire la compilazione durante il deployment di una funzione, chiedi all'amministratore di concederti i seguenti ruoli IAM nel tuo account di servizio:
- Logs Writer
(
roles/logging.logWriter
): per archiviare i log di compilazione in Cloud Logging. - Artifact Registry Writer
(
roles/artifactregistry.writer
): per archiviare le immagini di build in Artifact Registry. - Storage Object Admin
(
roles/storage.objectAdmin
): per recuperare il codice sorgente della funzione dal bucket Cloud Storage e per archiviare le immagini di build in Artifact Registry.
Per un elenco dei ruoli e delle autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il servizio Cloud Run interagisce con le API Google Cloud, come le librerie client di Cloud, consulta la guida alla configurazione dell'identità del servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta le autorizzazioni di deployment e gestisci l'accesso.
Specifica un account di servizio Cloud Build
Per impostazione predefinita, se non viene specificato un account di servizio Cloud Build durante il deployment di una funzione dal codice sorgente, Cloud Build utilizza l'account di servizio Cloud Build.
Come best practice per seguire il principio del privilegio minimo per migliorare la strategia di sicurezza della funzione, ti consigliamo di specificare il tuo account di servizio per eseguire le build quando esegui il deployment di una funzione dal codice sorgente.
gcloud
Puoi specificare un account di servizio da utilizzare come account di servizio Cloud Build durante il deployment di una funzione.
Per specificare l'account di servizio Cloud Build durante il deployment di una funzione dal codice sorgente:
gcloud beta run deploy SERVICE \ --source . \ --function FUNCTION_ENTRY_POINT \ --build-service-account BUILD_SERVICE_ACCOUNT
Sostituisci:
- SERVICE con il nome della funzione Cloud Run.
- FUNCTION_ENTRY_POINT con il punto di ingresso della funzione
nel codice sorgente. Ometti il flag
--function
per specificare un servizio di cui viene eseguito il deployment dall'origine. - BUILD_SERVICE_ACCOUNT con un account di servizio specificato dall'utente.