Se connecter à Cloud Build

Cette page explique comment appeler des compilations automatiquement à partir de Secure Source Manager à l'aide de fichiers de configuration Cloud Build et d'un fichier YAML de déclencheurs dans votre dépôt Secure Source Manager.

Par défaut, Secure Source Manager utilise un agent de service géré par Google pour interagir avec Cloud Build et d'autres ressources. Pour isoler les autorisations de l'équipe, nous vous recommandons de configurer une identité par dépôt en associant un compte de service géré par l'utilisateur à votre dépôt. Secure Source Manager utilise le compte de service géré par l'utilisateur associé au dépôt pour déclencher les compilations.

Contrairement à l'agent de service par défaut, vous pouvez configurer un compte de service géré par l'utilisateur avec l'autorisation iam.serviceAccounts.actAs sur les comptes de service Cloud Build personnalisés. Cela vous permet d'exécuter des compilations à l'aide de comptes de service personnalisés tout en limitant les autorisations de compilation à ce dépôt.

Avant de commencer

  1. Créez une instance Secure Source Manager.
  2. Créez un dépôt Secure Source Manager.
  3. Configurez un compte de service Cloud Build spécifié par l'utilisateur. Pour permettre à Cloud Build de lire les données de votre dépôt Secure Source Manager, accordez les rôles suivants au compte de service Cloud Build (compte de service par défaut ou compte de service géré par l'utilisateur) :

    • Accesseur d'instances Secure Source Manager (roles/securesourcemanager.instanceAccessor) sur l'instance Secure Source Manager.
    • Le rôle Lecteur de dépôts Secure Source Manager sur le dépôt.

    En fonction de votre cas d'utilisation, le compte de service Cloud Build peut avoir besoin de rôles supplémentaires, par exemple :

    • Pour stocker des journaux de compilation dans Cloud Logging, attribuez le rôle Rédacteur de journaux (roles/logging.logWriter) au compte de service Cloud Build.
    • Pour accéder aux secrets dans Secret Manager, attribuez le rôle Accesseur de secrets Secret Manager (roles/secretmanager.secretAccessor) au compte de service Cloud Build.

    Pour en savoir plus sur les journaux de compilation, consultez Configurer les journaux de compilation.

  4. Si vos compilations s'exécutent dans des pools de nœuds de calcul, attribuez le rôle Utilisateur de pool de nœuds de calcul Cloud Build (roles/cloudbuild.workerPoolUser) au compte de service géré par l'utilisateur du dépôt dans le projet où les compilations s'exécutent.

Rôles requis

Pour obtenir les autorisations nécessaires pour connecter un dépôt Secure Source Manager à Cloud Build, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour savoir comment accorder des rôles Secure Source Manager, consultez Contrôle des accès avec IAM et Accorder aux utilisateurs l'accès aux instances.

Rôles de compte de service requis

Pour connecter Secure Source Manager à Cloud Build, vous devez configurer les autorisations IAM pour une identité par dépôt.

Configurer l'identité par dépôt

Pour utiliser une identité par dépôt, vous devez configurer les autorisations.

  1. Utilisateur : l'utilisateur qui configure le compte de service du dépôt doit disposer du rôle Utilisateur du compte de service (roles/iam.serviceAccountUser) sur le compte de service géré par l'utilisateur. Cette autorisation est vérifiée lors de la création ou de la mise à jour du dépôt.
  2. Agent de service Secure Source Manager : accordez le rôle Créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator) à l'agent de service Secure Source Manager pour le projet de dépôt sur le compte de service géré par l'utilisateur.

    L'adresse e-mail de l'agent de service Secure Source Manager est au format service-REPOSITORY_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, où REPOSITORY_PROJECT_NUMBER est le numéro du projet hébergeant le dépôt.

  3. Compte de service géré par l'utilisateur :

    • Attribuez le rôle Utilisateur du compte de service (roles/iam.serviceAccountUser) au compte de service géré par l'utilisateur sur le compte de service Cloud Build personnalisé (dans le projet de dépôt).
    • Attribuez au compte de service géré par l'utilisateur le rôle Éditeur Cloud Build (roles/cloudbuild.builds.editor) et le rôle Consommateur Service Usage (roles/serviceusage.serviceUsageConsumer) dans le projet où les compilations s'exécutent.

Pour savoir comment attribuer des rôles IAM, consultez Attribuer ou révoquer un rôle unique.

Créer un fichier de configuration de compilation

Un fichier de configuration de compilation définit les champs nécessaires pour que Cloud Build puisse effectuer vos tâches de compilation. Vous pouvez écrire le fichier de configuration de compilation en utilisant la syntaxe YAML.

Vous pouvez créer des fichiers de configuration de compilation dans la ou les branches à partir desquelles vous souhaitez effectuer la compilation.

Pour créer un fichier de configuration de compilation :

  1. Dans l'interface Web Secure Source Manager, sélectionnez le dépôt que vous souhaitez connecter à Cloud Build.
  2. Sélectionnez la branche à partir de laquelle vous souhaitez compiler à l'aide de Cloud Build.
  3. Créez un fichier de configuration de compilation. Pour savoir comment créer des fichiers de configuration de compilation, suivez les instructions de la section Créer un fichier de configuration de compilation.

  4. Validez vos modifications dans la branche.

Créer un fichier de déclencheurs

Le fichier de configuration des déclencheurs doit être créé dans la branche par défaut de votre dépôt.

Pour créer un fichier de configuration des déclencheurs :

  1. Dans votre dépôt local ou dans l'interface Web Secure Source Manager, passez à la branche par défaut.
  2. Créez un fichier nommé .cloudbuild/triggers.yaml.

  3. Configurez votre déclencheur dans le fichier .cloudbuild/triggers.yaml :

    triggers:
    - name: TRIGGER_NAME
      project: PROJECT_ID
      configFilePath: CLOUD_BUILD_CONFIG_PATH
      eventType: EVENT_TYPE
      ignoredGitRefs: IGNORED_GIT_REFS
      includedGitRefs: INCLUDED_GIT_REFS
      serviceAccount: SERVICE_ACCOUNT
      includedFiles: INCLUDED_FILES
      ignoredFiles: IGNORED_FILES
      disabled: DISABLED_BOOL
      substitutions:
        _VARIABLE_NAME: VARIABLE_VALUE
        OVERRIDE_VARIABLE_NAME: OVERRIDE_VARIABLE_VALUE
    

    Remplacez les éléments suivants :

    • TRIGGER_NAME par le nom de votre déclencheur. Les noms de déclencheurs ne peuvent contenir que des caractères alphanumériques et des tirets, et ne peuvent ni commencer ni se terminer par un tiret. Les noms de déclencheurs doivent comporter moins de 64 caractères.
    • Remplacez PROJECT_ID par l'ID du projet Google Cloud dans lequel vous avez activé Cloud Build. Ce champ est facultatif. La valeur par défaut est le projet Secure Source Manager.
    • CLOUD_BUILD_CONFIG_PATH avec le chemin d'accès au fichier de configuration Cloud Build que vous souhaitez utiliser pour ce déclencheur. Ce champ est facultatif. La valeur par défaut est .cloudbuild/cloudbuild.yaml.
    • EVENT_TYPE par le type d'événement que vous souhaitez déclencher pour la compilation. Voici les options disponibles :

      • push pour déclencher le push vers la ou les branches spécifiées
      • pull_request pour déclencher une demande d'extraction'extraction vers la ou les branches spécifiées

      Ce champ est facultatif. La valeur par défaut est push.

    • INCLUDED_GIT_REFS avec un format d'expression régulière RE2 facultatif correspondant aux références Git pour lesquelles vous souhaitez déclencher une compilation. La valeur par défaut est vide. Une valeur vide indique qu'il n'y a aucune restriction.

    • IGNORED_GIT_REFS avec une expression régulière facultative utilisant le format d'expression régulière RE2 correspondant aux références Git pour lesquelles vous ne souhaitez pas déclencher de compilation. La valeur par défaut est vide. Une valeur vide indique qu'il n'y a aucune restriction. Le champ ignoredGitRefs est vérifié avant le champ includedGitRefs. Pour en savoir plus sur ces champs, consultez Schéma du fichier de déclencheurs.

    • SERVICE_ACCOUNT avec le compte de service Cloud Build à utiliser pour la compilation au format projects/PROJECT_ID/serviceAccounts/ACCOUNT. Remplacez ACCOUNT par l'adresse e-mail ou l'ID unique du compte de service. Vous pouvez utiliser le compte de service Cloud Build par défaut ou un compte de service géré par l'utilisateur. L'ancien compte de service Cloud Build ne peut pas être utilisé en raison de ses limites.

    • INCLUDED_FILES avec une expression régulière au format RE2 facultative correspondant aux fichiers pour lesquels vous souhaitez déclencher une compilation.

      Si l'un des fichiers modifiés ne correspond pas au champ de filtre ignoredFiles, mais correspond au champ de filtre includedFiles, une compilation est déclenchée. La valeur par défaut est vide. Une valeur vide indique qu'il n'y a aucune restriction.

    • IGNORED_FILES avec une expression régulière au format RE2 facultative correspondant aux fichiers pour lesquels vous ne souhaitez pas déclencher de compilation.

      Si tous les fichiers modifiés d'un commit correspondent à ce champ de filtre, aucune compilation n'est déclenchée. La valeur par défaut est vide. Une valeur vide indique qu'il n'y a aucune restriction.

    • DISABLED_BOOL avec true pour désactiver le déclencheur ou false pour l'activer. Ce champ est facultatif. La valeur par défaut est false.

    • VARIABLE_NAME par le nom d'une variable que vous souhaitez introduire dans votre fichier de déclencheurs.

    • VARIABLE_VALUE par la valeur de la variable.

    • OVERRIDE_VARIABLE_NAME par le nom de variable de substitution par défaut de Secure Source Manager. Pour en savoir plus sur les variables de substitution par défaut disponibles, consultez la section sur les substitutions dans Schéma du fichier de déclencheurs.

    • OVERRIDE_VARIABLE_VALUE par la valeur que vous souhaitez utiliser pour remplacer la valeur par défaut de la variable de substitution par défaut.

  4. Validez le fichier de configuration du déclencheur dans votre branche par défaut.

    Une fois le fichier de déclencheurs validé, Secure Source Manager déclenche des compilations en fonction de la configuration de votre fichier de déclencheurs.

    Secure Source Manager lit les fichiers de configuration et le SHA de commit ou la référence Git associés des types d'événements suivants :

    • Pour les événements push, Secure Source Manager lit le SHA du commit ou la référence Git lorsque le push est terminé.
    • Pour les événements pull_request, Secure Source Manager lit le SHA de commit ou la référence Git lorsque les modifications de la demande d'extraction sont extraites.

Afficher l'état de la compilation

Lorsqu'une compilation est déclenchée par un événement de requête push ou pull, l'état du commit et de la compilation s'affiche dans l'interface Web Secure Source Manager.

Voici les valeurs possibles pour l'état de compilation :

  • successSUCCESS : la compilation a réussi.
  • avertissementAVERTISSEMENT : un problème est survenu lors de la tentative de compilation.
  • échecÉCHEC : la compilation a échoué lors de l'exécution.

Vous pouvez empêcher les commits avec des compilations infructueuses de fusionner dans des branches importantes si vous configurez une règle de protection des branches pour exiger une vérification de l'état réussie à partir des déclencheurs configurés dans votre fichier de déclencheurs. Pour en savoir plus sur la protection des branches, consultez la présentation de la protection des branches.

Pour afficher l'état de la compilation pour un événement push :

  1. Dans l'interface Web Secure Source Manager, accédez à votre dépôt.

    Si l'événement push le plus récent a déclenché une compilation, l'état s'affiche à côté du SHA du commit. Pour afficher les détails de cet état, cliquez dessus.

  2. Pour afficher l'état de compilation des commits précédents, sélectionnez Commits pour afficher l'historique des commits, puis cliquez sur l'état dont vous souhaitez afficher les détails.

Pour afficher l'état de la compilation pour un événement de demande d'extraction d'extraction :

  1. Dans l'interface Web Secure Source Manager, cliquez sur Demandes d'extraction.
  2. Cliquez sur la demande d'extraction que vous souhaitez afficher.

    Si des compilations ont été déclenchées par la demande d'extraction;extraction, une section intitulée Toutes les vérifications ont réussi ou Certaines vérifications ont signalé des avertissements s'affiche.

Résoudre les problèmes

Pour connaître les méthodes de diagnostic et de résolution des erreurs Cloud Build lors de la connexion à Secure Source Manager, consultez Le fichier de déclencheurs ne déclenche pas la compilation.

Étapes suivantes