Cloud Build vous permet de définir une règle d'administration (constraints/cloudbuild.allowedIntegrations
) pour contrôler les services externes qui peuvent appeler des déclencheurs de compilation. Par exemple, si votre déclencheur écoute les modifications apportées à un dépôt GitHub et que GitHub est refusé dans la règle d'organisation, votre déclencheur ne s'exécutera pas. Vous pouvez spécifier n'importe quel nombre de valeurs autorisées ou refusées pour votre organisation ou votre projet.
Cette page explique comment configurer la règle d'administration (constraints/cloudbuild.allowedIntegrations
) pour les intégrations à l'aide de la console Google Cloud et de l'outil de ligne de commande gcloud
.
Avant de commencer
-
Enable the Cloud Build and Organization Policy APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. Pour utiliser les exemples de ligne de commande de ce guide, installez et configurez le SDK Google Cloud.
Pour définir, modifier ou supprimer une règle d'administration, vous devez disposer du rôle Administrateur de règle d'administration (
roles/orgpolicy.policyAdmin
). Pour savoir comment ajouter le rôle à votre compte, consultez Ajouter un administrateur de règles d'administration.
Configurer une règle d'administration pour les intégrations autorisées
Cette section explique comment configurer la règle d'administration (constraints/cloudbuild.allowedIntegrations
) pour définir les compilations pour les intégrations autorisées.
Console
Ouvrez la page Règles d'administration dans la console Google Cloud .
Cliquez sur la ligne contenant la règle Intégrations autorisées (Cloud Build).
La page Détails de la règle s'affiche.
Pour modifier la règle, cliquez sur Modifier.
La page Modifier la règle s'affiche.
Dans la section Applicable à, sélectionnez Personnaliser pour définir votre règlement.
Dans la section Application des règles, sélectionnez Remplacer pour définir vos propres règles pour la stratégie. Sinon, sélectionnez Fusionner avec le parent pour vous assurer que les règles au niveau de la ressource parente sont appliquées à vos paramètres. Pour en savoir plus, consultez Comprendre le processus d'évaluation hiérarchique.
Dans la section Règles, cliquez sur Ajouter une règle pour ajouter une règle à votre stratégie.
Sous Valeurs de règles, sélectionnez Tout autoriser pour autoriser les compilations de tous les services, Tout refuser pour refuser les compilations de tous les services ou Personnalisé pour autoriser ou refuser les compilations de services spécifiques.
Si vous sélectionnez Personnalisé comme valeur, procédez comme suit :
Dans la section Type de règle, sélectionnez Autoriser ou Refuser.
Dans la section Valeurs personnalisées, saisissez l'URL hôte de l'instance ou du dépôt à partir desquels vous souhaitez autoriser ou refuser les compilations. Par exemple, pour autoriser ou refuser les compilations à partir de GitHub, saisissez votre URL sous la forme
github.com
ouwww.github.com
.Vous pouvez également saisir plusieurs URL séparées par un espace. (par exemple,
github.com ghe.staging-test.com
)En fonction de l'événement, l'URL hôte que vous spécifiez est l'une des suivantes :
- Événement RepoSync : l'hôte est
source.developers.google.com
. - Événement d'application GitHub : l'hôte est dérivé du champ
repository.html_url
de votre charge utile JSON, qui est toujoursgithub.com
. - Événement GitHub Enterprise : l'hôte est dérivé du champ
repository.html_url
de votre charge utile JSON. Exemple :ghe.staging-test.com
- Événement Pub/Sub : l'hôte est dérivé de la source spécifiée dans votre déclencheur. Si aucune source n'est spécifiée dans votre déclencheur, aucune vérification des règles de l'organisation n'est effectuée.
- Événement de webhook : l'hôte est dérivé de la source spécifiée dans votre déclencheur. Si aucune source n'est spécifiée dans votre déclencheur, une vérification des règles de l'organisation est effectuée.
- Événement RepoSync : l'hôte est
Pour enregistrer votre règle, cliquez sur OK.
Pour ajouter une autre règle, cliquez sur Ajouter une règle. Sinon, pour enregistrer votre règle, cliquez sur Enregistrer.
gcloud
Ouvrez une fenêtre de terminal.
Si vous souhaitez autoriser ou refuser les compilations de tous les services, créez un fichier YAML avec le contenu suivant :
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - ALLOW_OR_DENY: true
Où :
PROJECT_NUMBER
est le numéro de votre projet.INHERIT
est défini surtrue
si vous souhaitez que les règles de votre stratégie soient héritées de la ressource parente. Dans le cas contraire,false
.ALLOW_OR_DENY
estallowAll
si vous souhaitez autoriser les builds à partir de toutes les URL hôtes. Sinon,denyAll
.HOST_URL
est l'URL de votre hôte. Exemple :github.com
. Vous pouvez également spécifier d'autres URL sur les lignes suivantes.
Si vous souhaitez autoriser ou refuser les compilations à partir de services sélectionnés, créez un fichier YAML avec le contenu suivant :
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - values: ALLOW_OR_DENY: HOST_URL ...
Où :
PROJECT_NUMBER
est le numéro de votre projet.INHERIT
est défini surtrue
si vous souhaitez que les règles de votre stratégie soient héritées de la ressource parente. Dans le cas contraire,false
.ALLOW_OR_DENY
estallowedValues
si vous souhaitez spécifier les URL hôtes à partir desquelles les compilations sont autorisées. Dans le cas contraire,deniedValues
.HOST_URL
est l'URL de votre hôte. Exemple :github.com
. Vous pouvez également spécifier d'autres URL sur les lignes suivantes.
Définissez votre règle d'administration en exécutant la commande suivante, où FILE_NAME correspond au nom de votre fichier YAML :
gcloud org-policies set-policy FILE_NAME
Pour vérifier que votre règle a été définie, exécutez la commande suivante, où PROJECT_ID correspond à l'ID de votre projet :
gcloud org-policies describe cloudbuild.allowedIntegrations --effective --project PROJECT_ID
Tester la règle d'administration pour les intégrations autorisées
Cette section explique comment tester votre règle d'administration (constraints/cloudbuild.allowedIntegrations
) à l'aide de déclencheurs de compilation.
Si ce n'est pas déjà fait, créez un déclencheur de compilation.
Exécutez une modification dans votre source.
Si votre règle est configurée pour autoriser les compilations à partir de votre source, vous pourrez afficher les exécutions de compilation à partir de votre déclencheur sur la page Historique des compilations. Sinon, votre compilation ne s'exécutera pas. Pour afficher l'historique des compilations limitées par votre définition de règle, consultez la page Explorateur de journaux pour connaître le motif de la charge utile JSON et le motif du refus.
Étapes suivantes
- Découvrez comment créer et gérer des déclencheurs de compilation.
- Découvrez comment sécuriser les compilations en cas d'approbation.
- Apprenez-en plus sur les autorisations requises pour afficher les journaux de compilation.
- Découvrez les journaux d'audit créés par Cloud Build.