Définir le compte de service de compilation (déploiement source)

Lors du déploiement source d'une fonction, Cloud Run exploite Cloud Build lors de la compilation et du déploiement de votre fonction.

Cette page explique comment configurer un compte de service spécifié par l'utilisateur que Cloud Build doit utiliser lors de l'exécution de compilations de la fonction en votre nom. Ce guide s'adresse aux développeurs de plate-forme qui déploient des fonctions dans Cloud Run et doivent personnaliser le compte de service de compilation utilisé par Cloud Build.

Avant de commencer

  1. Activez l'API Cloud Build :

    gcloud services enable cloudbuild.googleapis.com
    
  2. Créez un compte de service ou utilisez un compte de service existant comme compte de service pour Cloud Build.

Rôles requis

Pour obtenir les autorisations nécessaires pour déployer à partir de la source, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

Pour autoriser le compte de service utilisé pour Cloud Build à effectuer la compilation lors du déploiement d'une fonction, demandez à votre administrateur de vous attribuer les rôles IAM suivants sur votre compte de service :

  • Rédacteur de journaux (roles/logging.logWriter) : pour stocker les journaux de compilation dans Cloud Logging
  • Rédacteur Artifact Registry (roles/artifactregistry.writer) : pour stocker les images de compilation dans Artifact Registry
  • Administrateur des objets Storage (roles/storage.objectAdmin) : pour récupérer la source de la fonction dans le bucket Cloud Storage et stocker les images de compilation dans Artifact Registry

Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre service Cloud Run communique avec les API Google Cloud, telles que les bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les sections Autorisations de déploiement et Gérer les accès.

Spécifier un compte de service Cloud Build

Par défaut, si aucun compte de service Cloud Build n'est spécifié lors du déploiement d'une fonction à partir de la source, Cloud Build utilise le compte de service Cloud Build.

Pour améliorer la stratégie de sécurité de votre fonction en suivant le principe du moindre privilège, nous vous recommandons de spécifier votre propre compte de service afin d'exécuter vos compilations lors du déploiement d'une fonction à partir d'une source.

gcloud

Vous pouvez spécifier un compte de service à utiliser comme compte de service Cloud Build lors du déploiement d'une fonction.

Pour spécifier le compte de service Cloud Build lors du déploiement d'une fonction à partir du code source :

gcloud beta run deploy SERVICE \
  --source . \
  --function FUNCTION_ENTRY_POINT \
  --build-service-account BUILD_SERVICE_ACCOUNT

Remplacez :

  • SERVICE par le nom de votre fonction Cloud Run ;
  • FUNCTION_ENTRY_POINT par le point d'entrée de votre fonction dans votre code source. Omettez l'option --function pour spécifier un service déployé à partir de la source ;
  • BUILD_SERVICE_ACCOUNT par un compte de service spécifié par l'utilisateur.