Questo documento descrive i prerequisiti per l'importazione e l'esportazione delle immagini su Compute Engine.
Puoi condividere istanze di macchine virtuali (VM), file di dischi virtuali e macchine di immagini da altri ambienti cloud o dal tuo ambiente on-premise importare ed esportare immagini da Cloud Storage. Il seguente elenco di controllo riassume i requisiti che devi soddisfare prima di importare ed esportare le immagini:
- Configurazione dell'accesso a un bucket Cloud Storage
- Concedi i ruoli richiesti al tuo account utente
- Concedi i ruoli richiesti all'account di servizio Cloud Build
- Concedi i ruoli richiesti all'account di servizio Compute Engine
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
Autenticazione è
Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione
Compute Engine come segue.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Se esporti un'immagine, lo strumento di esportazione carica l'immagine nel nel bucket Cloud Storage.
Se importi un'immagine, devi prima caricarla nel nel bucket Cloud Storage. Lo strumento di importazione scarica il file dal bucket Cloud Storage a Compute Engine, quindi lo strumento crea un'immagine in Compute Engine da quel file disco.
- Account utente. L'account da cui stai eseguendo i comandi di importazione ed esportazione.
- Account di servizio Cloud Build. Un'istanza di Cloud Build predefinita creato quando lo strumento di importazione o esportazione attiva l'API Cloud Build.
- Account di servizio Compute Engine. Un valore predefinito o personalizzato Account di servizio Compute Engine richiesto per l'importazione flusso di lavoro per l'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 sezione IAM e alla pagina Amministrazione progetto o organizzazione.
Individua il tuo account e fai clic su
Modifica.Nell'elenco Seleziona un ruolo, seleziona i ruoli seguenti:
- 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
: il ID progetto Google Cloud 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'
Leggi il criterio esistente con il metodo
getIamPolicy
della risorsa. Per 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 la seguente associazione 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 il criterio aggiornato, utilizza il metodo
setIamPolicy
.Ad esempio, per impostare un criterio a livello di progetto, utilizza il metodo
project.setIamPolicy
. Nel il corpo della richiesta, fornisci il criterio IAM aggiornato dal passaggio precedente.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Ruolo Creatore token account di servizio
(
roles/iam.serviceAccountTokenCreator
) - Ruolo Utente account di servizio
(
roles/iam.serviceAccountUser
) - Ruolo Amministratore Compute (
roles/compute.admin
)Da evitare concedendo il ruolo Amministratore Compute, puoi crea un ruolo personalizzato con le seguenti istanze di Compute Engine: le autorizzazioni IAM e concedirle ai Account di servizio Cloud Build:
- Ruolo Utente di rete Compute (
roles/compute.networkUser
)Questo ruolo è obbligatorio solo quando importi o esporti immagini che utilizzano VPC condiviso.
Nel progetto VPC condiviso, concedi all'utente di rete Compute il ruolo all'account di servizio Cloud Build che si trova progetto in cui importi o esporti le immagini.
Dopo aver abilitato l'API Cloud Build, vai alla sezione IAM e Amministratore del progetto o dell'organizzazione.
Individua l'account di servizio Cloud Build e fai clic su
Modifica.Se i ruoli richiesti non sono elencati, segui questi passaggi:
- Fai clic su Aggiungi un altro ruolo.
Nell'elenco Seleziona un ruolo, scegli i ruoli che vuoi da aggiungere:
- Account di servizio > Creatore token account di servizio
- Account di servizio > Utente account di servizio
Compute Engine > Amministratore Compute
In alternativa, puoi selezionare il ruolo Personalizzato. Consulta Autorizzazioni richieste per il ruolo personalizzato precedentemente in questo documento.
Fai clic su Salva per salvare le modifiche.
(Facoltativo) Se importi o esporti immagini che utilizzano VPC condiviso, seleziona il ruolo Utente di rete Compute nella Progetto VPC condiviso:
- Dal selettore progetti nella parte superiore della console, seleziona Progetto host VPC condiviso.
- Nella piattaforma IAM e Amministrazione, fai clic su Concedi l'accesso.
- Nel campo Nuove entità, inserisci l'indirizzo email
Account di servizio Cloud Build:
SostituisciPROJECT_NUMBER@cloudbuild.gserviceaccount.com'
PROJECT_NUMBER
con il valore del progetto in cui importi o esporti le immagini. - Nell'elenco Seleziona un ruolo, seleziona il ruolo Compute Engine > Utente rete Compute.
- Fai clic su Salva per salvare le modifiche.
Concedi il ruolo
roles/compute.admin
all'account di servizio Cloud Build. Per evitare di concedere il ruoloroles/compute.admin
, puoi creare una richiesta con le autorizzazioni necessarie e assegnarlo all'utente Account di servizio Cloud Build. Consulta la sezione Autorizzazioni richieste per il ruolo personalizzato in 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
: il ID progetto Google Cloud per il tuo progettoPROJECT_NUMBER
: il Numero di progetto Google Cloud per il 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 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 il VPC condivisoPROJECT_NUMBER
: il numero univoco del progetto in cui importi o esporti immagini
Leggi il criterio esistente con il metodo
getIamPolicy
della risorsa. Per per i progetti, utilizza il metodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Sostituisci
PROJECT_ID
con il progetto ID, 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
serviceAccount:12345@cloudbuild.gserviceaccount.com
, aggiungi quanto segue vincolanti 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 concedi quel ruolo a l'account di servizio Cloud Build. Consulta la sezione Autorizzazioni richieste per il ruolo personalizzato in questo documento.(Facoltativo) Se esporti o importi immagini che utilizzano 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 la seguente associazione IAM al servizio Cloud Build :
{ { "roles":"roles/compute.networkUser", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } }
Per scrivere il criterio aggiornato, utilizza il metodo
setIamPolicy
.Ad esempio, per impostare un criterio a livello di progetto, utilizza
project.setIamPolicy
gcloud. Nel il corpo della richiesta, fornisci il criterio IAM aggiornato dal passaggio precedente.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Ruolo Amministratore Compute Storage
(
roles/compute.storageAdmin
): obbligatorio sia per l'esportazione che per Importazione di immagini VM - Ruolo Visualizzatore oggetti Storage
(
roles/storage.objectViewer
): obbligatorio per importare immagini VM - Ruolo Amministratore oggetti Storage
(
roles/storage.objectAdmin
): obbligatorio per l'esportazione delle immagini VM Vai alla sezione IAM e alla pagina Amministrazione progetto o organizzazione.
Individua l'account di servizio Compute Engine e fai clic su
. Modifica:Nell'elenco Seleziona un ruolo, seleziona i ruoli seguenti:
- Compute Engine > Amministratore Compute Storage
- Cloud Storage > Visualizzatore oggetti Storage
- 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 il criterio 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 il progetto ID, 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
serviceAccount:12345-compute@developer.gserviceaccount.com
per importando un'immagine, aggiungi la seguente associazione 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 il criterio aggiornato, utilizza il metodo
setIamPolicy
.Ad esempio, per impostare un criterio a livello di progetto, utilizza il metodo
project.setIamPolicy
. Nel il corpo della richiesta, fornisci il criterio IAM aggiornato dal passaggio precedente.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Importazione di dischi virtuali con account di servizio personalizzati
- Importazione di appliance virtuali con account di servizio personalizzati
- Importazione di immagini macchina da appliance virtuali con account di servizio personalizzati
- Esportazione di immagini personalizzate con account di servizio personalizzati
- Esporta le 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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Configura 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 bucket Cloud Storage, consulta Concessione richiesta ruoli al tuo account e servizio Compute Engine .
Concedi i ruoli IAM richiesti
Per l'esecuzione dello strumento di importazione ed esportazione di immagini VM sono necessari i seguenti account dell'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 successivi, utilizzerai
gcloud projects add-iam-policy-binding
comando per concedere ruoli richiesti a livello di progetto.REST
Concedi i ruoli richiesti all'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 all'account di servizio Cloud Build.
Tuttavia, puoi concedere manualmente questi ruoli per assicurarti che le risorse richieste sono attualmente attive:
Console
gcloud
Nei passaggi successivi, utilizzerai
gcloud projects add-iam-policy-binding
comando per concedere ruoli richiesti a livello di progetto.REST
Per ulteriori informazioni sulla gestione dell'accesso alle risorse, consulta Concessione, modifica e la revoca dell'accesso alle risorse.
Concedi i ruoli richiesti all'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 ruoli all'account di servizio Compute Engine predefinito.
A seconda della configurazione dei criteri dell'organizzazione, l'account di servizio predefinito potrebbe automaticamente il ruolo Editor progetto. Ti consigliamo vivamente di disabilitare la concessione automatica del ruolo entro il giorno applicazione del criterio dell'organizzazione
iam.automaticIamGrantsForDefaultServiceAccounts
di blocco. Se hai creato la tua organizzazione dopo il 3 maggio 2024, viene applicato per impostazione predefinita.Se disabiliti la concessione automatica del ruolo, devi decidere quali ruoli concedere a quelli predefiniti account di servizio e poi concedi ruoli.
Se l'account di servizio predefinito ha già il ruolo Editor, ti consigliamo di sostituire il valore Ruolo Editor con ruoli meno permissivi. Per modificare in modo sicuro i ruoli dell'account di servizio, utilizza il Simulatore di criteri per vedere l'impatto dei la modifica e quindi concedere e revocare ruoli appropriati.
Il tuo account di servizio Compute Engine deve avere i ruoli seguenti:
Console
gcloud
Nei passaggi successivi, utilizzerai
gcloud projects add-iam-policy-binding
comando per concedere ruoli richiesti a livello di progetto.REST
Se non vuoi utilizzare l'account di servizio Compute Engine predefinito, puoi specificare un account di servizio gestito dall'utente utilizzando il flag
--compute-service-account
nel file di importazione ed esportazione digcloud
tramite comandi SQL. Per ulteriori informazioni sull'utilizzo dell'account 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 2024-09-12 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -