Prima di creare una pipeline Image Builder, devi preparare l'ambiente Cloud de Confiance . Per preparare l'ambiente, completa le seguenti attività:
- Invia una richiesta di onboarding
- Abilita le API Cloud richieste
- Configurare il service account di Image Builder
- Configura la policy dell'organizzazione per immagini attendibili
- Configura la rete VPC e i requisiti di accesso
- Configura Artifact Registry
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Cloud de Confiance by S3NS . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Cloud de Confiance per accedere ai servizi Cloud de Confiance by S3NS e alle API, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud init
-
- Imposta una regione e una zona predefinite.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Cloud de Confiance .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per preparare l'ambiente, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
- Amministratore Service Usage (
roles/serviceusage.serviceUsageAdmin) - Identity and Access Management IAM progetto (
roles/resourcemanager.projectIamAdmin) o Amministratore service account (roles/iam.serviceAccountAdmin) - Amministratore Artifact Registry (
roles/artifactregistry.admin)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Richiesta di onboarding
Image Builder è in disponibilità generale con una lista consentita. Per eseguire l'onboarding del tuo progetto Cloud de Confiance per la pipeline di personalizzazione delle immagini, invia il modulo di richiesta di accesso o contatta il team dedicato al tuo account Cloud de Confiance .
Abilita API
Image Builder richiede l'abilitazione delle API Compute Engine, Cloud Build, Artifact Registry, Service Usage e Resource Manager. Per abilitare le API utilizzando la console Cloud de Confiance o Google Cloud CLI, seleziona una delle seguenti schede:
Console
Abilita le API Compute Engine, Cloud Build, Artifact Registry, Service Usage e Cloud Resource Manager.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
gcloud
Abilita le API Compute Engine, Cloud Build, Artifact Registry, Service Usage e Cloud Resource Manager:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
gcloud services enable compute.googleapis.comcloudbuild.googleapis.com artifactregistry.googleapis.com serviceusage.googleapis.com cloudresourcemanager.googleapis.com
Configura il account di servizio di Image Builder
L'orchestratore di Image Builder viene eseguito utilizzando un service account gestito dall'utente. Quando esegui una pipeline di creazione di immagini, Cloud Build collega questo account di servizio a VM worker temporanee e VM di test per eseguire azioni di personalizzazione e convalida. Questo account di servizio richiede i seguenti ruoli:
- Compute Admin (
roles/compute.admin): gestisce le istanze VM, i dischi permanenti e le immagini del sistema operativo guest. - Utente service account (
roles/iam.serviceAccountUser): consente a Cloud Build di collegare il account di servizio al worker effimero e alle istanze VM di test. - Amministratore storage (
roles/storage.admin): legge e scrive log e artefatti di build temporanei nel bucket di gestione temporaneaworkdirdi Cloud Storage. - Logging Log Writer (
roles/logging.logWriter): scrive i log di esecuzione in Cloud Logging. - Service Usage Viewer (
roles/serviceusage.serviceUsageViewer): controlla gli stati dei servizi del progetto durante l'esecuzione della pipeline. - Editor Cloud Build (
roles/cloudbuild.builds.editor): attiva ed esegue i job Cloud Build ed esporta le immagini. - (Facoltativo) Artifact Registry Admin (
roles/artifactregistry.admin): carica i file tar dell'immagine del sistema operativo generati in Artifact Registry.
Puoi utilizzare un account di servizio esistente o crearne uno nuovo dedicato per la pipeline di build. Per creare un nuovo account di servizio dedicato e concedere i ruoli richiesti utilizzando la console Cloud de Confiance o gcloud CLI, seleziona una delle seguenti schede:
Console
-
Assicurati di disporre del ruolo IAM Creazione service account
(
-
Nella console Cloud de Confiance vai a Crea service account.
Vai a Crea service account - Seleziona il progetto.
-
Nel campo Nome service account, inserisci un nome. La console Cloud de Confiance compila il campo ID service account in base a questo nome.
Nel campo Descrizione service account, inserisci una descrizione. Ad esempio,
Service account for quickstart. - Fai clic su Crea e continua.
-
Concedi i seguenti ruoli al account di servizio: Compute Engine > Amministratore Compute, Service account > Utente service account, Cloud Storage > Amministratore spazio di archiviazione, Cloud Logging > Writer log, Service Usage > Visualizzatore Service Usage, Cloud Build > Editor Cloud Build, Artifact Registry > Amministratore Artifact Registry.
Per concedere un ruolo, trova l'elenco Seleziona un ruolo, quindi seleziona il ruolo.
Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo successivo.
- Fai clic su Continua.
-
Nel campo Ruolo degli utenti del service account, inserisci l'identificatore dell'entità che collegherà il account di servizio ad altre risorse, ad esempio le istanze Compute Engine.
In genere si tratta dell'identificatore di un utente in un pool di identità della forza lavoro. Per maggiori dettagli, vedi Rappresentare gli utenti del pool di forza lavoro nelle policy IAM.
-
Fai clic su Fine per completare la creazione del service account.
roles/iam.serviceAccountCreator) e del ruolo Amministratore IAM progetto
(roles/resourcemanager.projectIamAdmin). Scopri come concedere
i ruoli.
gcloud
Crea un account di servizio per la pipeline di build:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \ --display-name="Image Builder Service Account"Concedi i ruoli richiesti (
roles/compute.admin,roles/iam.serviceAccountUser,roles/storage.admin,roles/logging.logWriter,roles/serviceusage.serviceUsageViewereroles/cloudbuild.builds.editor) al tuo account di servizio: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"(Facoltativo) Concedi il ruolo facoltativo (
roles/artifactregistry.admin) al tuo account di servizio:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/artifactregistry.admin"
Sostituisci quanto segue:
SERVICE_ACCOUNT_NAME: il nome del account di servizio di build da creare. Ad esempio,custom-builder-sa.PROJECT_ID: il tuo ID progetto Cloud de Confiance .SERVICE_ACCOUNT_EMAIL: l'indirizzo email del service account del servizio di build.
Configura la policy dell'organizzazione per immagini attendibili
Poiché Image Builder utilizza internamente gli strumenti standard di importazione ed esportazione delle immagini di Compute Engine durante l'esecuzione della build, la policy delle immagini attendibili del tuo progetto (compute.trustedImageProjects) deve consentire esplicitamente le immagini del seguente progetto:
projects/compute-image-import
Se il criterio dell'organizzazione limita questo progetto, la fase di esportazione dell'immagine non riesce.
Per aggiornare la policy dell'organizzazione:
- Nella policy dell'organizzazione per il vincolo
compute.trustedImageProjects, aggiungiprojects/compute-image-importall'elenco dei publisher consentiti. - Per istruzioni dettagliate sulla configurazione dei vincoli delle policy dell'organizzazione, vedi Configura le policy per immagini attendibili e Esporta un'immagine personalizzata in Cloud Storage.
Configura i requisiti di rete VPC e di accesso
Durante le fasi di creazione e convalida, Image Builder esegue il provisioning
di VM worker e di test temporanee nel tuo progetto Cloud de Confiance . Per impostazione predefinita,
Image Builder connette le istanze alla tua rete VPC default
e assegna indirizzi IP esterni effimeri.
Se specifichi un network o un subnetwork personalizzato oppure configuri externalIP: none
nel file di ricetta imagebuilder.yaml:
- Accesso privato Google e Cloud NAT: se le VM worker o di test sono configurate con
externalIP: none(nessun IP esterno), la subnet VPC deve avere l'accesso privato Google abilitato in modo che le istanze possano raggiungere i servizi e le API di Google (come Cloud Storage e Artifact Registry). Se i passaggi di personalizzazione scaricano pacchetti del sistema operativo o dipendenze da repository internet esterni, devi anche configurare Cloud NAT nella subnet. - Regole firewall:assicurati che le regole firewall VPC consentano il traffico
di uscita alle API di Google e ai repository software necessari. Se prevedi di connetterti alle VM worker attive per il debug interattivo
(
debug: true), assicurati che le regole firewall consentano il traffico in entrata sulla porta TCP 22. Se le istanze VM non hanno un IP esterno, consenti l'ingresso dall'intervallo IP di Identity-Aware Proxy (IAP)35.235.240.0/20per l'inoltro TCP.
Configura Artifact Registry
Per archiviare e gestire le immagini OS personalizzate, i metadati di sicurezza e le attestazioni di provenienza della build SLSA, devi configurare un repository generico in Artifact Registry. L'archiviazione delle immagini in Artifact Registry ti consente di mantenere un record sicuro e immutabile delle immagini pubblicate.
Quando configuri una destinazione Artifact Registry, Image Builder esegue i seguenti passaggi:
- Esporta il disco di avvio della VM finalizzato come file tar standard (
.tar.gz). - Carica il file tar nel repository generico in Artifact Registry.
- Genera e firma le attestazioni di provenienza della build SLSA per l'artefatto per collegarlo ai metadati di origine.
- Registra l'immagine Compute Engine pronta per la produzione con Compute Engine utilizzando l'URI del file tar di Artifact Registry come origine del modello.
Per configurare un Artifact Registry generico, completa le seguenti attività:
Assicurati che il account di servizio utilizzato per eseguire la pipeline Image Builder disponga del ruolo Amministratore Artifact Registry (
roles/artifactregistry.admin) a livello di repository o progetto. Per istruzioni dettagliate, vedi Configurare il service account di Image Builder.Crea un repository di formato
generic. Per creare il repository, esegui il comandogcloud artifacts repositories create:gcloud artifacts repositories create REPOSITORY_NAME \ --repository-format=generic \ --location=REPOSITORY_LOCATIONSostituisci i seguenti segnaposto:
REPOSITORY_NAME: un nome per il repository generico. Ad esempio,custom-os-images.REPOSITORY_LOCATION: una regione supportata. Ad esempio,us-central1.
Passaggi successivi
- Crea e gestisci pipeline utilizzando la console Cloud de Confiance .
- Crea e gestisci pipeline a livello di programmazione.
- Scopri come definire le ricette di personalizzazione nello schema delle ricette di personalizzazione.
- Esamina la struttura del
file di configurazione della build (
cloudbuild.yaml).