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 Compute Engine
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è
il processo mediante il quale la tua identità viene verificata per l'accesso ai Google Cloud servizi e alle 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 Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
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.
- 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.
- 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
) 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 > Amministratore IAM progetto
- Cloud Build > Editor Cloud Build
Salva le modifiche.
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'Google Cloud ID progetto del 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'
Leggi le norme esistenti 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 il criterio con un editor di testo.
Ad esempio, per concedere il ruolo richiesto al tuo account
user:export-user@gmail.com
, aggiungi il seguente binding al criterio:{ { "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 il criterio IAM aggiornato del passaggio precedente.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Ruolo Creatore token service account
(
roles/iam.serviceAccountTokenCreator
) - Ruolo Service Account User
(
roles/iam.serviceAccountUser
) - Ruolo Amministratore Compute (
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.
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 Autorizzazioni richieste per il ruolo personalizzato in precedenza in 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 di rete Compute nel progetto VPC condiviso:
- Nel selettore dei 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.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.
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.gserviceaccount.com' \ --role='roles/compute.admin'
Sostituisci quanto segue:
PROJECT_ID
: l'ID progettoGoogle Cloud del tuo progettoPROJECT_NUMBER
: il Google 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.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.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.gserviceaccount.com' \ --role='roles/compute.networkUser'
Sostituisci quanto segue:
HOST_PROJECT_ID
: l'ID del progetto host in cui si trova la reteVPC condivisoaPROJECT_NUMBER
: il numero univoco del progetto in cui importi o esporti le immagini
Leggi le norme esistenti 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 il criterio con un editor di testo.
Ad esempio, per concedere i ruoli richiesti a
serviceAccount:12345@cloudbuild.gserviceaccount.com
, aggiungi il seguente binding al criterio:{ { "role":"roles/compute.admin", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } { "roles":"roles/iam.serviceAccountUser", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } { "roles":"roles/iam.serviceAccountTokenCreator", "member":[ "serviceAccount:12345@cloudbuild.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.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 il criterio IAM aggiornato del passaggio precedente.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- 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 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 spazio di archiviazione Compute
- Cloud Storage > Storage Object Viewer
- Cloud Storage > Amministratore oggetti Storage
Salva le modifiche.
Concedi il ruolo
roles/compute.storageAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.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.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.gserviceaccount.com' \ --role='roles/storage.objectAdmin'
Leggi le norme esistenti 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 il criterio con un editor di testo.
Ad esempio, per concedere i ruoli richiesti a
serviceAccount:12345-compute@developer.gserviceaccount.com
per importare un'immagine, aggiungi il seguente binding al criterio:{ { "role":"roles/compute.storageAdmin", "member":[ "serviceAccount:12345-compute@developer.gserviceaccount.com" ] } { "roles":"roles/storage.objectViewer", "member":[ "serviceAccount:12345-compute@developer.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 il criterio IAM aggiornato del passaggio precedente.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Importazione di dischi virtuali con service account personalizzati
- Importazione di appliance virtuali con service account personalizzati
- Importazione di immagini macchina da appliance virtuali con account di servizio personalizzati
- Esportazione di immagini personalizzate con service account personalizzati
- 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
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.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google 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, consulta Concedere i ruoli richiesti al tuo account e Service account Compute Engine.
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:
Concedi i ruoli richiesti al tuo account utente
Per importare o esportare immagini, il tuo account utente richiede i seguenti ruoli:
Console
gcloud
Nei passaggi seguenti, utilizzerai il
gcloud projects add-iam-policy-binding
comando per concedere i ruoli richiesti a livello di progetto.REST
Concedi i ruoli richiesti al account di servizio Cloud Build
Quando utilizzi la console Google 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 al service account Cloud Build.
Tuttavia, puoi concedere manualmente questi ruoli per assicurarti che le autorizzazioni richieste siano effettive:
Console
gcloud
Nei passaggi seguenti, utilizzerai il
gcloud projects add-iam-policy-binding
comando per concedere i ruoli richiesti a livello di progetto.REST
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 Google Cloud o gcloud CLI per importare o esportare immagini per la prima volta, lo strumento tenta di concedere i ruoli richiesti all'account di servizio Compute Engine predefinito.
A seconda della configurazione della policy dell'organizzazione, al account di servizio predefinito potrebbe essere concesso automaticamente il ruolo Editor nel tuo progetto. Ti consigliamo vivamente di disattivare la concessione automatica dei ruoli applicando il vincolo
iam.automaticIamGrantsForDefaultServiceAccounts
del criterio dell'organizzazione. Se hai creato la tua organizzazione dopo il 3 maggio 2024, questo vincolo viene applicato per impostazione predefinita.Se disattivi la concessione automatica dei ruoli, devi decidere quali ruoli concedere agli account di servizio predefiniti e poi concederli personalmente.
Se l'account di servizio predefinito dispone già del ruolo Editor, ti consigliamo di sostituirlo con ruoli meno permissivi.Per modificare in modo sicuro i ruoli dell'account di servizio, utilizza Policy Simulator per visualizzare l'impatto della modifica, quindi concedi e revoca i ruoli appropriati.
Il account di servizio Compute Engine deve avere i seguenti ruoli:
Console
gcloud
Nei passaggi seguenti, utilizzerai il
gcloud projects add-iam-policy-binding
comando per concedere i ruoli richiesti a livello di progetto.REST
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 account di servizio Compute Engine personalizzato, consulta le seguenti risorse:Passaggi successivi
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-07-11 UTC.
-