Cloud Build est un service qui exécute vos compilations sur l'infrastructure Google Cloud.
Cloud Build peut importer un code source depuis plusieurs dépôts ou espaces de stockage dans le cloud, exécuter une compilation selon vos spécifications et produire des artefacts, tels que des conteneurs Docker ou des archives Java.
Vous pouvez également utiliser Cloud Build pour protéger votre chaîne d'approvisionnement logicielle. Les fonctionnalités de Cloud Build répondent aux exigences du niveau 3 du SLSA (Supply chain Levels for Software Artifacts). Pour obtenir des conseils sur la protection de vos processus de compilation, consultez Protéger les builds.
Configuration de la compilation et étapes de compilation
Vous pouvez créer une configuration de compilation pour fournir des instructions à Cloud Build sur les tâches à effectuer. Vous pouvez configurer des compilations pour récupérer des dépendances, exécuter des tests unitaires, des analyses statiques et des tests d'intégration, et créer des artefacts à l'aide d'outils de compilation tels que docker, gradle, maven, bazel et gulp.
Cloud Build exécute votre compilation sous la forme d'étapes de compilation, où chaque étape est exécutée dans un conteneur Docker. L'exécution des étapes de compilation est analogue à l'exécution de commandes dans un script.
Vous pouvez utiliser les étapes de compilation fournies par Cloud Build et la communauté Cloud Build ou créer des étapes de compilation personnalisées :
Étapes de compilation fournies par Cloud Build : Cloud Build a publié un ensemble d'étapes de compilation Open Source compatibles avec des tâches et des langages courants.
Étapes de compilation issues de la communauté : la communauté d'utilisateurs de Cloud Build a fourni des étapes de compilation Open Source.
Étapes de compilation personnalisées : vous pouvez créer vos propres étapes de compilation à utiliser dans les compilations.
Chaque étape de compilation est exécutée avec son conteneur associé à un réseau de conteneurs Docker local
nommé cloudbuild
. Cela permet aux étapes de compilation de communiquer entre elles et de partager des données. Pour en savoir plus sur le réseau cloudbuild
, consultez
Réseau Cloud Build.
Vous pouvez utiliser des images standards Docker Hub dans Cloud Build, par exemple Ubuntu et Gradle.
Démarrer des compilations
Vous pouvez démarrer manuellement compilations Cloud Build à l'aide de la Google Cloud CLI ou Cloud Build API, ou utilisez le build Cloud Build des déclencheurs créer un workflow d'intégration continue et de livraison continues (CI/CD) automatisé ; qui lance de nouvelles compilations en réponse aux modifications du code.
Vous pouvez intégrer des déclencheurs de compilation à de nombreux dépôts de code, en particulier à Cloud Source Repositories, GitHub et Bitbucket.
Afficher les résultats de compilations
Vous pouvez afficher les résultats de la compilation à l'aide de gcloud CLI, de la Cloud Build API ou utilisez le la page Historique de compilation de la section Cloud Build de Console Google Cloud, qui affiche les détails et les journaux de chaque compilation Cloud Build s'exécute. Pour savoir comment procéder, consultez la section Afficher un build Résultats.
Fonctionnement des compilations
Les étapes suivantes décrivent, d'une manière générale, le cycle de vie d'une compilation Cloud Build :
- Préparez le code de votre application et tous les éléments nécessaires.
- Créez un fichier de configuration de compilation au format YAML ou JSON, qui contient des instructions pour Cloud Build.
- Envoyez la compilation à Cloud Build.
- Cloud Build exécute la compilation en fonction de la configuration fournie.
- Le cas échéant, les artefacts compilés sont envoyés vers Artifact Registry.
Docker
Cloud Build utilise Docker pour exécuter des compilations. Pour chaque étape de compilation, Cloud Build exécute un conteneur Docker en tant qu'instance de docker run
. Actuellement, Cloud Build exécute la version 20.10.24 du moteur Docker.
Interfaces Cloud Build
Vous pouvez utiliser Cloud Build avec Google Cloud Console, l'outil de ligne de commande gcloud
ou l'API REST de Cloud Build.
Dans la console Google Cloud, vous pouvez afficher les résultats de compilations Cloud Build sur la page Historique de compilation et automatiser les compilations dans les déclencheurs de compilation.
Vous pouvez utiliser la CLI gcloud pour créer et gérer des compilations. Vous pouvez exécuter des commandes pour effectuer des tâches comme envoyer une compilation, répertorier les builds et annuler une la compilation.
Vous pouvez demander des compilations à l'aide de l'API REST Cloud Build.
Comme pour les autres API Cloud Platform, vous devez autoriser l'accès à l'aide d'OAuth2. Une fois l'accès autorisé, vous pouvez utiliser l'API pour démarrer de nouvelles compilations, afficher l'état et les informations relatifs à la compilation, répertorier des compilations par projet et annuler des compilations en cours de traitement.
Pour plus d'informations, consultez la section Documentation sur l'API.
Pools par défaut et pools privés
Par défaut, lorsque vous exécutez une compilation sur Cloud Build, celle-ci s'exécute dans un environnement sécurisé et hébergé avec accès à l'Internet public. Chaque compilation s'exécute sur son propre nœud de calcul et est isolée des autres charges de travail. Vous pouvez personnaliser votre compilation de différentes manières, par exemple en augmentant la taille du type de machine ou en allouant davantage d'espace disque. Le pool par défaut présente des limitations sur la personnalisation de l'environnement, en particulier autour de l'accès au réseau privé.
Les pools privés sont des pools de nœuds de calcul privés et dédiés qui offrent davantage de capacité de personnalisation de l'environnement de compilation, y compris la possibilité d'accéder aux ressources d'un réseau privé. Les pools privés, de manière similaire aux pools par défaut, sont hébergés et entièrement gérés par Cloud Build, et évoluent à la hausse et à la baisse jusqu'à zéro, sans avoir à configurer, à mettre à niveau ni à faire évoluer la moindre infrastructure. Les pools privés étant des ressources spécifiques aux clients, vous pouvez les configurer de différentes manières.
Pour en savoir plus sur les pools privés et la différence de fonctionnalité entre les pools et le pool privé, consultez la section Présentation du pool privé.
Sécurité du build
Cloud Build fournit plusieurs fonctionnalités pour sécuriser vos compilations, y compris:
Compilations automatiques
Une compilation automatisée ou avec script définit toutes les étapes de compilation dans le script de compilation ou la configuration de compilation, y compris les étapes pour récupérer le code source et les étapes pour créer le code. La seule commande manuelle, le cas échéant, est celle qui permet d'exécuter la compilation. Cloud Build utilise un fichier de configuration de compilation pour fournir des étapes de compilation à Cloud Build.
Les compilations automatisées assurent la cohérence des étapes de compilation. Cependant, il est aussi il est important d'exécuter des compilations dans un environnement cohérent et fiable.
Bien que les builds locaux puissent être utiles à des fins de débogage, la publication de provenant de builds locaux peut entraîner de nombreux problèmes de sécurité, des incohérences et et d'inefficacité dans le processus de compilation.
- Autoriser les builds locaux permet à un attaquant avec une intention malveillante pour modifier le processus de compilation.
- Les incohérences entre les environnements locaux et les pratiques des développeurs la reproduction des builds et le diagnostic des problèmes de compilation.
Dans les exigences concernant les SLSA, les builds automatisés sont du SLSA de niveau 1 et d'utiliser un service de compilation au lieu d'un service pour les builds est une exigence du niveau SLSA de niveau 2.
Provenance de la compilation
La provenance d'une compilation est une collection de données vérifiables concernant une compilation.
Les métadonnées de provenance incluent des détails tels que les condensés des images compilées, les emplacements des sources d'entrée, la chaîne d'outils de compilation et la durée de compilation.
La génération de la provenance de la compilation vous aide à:
- Vérifier qu'un artefact compilé a été créé à partir d'un emplacement source fiable et par un système de compilation fiable.
- Identifiez le code injecté à partir d'un emplacement source ou d'un système de compilation non approuvé.
Vous pouvez utiliser des mécanismes d'alerte et des règles pour utiliser de manière proactive la provenance de la compilation données. Par exemple, vous pouvez créer des règles qui n'autorisent que les déploiements de code compilé à partir de sources validées.
Cloud Build peut générer la provenance de la compilation d'images de conteneurs qui fournissent une assurance SLSA de niveau 3. Pour en savoir plus, consultez la section Afficher la provenance de la compilation.
Environnement de compilation éphémère
Les environnements éphémères sont des environnements temporaires destinés à durer une seule fois. Une fois la compilation terminée, l'environnement est effacé ou supprimé. Les builds éphémères garantissent que le service de compilation et les étapes de compilation s'exécuter dans un environnement éphémère, tel qu'un conteneur ou une VM. Au lieu de réutiliser un environnement de compilation existant, le service de compilation provisionne un nouvel environnement pour chaque build, puis les détruit une fois le processus de compilation terminé.
Les environnements éphémères assurent les builds propres, car il n'y a aucun fichier résiduel ou les paramètres d'environnement des builds précédents, qui peuvent interférer avec le build processus. Un environnement non éphémère permet aux pirates informatiques injecter des fichiers et du contenu malveillants. Un environnement éphémère réduit également et réduit les incohérences dans l'environnement de compilation.
Cloud Build configure une nouvelle machine virtuelle pour chaque build et le détruit après.
Stratégies de déploiement
Vous pouvez intégrer Cloud Build à l'autorisation binaire pour vérifier les attestations de compilation et bloquer les déploiements d'images qui ne sont pas générées par Cloud Build. Ce processus peut réduire le risque le déploiement de logiciels non autorisés.
Clés de chiffrement gérées par le client
Cloud Build fournit des clés de chiffrement gérées par le client (CMEK) la conformité par défaut. Les utilisateurs n'ont pas besoin de configurer quoi que ce soit en particulier. Cloud Build assure la conformité avec CMEK en chiffrant le disque persistant associé à la compilation à l'aide d'une clé éphémère qui est générée à chaque compilation. La clé est unique générées pour chaque build.
Une fois la compilation terminée, la clé est effacée de la mémoire et détruite. Il est n'est pas stocké où que ce soit, n'est pas accessible aux ingénieurs et au personnel d'assistance de Google ; et ne peuvent pas être restaurées. Les données qui ont été protégées à l'aide d'une telle clé sont définitivement inaccessible. Pour en savoir plus, consultez Conformité CMEK dans Cloud Build.
Panneau des informations sur la sécurité
Cloud Build inclut un panneau Insights de sécurité dans la console Google Cloud, qui affiche un aperçu général de plusieurs métriques de sécurité. Vous pouvez utiliser ce panneau pour identifier et atténuer les risques dans votre processus de compilation.
Ce panneau affiche les informations suivantes:
Supply-chain Levels for Software Artifacts (SLSA) Level (Niveaux de la chaîne d'approvisionnement pour les artefacts logiciels, niveau SLSA) : identifie le le niveau de maturité de votre processus de création de logiciels, conformément aux spécification SLSA).
Failles: vue d'ensemble des failles détectées dans votre les artefacts et le nom de l'image Artifact Analysis a analysé. Vous pouvez cliquer sur le nom de l'image pour afficher les détails de la faille. Par exemple, dans la capture d'écran, vous pouvez cliquer sur java-guestbook-backend.
Informations sur le build : détails de la compilation, tels que le compilateur et le lien permettant d'afficher les journaux.
Provenance de la compilation: provenance de la compilation.
Software Delivery Shield
Cloud Build fait partie de la solution Software Delivery Shield. Software Delivery Shield est une solution de sécurité de la chaîne d'approvisionnement logicielle entièrement gérée de bout en bout qui vous aide à améliorer la posture de sécurité des outils et des workflows de développement, des dépendances logicielles, des systèmes CI/CD utilisés pour créer et déployer vos logiciels, ainsi que des environnements d'exécution tels que Google Kubernetes Engine et Cloud Run. Pour savoir comment vous pouvez utiliser Cloud Build avec d'autres composants de Software Delivery Shield pour améliorer la stratégie de sécurité de votre chaîne d'approvisionnement logicielle, consultez Présentation de Software Delivery Shield
Étape suivante
- Lisez le guide de démarrage rapide de Docker pour apprendre à utiliser Cloud Build afin de créer des images Docker.
- Découvrez comment créer, tester et déployer des artefacts dans Cloud Build.
- Découvrez les différents types de déclencheurs Cloud Build.
- Consultez nos ressources sur le DevOps et explorez les programme de recherche DevOps Research and Assessment.