Avant de créer un pipeline Image Builder, vous devez d'abord préparer votre environnement Cloud de Confiance . Pour préparer votre environnement, effectuez les tâches suivantes :
- Envoyer une demande d'intégration
- Activer les API Cloud requises
- Configurer le compte de service Image Builder
- Configurer une règle d'administration relative aux images de confiance
- Configurer le réseau VPC et les exigences d'accès
- Configurer Artifact Registry
Avant de commencer
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification permet de valider votre identité pour accéder aux services et aux API Cloud de Confiance by S3NS . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Cloud de Confiance pour accéder aux services Cloud de Confiance by S3NS et aux API, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez la Google Cloud CLI en exécutant la commande suivante :
gcloud init
-
- Définissez une région et une zone par défaut.
REST
Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Cloud de Confiance .
Rôles requis
Pour obtenir les autorisations nécessaires pour préparer votre environnement, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
- Administrateur Service Usage (
roles/serviceusage.serviceUsageAdmin) - Administrateur Identity and Access Management (IAM) de projet (
roles/resourcemanager.projectIamAdmin) ou administrateur de compte de service (roles/iam.serviceAccountAdmin) - Administrateur Artifact Registry (
roles/artifactregistry.admin)
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.
Demande d'intégration
Image Builder est disponible pour tous les utilisateurs avec une liste d'autorisation. Pour intégrer votre projet Cloud de Confiance au pipeline de personnalisation d'images, envoyez le formulaire de demande d'accès ou contactez l'équipe chargée de votre compte Cloud de Confiance .
Activer les API
Image Builder nécessite que vous activiez les API Compute Engine, Cloud Build, Artifact Registry, Service Usage et Resource Manager. Pour activer les API à l'aide de la console Cloud de Confiance ou de la Google Cloud CLI, sélectionnez l'un des onglets suivants :
Console
Activez les API Compute Engine, Cloud Build, Artifact Registry, Service Usage et Cloud Resource Manager.
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.
gcloud
Activez les API Compute Engine, Cloud Build, Artifact Registry, Service Usage et Cloud Resource Manager :
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.
gcloud services enable compute.googleapis.comcloudbuild.googleapis.com artifactregistry.googleapis.com serviceusage.googleapis.com cloudresourcemanager.googleapis.com
Configurer le compte de service Image Builder
L'orchestrateur Image Builder s'exécute à l'aide d'un compte de service géré par l'utilisateur. Lorsque vous exécutez un pipeline de compilation d'images, Cloud Build associe ce compte de service à des instances de VM de nœud de calcul et de VM de test temporaires pour effectuer des actions de personnalisation et de validation. Ce compte de service a besoin des rôles suivants :
- Administrateur Compute (
roles/compute.admin) : gère les instances de VM, les disques persistants et les images d'OS invité. - Utilisateur du compte de service (
roles/iam.serviceAccountUser) : permet à Cloud Build d'associer le compte de service aux instances de VM de test et de nœud de calcul éphémères. - Administrateur de l'espace de stockage (
roles/storage.admin) : lit et écrit les journaux et les artefacts de compilation temporaires dans le bucket de préparationworkdirde Cloud Storage. - Rédacteur de journaux Logging (
roles/logging.logWriter) : écrit les journaux d'exécution dans Cloud Logging. - Lecteur Service Usage (
roles/serviceusage.serviceUsageViewer) : vérifie les états des services du projet lors de l'exécution du pipeline. - Éditeur Cloud Build (
roles/cloudbuild.builds.editor) : déclenche et exécute des jobs Cloud Build, et exporte des images. - (Facultatif) Administrateur Artifact Registry (
roles/artifactregistry.admin) : importe les fichiers tar d'image OS générés dans Artifact Registry.
Vous pouvez utiliser un compte de service existant ou en créer un dédié pour votre pipeline de compilation. Pour créer un compte de service dédié et attribuer les rôles requis à l'aide de la console Cloud de Confiance ou de la gcloud CLI, sélectionnez l'un des onglets suivants :
Console
-
Assurez-vous de disposer du rôle IAM Créateur de comptes de service
(
-
Dans la console Cloud de Confiance , accédez à la page Créer un compte de service.
Accéder à la page "Créer un compte de service" - Sélectionnez votre projet.
-
Dans le champ Nom du compte de service, saisissez un nom. La console Cloud de Confiance remplit le champ ID du compte de service en fonction de ce nom.
Dans le champ Description du compte de service, saisissez une description. Exemple :
Service account for quickstart. - Cliquez sur Créer et continuer.
-
Attribuez les rôles suivants au compte de service : Compute Engine > Administrateur Compute, Comptes de service > Utilisateur du compte de service, Cloud Storage > Administrateur Storage, Cloud Logging > Rédacteur de journaux, Service Usage > Lecteur de l'utilisation du service, Cloud Build > Éditeur Cloud Build, Artifact Registry > Administrateur Artifact Registry.
Pour attribuer un rôle, trouvez la liste Sélectionner un rôle, puis sélectionnez le rôle.
Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
- Cliquez sur Continuer.
-
Dans le champ Rôle d'utilisateur du compte de service, saisissez l'identifiant du compte principal qui associera le compte de service à d'autres ressources, telles que des instances Compute Engine.
Il s'agit généralement de l'identifiant associé à un utilisateur dans un pool d'identités de personnel. Pour en savoir plus, consultez Représenter les utilisateurs de pools de personnel dans les stratégies IAM.
-
Cliquez sur OK pour terminer la création du compte de service.
roles/iam.serviceAccountCreator) et du rôle Administrateur IAM du projet
(roles/resourcemanager.projectIamAdmin). Découvrez comment attribuer des rôles.
gcloud
Créez un compte de service pour votre pipeline de compilation :
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \ --display-name="Image Builder Service Account"Attribuez les rôles requis (
roles/compute.admin,roles/iam.serviceAccountUser,roles/storage.admin,roles/logging.logWriter,roles/serviceusage.serviceUsageVieweretroles/cloudbuild.builds.editor) à votre compte de service :gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/compute.admin" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/iam.serviceAccountUser" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/storage.admin" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/logging.logWriter" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/serviceusage.serviceUsageViewer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/cloudbuild.builds.editor"Facultatif : Attribuez le rôle facultatif (
roles/artifactregistry.admin) à votre compte de service :gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/artifactregistry.admin"
Remplacez les éléments suivants :
SERVICE_ACCOUNT_NAME: nom du compte de service de compilation à créer. Exemple :custom-builder-saPROJECT_ID: ID de votre projet Cloud de Confiance .SERVICE_ACCOUNT_EMAIL: adresse e-mail de votre compte de service de compilation.
Configurer un règlement relatif aux images de confiance
Étant donné qu'Image Builder utilise en interne les outils standards d'importation et d'exportation d'images Compute Engine lors de l'exécution de la compilation, la règle d'images approuvées de votre projet (compute.trustedImageProjects) doit autoriser explicitement les images provenant du projet suivant :
projects/compute-image-import
Si votre règle d'administration limite ce projet, la phase d'exportation d'image échoue.
Pour mettre à jour votre règle d'administration :
- Dans la règle d'administration de votre organisation pour la contrainte
compute.trustedImageProjects, ajoutezprojects/compute-image-importà votre liste d'éditeurs autorisés. - Pour obtenir des instructions détaillées sur la configuration des contraintes de règles d'administration, consultez Configurer des règlements relatifs aux images de confiance et Exporter une image personnalisée vers Cloud Storage.
Configurer le réseau VPC et les exigences d'accès
Pendant les phases de compilation et de validation, Image Builder provisionne des VM de nœud de calcul et de test temporaires dans votre projet Cloud de Confiance . Par défaut, Image Builder connecte les instances à votre réseau VPC default et leur attribue des adresses IP externes éphémères.
Si vous spécifiez un network ou un subnetwork personnalisé, ou si vous configurez externalIP: none dans votre fichier de recette imagebuilder.yaml :
- Accès privé à Google et Cloud NAT : si les VM de nœud de calcul ou de test sont configurées avec
externalIP: none(aucune adresse IP externe), votre sous-réseau VPC doit être associé à l'accès privé à Google pour que les instances puissent accéder aux API et services Google (tels que Cloud Storage et Artifact Registry). Si vos étapes de personnalisation téléchargent des packages ou des dépendances d'OS à partir de dépôts Internet externes, vous devez également configurer Cloud NAT sur le sous-réseau. - Règles de pare-feu : assurez-vous que vos règles de pare-feu VPC autorisent le trafic de sortie vers les API Google et les dépôts de logiciels nécessaires. Si vous prévoyez de vous connecter à des VM de nœuds de calcul actifs pour le débogage interactif (
debug: true), assurez-vous que les règles de pare-feu autorisent l'entrée sur le port TCP 22. Si les instances de VM ne possèdent pas d'adresse IP externe, autorisez l'entrée à partir de la plage d'adresses IP Identity-Aware Proxy (IAP)35.235.240.0/20pour le transfert TCP.
Configurer Artifact Registry
Pour stocker et gérer vos images d'OS personnalisées, vos métadonnées de sécurité et vos attestations de provenance du build SLSA, vous devez configurer un dépôt générique dans Artifact Registry. Le stockage de vos images dans Artifact Registry vous permet de conserver un enregistrement sécurisé et immuable des images publiées.
Lorsque vous configurez une destination Artifact Registry, Image Builder effectue les étapes suivantes :
- Exportation du disque de démarrage finalisé de la VM en tant que fichier tar standard (
.tar.gz). - Importe le fichier tar dans votre dépôt générique dans Artifact Registry.
- Génère et signe des attestations de provenance du build SLSA pour l'artefact afin de l'associer aux métadonnées sources.
- Enregistre l'image Compute Engine prête pour la production auprès de Compute Engine en utilisant l'URI du fichier tar Artifact Registry comme source de modèle.
Pour configurer Artifact Registry générique, effectuez les tâches suivantes :
Assurez-vous que le compte de service utilisé pour exécuter le pipeline Image Builder dispose du rôle Administrateur Artifact Registry (
roles/artifactregistry.admin) au niveau du dépôt ou du projet. Pour obtenir des instructions détaillées, consultez Configurer le compte de service Image Builder.Créez un dépôt au format
generic. Pour créer votre dépôt, exécutez la commandegcloud artifacts repositories create:gcloud artifacts repositories create REPOSITORY_NAME \ --repository-format=generic \ --location=REPOSITORY_LOCATIONRemplacez les espaces réservés suivants :
REPOSITORY_NAME: nom de votre dépôt générique. Exemple :custom-os-imagesREPOSITORY_LOCATION: une région compatible. Exemple :us-central1.
Étapes suivantes
- Créez et gérez des pipelines à l'aide de la console Cloud de Confiance .
- Créez et gérez des pipelines de manière programmatique.
- Découvrez comment définir des recettes de personnalisation dans le schéma de recette de personnalisation.
- Examinez la structure du fichier de configuration de compilation (
cloudbuild.yaml).