Configurer des comptes de service spécifiés par l'utilisateur

Cette page explique comment configurer des comptes de service spécifiés par l'utilisateur pour les compilations.

Par défaut, Cloud Build utilise un compte de service spécial pour exécuter des compilations en votre nom. Ce compte de service est appelé compte de service Cloud Build. Il est créé automatiquement lorsque vous activez l'API Cloud Build dans un projet Google Cloud. Ce compte de service dispose d'un certain nombre d'autorisations par défaut, telles que la possibilité de mettre à jour des compilations ou d'écrire des journaux.

Au lieu d'utiliser le compte de service Cloud Build par défaut, vous pouvez spécifier votre propre compte de service pour exécuter des compilations en votre nom. Vous pouvez spécifier un nombre illimité de comptes de service par projet. La maintenance de plusieurs comptes de service vous permet d'accorder différentes autorisations à ces comptes de service en fonction des tâches qu'ils effectuent. Par exemple, vous pouvez utiliser un compte de service pour créer et transférer des images dans Container Registry, et un autre compte de service pour la création et le transfert d'images dans Artifact Registry.

Limites

  • Les comptes de service spécifiés par l'utilisateur ne fonctionnent qu'avec les compilations manuelles et ne fonctionnent pas avec les déclencheurs de compilation.
  • Vous devez créer le compte de service spécifié par l'utilisateur dans le projet Cloud dans lequel vous exécutez les compilations.

Avant de commencer

  • Activer les API Cloud Build and IAM.

    Activer les API

  • Pour utiliser les exemples de ligne de commande de ce guide, installez et configurez le SDK Cloud.

  • Assurez-vous d'avoir créé le compte de service que vous souhaitez utiliser.

Configurer des journaux de compilation

Pour spécifier votre propre compte de service pour les compilations, vous devez stocker vos journaux de compilation dans Cloud Logging ou dans votre propre bucket Cloud Storage:

Autorisations IAM requises

Pour savoir comment accorder des rôles IAM à un compte de service, consultez la page Configurer l'accès pour les membres d'un projet.

Exécuter des compilations

  1. Dans le répertoire racine de votre projet, créez un fichier de configuration de compilation Cloud Build nommé cloudbuild.yaml ou cloudbuild.json.

  2. Dans le fichier de configuration de compilation :

    • Ajoutez un champ serviceAccount spécifiant l'adresse e-mail de votre compte de service.
    • Si vous stockez les journaux de compilation dans votre bucket Cloud Storage, ajoutez un champ logsBucket pointant vers votre bucket Cloud Storage.

    YAML

    steps:
    - name: 'bash'
      args: ['echo', 'Hello world!']
    logsBucket: 'LOGS_BUCKET_LOCATION'
    serviceAccount: 'projects/PROJECT_NAME/serviceAccounts/SERVICE_ACCOUNT'
    

    JSON

    {
      "steps": [
      {
        "name": "bash",
        "args": [
          "echo",
          "Hello world!"
        ]
      }
      ],
      "logsBucket": "LOGS_BUCKET_LOCATION",
      "serviceAccount": "projects/PROJECT_NAME/serviceAccounts/SERVICE_ACCOUNT"
    }
    

    Remplacez les valeurs d'espace réservé dans votre fichier de configuration de compilation comme suit:

    • LOGS_BUCKET_LOCATION: bucket Cloud Storage pour stocker les journaux de compilation. Exemple :gs://mylogsbucket
    • PROJECT_NAME: nom du projet Cloud dans lequel vous exécutez la compilation.
    • SERVICE_ACCOUNT: adresse e-mail ou identifiant unique du compte de service que vous souhaitez spécifier pour les compilations.
  3. Lancez la compilation à l'aide du fichier de configuration de compilation :

     gcloud builds submit --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

Remplacez les valeurs d'espace réservé dans les commandes ci-dessus par les éléments suivants :

  • CONFIG_FILE_PATH: chemin d'accès au fichier de configuration de compilation.
  • SOURCE_DIRECTORY: chemin d'accès ou URL au code source.

Si vous ne spécifiez pas les éléments CONFIG_FILE_PATH et SOURCE_DIRECTORY dans la commande gcloud builds submit, Cloud Build part du principe que le fichier de configuration de compilation et le code source se trouvent dans le répertoire de travail actuel.

Étape suivante