Questo documento descrive i prerequisiti per l'importazione e l'esportazione di immagini su Compute Engine.
Puoi condividere istanze di macchine virtuali (VM), file di dischi virtuali e immagini macchina da altri ambienti cloud o dal tuo ambiente on-premise importando ed esportando immagini da Cloud Storage. Il seguente elenco di controllo riassume i requisiti che devi soddisfare prima di importare ed esportare le immagini:
- Configura l'accesso a un bucket Cloud Storage
- Concedi i ruoli richiesti al tuo account utente
- Concedi i ruoli richiesti al service account Cloud Build
- Concedi i ruoli richiesti al service account di Compute Engine
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è
il processo di verifica dell'identità per poter accedere a Trusted Cloud by S3NS servizi e API.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
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 seguente comando:
gcloud init
- Set a default region and zone.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
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 seguente comando:
gcloud init
Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Trusted Cloud .
Configurare l'accesso a un bucket Cloud Storage
Devi avere accesso a un bucket Cloud Storage che lo strumento di importazione o esportazione può utilizzare. Se non hai un bucket Cloud Storage, consulta Creare un bucket Cloud Storage.
Per configurare l'accesso al tuo bucket Cloud Storage, vedi Concedi i ruoli richiesti al tuo account e Service account Compute Engine.
Se esporti un'immagine, lo strumento di esportazione la carica nel bucket Cloud Storage.
Se importi un'immagine, devi prima caricarla nel bucket Cloud Storage. Lo strumento di importazione scarica il file dal bucket Cloud Storage a Compute Engine, quindi crea un'immagine in Compute Engine da questo file del disco.
Concedi i ruoli IAM richiesti
Lo strumento di importazione ed esportazione di immagini VM richiede i seguenti account per eseguire l'operazione per suo conto:
- Account utente. L'account da cui esegui i comandi di importazione ed esportazione.
- Service account Cloud Build. Un account di servizio Cloud Build predefinito creato quando lo strumento di importazione o esportazione abilita l'API Cloud Build.
- Service account Compute Engine. Un account di servizio Compute Engine predefinito o personalizzato richiesto per il flusso di lavoro di importazione ed esportazione.
Concedi i ruoli richiesti al tuo account utente
Per importare o esportare immagini, il tuo account utente richiede i seguenti ruoli:
- Ruolo Amministratore Storage (
roles/storage.admin
) - Ruolo Visualizzatore (
roles/viewer
) - Ruolo Amministratore IAM progetto (
roles/resourcemanager.projectIamAdmin
) - Ruolo Editor Cloud Build (
roles/cloudbuild.builds.editor
)
Console
Vai alla pagina IAM e amministrazione del progetto o dell'organizzazione.
Individua il tuo account e fai clic su
Modifica.Nell'elenco Seleziona un ruolo, seleziona i seguenti ruoli:
- Cloud Storage > Amministratore Storage
- Progetto > Visualizzatore
- Resource Manager > Project IAM Admin
- Cloud Build > Editor Cloud Build
Salva le modifiche.
gcloud
Nei passaggi seguenti, utilizzerai il
gcloud projects add-iam-policy-binding
comando per concedere i ruoli richiesti a livello di progetto.Concedi il ruolo
roles/storage.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/storage.admin'
Sostituisci quanto segue:
PROJECT_ID
: l' Trusted Cloud ID progetto per il tuo progettoMEMBER
: l'account che esegue i comandi di importazione ed esportazione, ad esempiouser:export-user@gmail.com
Concedi il ruolo
roles/viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
Concedi il ruolo
roles/resourcemanager.projectIamAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/resourcemanager.projectIamAdmin'
Concedi il ruolo
roles/cloudbuild.builds.editor
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/cloudbuild.builds.editor'
REST
Leggi la policy esistente con il metodo
getIamPolicy
della risorsa. Per i progetti, utilizza il metodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Sostituisci
PROJECT_ID
con l'ID progetto, ad esempiomy-project-1
.Per concedere i ruoli richiesti al tuo account, modifica la policy con un editor di testo.
Ad esempio, per concedere il ruolo richiesto al tuo account
user:export-user@gmail.com
, aggiungi la seguente associazione alla policy:{ { "role":"roles/storage.admin", "member":[ "user:export-user@gmail.com" ] } { "roles":"roles/viewer", "member":[ "user:export-user@gmail.com" ] } { "roles":"roles/resourcemanager.projectIamAdmin", "member":[ "user:export-user@gmail.com" ] } { "roles":"roles/cloudbuild.builds.editor", "member":[ "user:export-user@gmail.com" ] } }
Per scrivere la policy aggiornata, utilizza il metodo
setIamPolicy
.Ad esempio, per impostare una policy a livello di progetto, utilizza il metodo
project.setIamPolicy
. Nel corpo della richiesta, fornisci la policy IAM aggiornata del passaggio precedente.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Concedi i ruoli richiesti al account di servizio Cloud Build
Quando utilizzi la console Trusted Cloud o gcloud CLI per importare o esportare immagini per la prima volta, lo strumento tenta di attivare l'API Cloud Build e concedere i ruoli richiesti all'account di servizio Cloud Build.
- Ruolo Creatore token service account
(
roles/iam.serviceAccountTokenCreator
) - Ruolo Service Account User
(
roles/iam.serviceAccountUser
) - Ruolo Compute Admin (
roles/compute.admin
)Per evitare di concedere il ruolo Amministratore Compute, puoi creare un ruolo personalizzato con le seguenti autorizzazioni IAM di Compute Engine e concederlo all'account di servizio Cloud Build:
- Ruolo Utente di rete Compute (
roles/compute.networkUser
)Questo ruolo è obbligatorio solo quando importi o esporti immagini che utilizzano il VPC condiviso.
Nel progetto VPC condiviso, concedi il ruolo Utente di rete Compute al account di servizio Cloud Build che si trova nel progetto in cui importi o esporti le immagini.
Tuttavia, puoi concedere manualmente questi ruoli per assicurarti che le autorizzazioni richieste siano effettive:
Console
Dopo aver abilitato l'API Cloud Build, vai alla pagina IAM e amministrazione del progetto o dell'organizzazione.
Individua il account di servizio Cloud Build e fai clic su
Modifica.Se i ruoli richiesti non sono elencati, procedi nel seguente modo:
- Fai clic su Aggiungi un altro ruolo.
Nell'elenco Seleziona un ruolo, seleziona i ruoli richiesti che vuoi aggiungere:
- Service Account > Creatore token service account
- Service Account > Service Account User
Compute Engine > Amministratore Compute
In alternativa, puoi selezionare il ruolo Personalizzato. Consulta la sezione Autorizzazioni richieste per il ruolo personalizzato di questo documento.
Fai clic su Salva per salvare le modifiche.
(Facoltativo) Se importi o esporti immagini che utilizzano il VPC condiviso, seleziona il ruolo Utente rete Compute nel progetto VPC condiviso:
- Dal selettore di progetti nella parte superiore della console, seleziona il progetto host VPC condiviso.
- Nella pagina IAM e amministrazione, fai clic su Concedi l'accesso.
- Nel campo Nuove entità, inserisci l'indirizzo email dell'account di servizio
Cloud Build:
SostituisciPROJECT_NUMBER@cloudbuild.s3ns-system.iam.gserviceaccount.com'
PROJECT_NUMBER
con il numero univoco del progetto in cui importi o esporti le immagini. - Nell'elenco Seleziona un ruolo, seleziona Compute Engine > ruolo Utente rete Compute.
- Fai clic su Salva per salvare le modifiche.
gcloud
Nei passaggi seguenti, utilizzerai il
gcloud projects add-iam-policy-binding
comando per concedere i ruoli richiesti a livello di progetto.Concedi il ruolo
roles/compute.admin
al service account Cloud Build. Per evitare di concedere il ruoloroles/compute.admin
, puoi creare un ruolo personalizzato con le autorizzazioni richieste e poi concederlo al account di servizio Cloud Build. Consulta la sezione Autorizzazioni richieste per il ruolo personalizzato all'inizio di questo documento.gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.s3ns-system.iam.gserviceaccount.com' \ --role='roles/compute.admin'
Sostituisci quanto segue:
PROJECT_ID
: l' Trusted Cloud ID progetto per il tuo progettoPROJECT_NUMBER
: il Trusted Cloud numero di progetto del tuo progetto
Concedi il ruolo
roles/iam.serviceAccountUser
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.s3ns-system.iam.gserviceaccount.com' \ --role='roles/iam.serviceAccountUser'
Concedi il ruolo
roles/iam.serviceAccountTokenCreator
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.s3ns-system.iam.gserviceaccount.com' \ --role='roles/iam.serviceAccountTokenCreator'
(Facoltativo) Se esporti o importi immagini che utilizzano il VPC condiviso, concedi il ruolo
roles/compute.networkUser
:gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.s3ns-system.iam.gserviceaccount.com' \ --role='roles/compute.networkUser'
Sostituisci quanto segue:
HOST_PROJECT_ID
: l'ID del progetto host in cui si trova laVPC condivisoaPROJECT_NUMBER
: il numero univoco del progetto in cui importi o esporti le immagini
REST
Leggi la policy esistente con il metodo
getIamPolicy
della risorsa. Per i progetti, utilizza il metodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Sostituisci
PROJECT_ID
con l'ID progetto, ad esempiomy-project-1
.Per concedere i ruoli richiesti al tuo account, modifica la policy con un editor di testo.
Ad esempio, per concedere i ruoli richiesti a
serviceAccount:12345@cloudbuild.s3ns-system.iam.gserviceaccount.com
, aggiungi la seguente associazione alla policy:{ { "role":"roles/compute.admin", "member":[ "serviceAccount:12345@cloudbuild.s3ns-system.iam.gserviceaccount.com" ] } { "roles":"roles/iam.serviceAccountUser", "member":[ "serviceAccount:12345@cloudbuild.s3ns-system.iam.gserviceaccount.com" ] } { "roles":"roles/iam.serviceAccountTokenCreator", "member":[ "serviceAccount:12345@cloudbuild.s3ns-system.iam.gserviceaccount.com" ] } }
Per evitare di concedere il ruolo
roles/compute.admin
, puoi creare un ruolo personalizzato con le autorizzazioni richieste e poi concederlo al account di servizio Cloud Build. Consulta la sezione Autorizzazioni richieste per il ruolo personalizzato all'inizio di questo documento.(Facoltativo) Se esporti o importi immagini che utilizzano il VPC condiviso, concedi il ruolo
roles/compute.networkUser
nel progetto VPC condiviso.POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:getIamPolicy
Sostituisci
HOST_PROJECT_ID
con l'ID del progetto VPC condiviso.Aggiungi il seguente binding IAM al service account Cloud Build:
{ { "roles":"roles/compute.networkUser", "member":[ "serviceAccount:12345@cloudbuild.s3ns-system.iam.gserviceaccount.com" ] } }
Per scrivere la policy aggiornata, utilizza il metodo
setIamPolicy
.Ad esempio, per impostare una policy a livello di progetto, utilizza il metodo
project.setIamPolicy
. Nel corpo della richiesta, fornisci la policy IAM aggiornata del passaggio precedente.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Per ulteriori informazioni sulla gestione dell'accesso alle risorse, vedi Concessione, modifica e revoca dell'accesso alle risorse.
Concedi i ruoli richiesti al account di servizio Compute Engine
Quando utilizzi la console Trusted Cloud o gcloud CLI per importare o esportare immagini per la prima volta, lo strumento tenta di concedere i ruoli richiesti al service account predefinito di Compute Engine.
A seconda della configurazione della policy dell'organizzazione, al service account predefinito potrebbe essere assegnato automaticamente il ruolo Editor nel progetto. Ti consigliamo vivamente di disattivare la concessione automatica dei ruoli forzando l'applicazione del vincolo
iam.automaticIamGrantsForDefaultServiceAccounts
della policy dell'organizzazione. Se hai creato la tua organizzazione dopo il 3 maggio 2024, questo vincolo viene imposto per impostazione predefinita.Se disattivi la concessione automatica dei ruoli, devi decidere quali ruoli concedere ai service account predefiniti, quindi concedere personalmente questi ruoli.
Se il service account predefinito dispone già del ruolo Editor, ti consigliamo di sostituire il ruolo Editor con ruoli meno permissivi.
Il account di servizio Compute Engine deve avere i seguenti ruoli:
- Ruolo Amministratore archiviazione Compute
(
roles/compute.storageAdmin
): richiesto sia per l'esportazione che per l'importazione di immagini VM - Ruolo Storage Object Viewer
(
roles/storage.objectViewer
): richiesto per l'importazione di immagini VM - Ruolo Amministratore oggetti Storage
(
roles/storage.objectAdmin
): richiesto per l'esportazione di immagini VM
Console
Vai alla pagina IAM e amministrazione del progetto o dell'organizzazione.
Individua il account di servizio Compute Engine e fai clic su
Modifica.Nell'elenco Seleziona un ruolo, seleziona i seguenti ruoli:
- Compute Engine > Amministratore Storage Compute
- Cloud Storage > Storage Object Viewer
- Cloud Storage > Amministratore oggetti Storage
Salva le modifiche.
gcloud
Nei passaggi seguenti, utilizzerai il
gcloud projects add-iam-policy-binding
comando per concedere i ruoli richiesti a livello di progetto.Concedi il ruolo
roles/compute.storageAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.s3ns-system.iam.gserviceaccount.com' \ --role='roles/compute.storageAdmin'
Se importi un'immagine, concedi il ruolo
roles/storage.objectViewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.s3ns-system.iam.gserviceaccount.com' \ --role='roles/storage.objectViewer'
Se esporti un'immagine, concedi il ruolo
roles/storage.objectAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.s3ns-system.iam.gserviceaccount.com' \ --role='roles/storage.objectAdmin'
REST
Leggi la policy esistente con il metodo
getIamPolicy
della risorsa. Per i progetti, utilizza il metodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Sostituisci
PROJECT_ID
con l'ID progetto, ad esempiomy-project-1
.Per concedere i ruoli richiesti al tuo account, modifica la policy con un editor di testo.
Ad esempio, per concedere i ruoli richiesti a
serviceAccount:12345-compute@developer.s3ns-system.iam.gserviceaccount.com
per importare un'immagine, aggiungi la seguente associazione alla policy:{ { "role":"roles/compute.storageAdmin", "member":[ "serviceAccount:12345-compute@developer.s3ns-system.iam.gserviceaccount.com" ] } { "roles":"roles/storage.objectViewer", "member":[ "serviceAccount:12345-compute@developer.s3ns-system.iam.gserviceaccount.com" ] } }
Per scrivere la policy aggiornata, utilizza il metodo
setIamPolicy
.Ad esempio, per impostare una policy a livello di progetto, utilizza il metodo
project.setIamPolicy
. Nel corpo della richiesta, fornisci la policy IAM aggiornata del passaggio precedente.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Se non vuoi utilizzare il account di servizio Compute Engine predefinito, puoi specificare un service account gestito dall'utente utilizzando il flag
--compute-service-account
nei comandi di importazione ed esportazionegcloud
. Per ulteriori informazioni sull'utilizzo di un service account Compute Engine personalizzato, consulta le seguenti risorse:- Importazione di dischi virtuali con service account personalizzati
- Importazione di appliance virtuali con service account personalizzati
- Importazione di immagini macchina da appliance virtuali con service account personalizzati
- Esportazione di immagini personalizzate con service account personalizzati
Passaggi successivi
- Esporta immagini personalizzate in Cloud Storage.
- Condividi le tue immagini tra i progetti.
- Scegli un metodo di importazione.
- Importazione di dischi virtuali
- Importazione di appliance virtuali
- Importazione di immagini macchina da appliance virtuali
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-21 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-21 UTC."],[[["\u003cp\u003eThe Compute Engine image import feature is now located within Migrate to Virtual Machines, and it is recommended to use this new feature for importing virtual disks to Google Cloud.\u003c/p\u003e\n"],["\u003cp\u003eImporting and exporting images requires access to a Cloud Storage bucket, which involves uploading images to the bucket for import or allowing the export tool to upload images to the bucket, and the proper authentication must be set for each process.\u003c/p\u003e\n"],["\u003cp\u003eThe VM image import and export process involves user accounts, Cloud Build service accounts, and Compute Engine service accounts, each of which must have specific IAM roles granted, including Storage Admin, Viewer, Project IAM Admin, and Cloud Build Editor for the user account.\u003c/p\u003e\n"],["\u003cp\u003eCloud Build service accounts require roles like Service Account Token Creator, Service Account User, and Compute Admin, or alternatively a custom role with specified Compute Engine permissions, along with Compute Network User for Shared VPC usage.\u003c/p\u003e\n"],["\u003cp\u003eThe Compute Engine service account needs Compute Storage Admin role, Storage Object Viewer role for image imports, and Storage Object Admin role for image exports, and there is an option to enforce policies to manage default service account grants to enhance security.\u003c/p\u003e\n"]]],[],null,[]] -