Se hai immagini macchina Amazon (AMI) o un'immagine disco virtuale (VMDK o VHD) archiviata in un bucket S3 su Amazon Web Services (AWS), puoi utilizzare Google Cloud CLI per importare queste immagini in Google Cloud.
In alternativa, puoi importare un'immagine seguendo le istruzioni per l'importazione manuale dei dischi di avvio.
Per un elenco completo delle opzioni di importazione, vedi Scegliere un percorso di migrazione.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Panoramica dell'importazione di immagini da AWS
La procedura per importare un'immagine da AWS a Compute Engine è la seguente:
Nel tuo account AWS, crea un utente IAM con le autorizzazioni necessarie per eseguire l'esportazione.
- Per le immagini AMI, consulta Creare un utente AWS IAM per l'esportazione di AMI.
- Per le immagini dei dischi virtuali, consulta Creare un utente AWS IAM per l'esportazione di immagini dei dischi virtuali.
Nel tuo account AWS, imposta e visualizza le impostazioni di configurazione.
Nel tuo account AWS, utilizzando l'utente IAM creato nel passaggio precedente, genera le credenziali temporanee che possono essere utilizzate da Google Cloud CLI.
In Google Cloud, importa l'immagine utilizzando Google Cloud CLI. Google Cloud CLI completa i seguenti passaggi:
- Importa l'immagine da AWS a Compute Engine.
- Aggiunge l'immagine all'elenco delle immagini disponibili nel progetto specificato su Compute Engine.
Limitazioni e restrizioni
- Consulta la documentazione relativa alle considerazioni sull'esportazione di AWS.
- Consulta la documentazione relativa alle limitazioni di esportazione di AWS.
- Non puoi importare immagini Arm64 utilizzando lo strumento di importazione delle immagini. Per importare le immagini Arm64, segui le istruzioni dettagliate descritte in Importare manualmente i dischi di avvio.
Creare un utente AWS IAM
Perché potrebbe non essere una best practice generare le credenziali utilizzando il tuo account utente root AWS. Per motivi di sicurezza, Google consiglia di creare uno o più utenti IAM e di fornire loro le autorizzazioni minime necessarie per esportare un'AMI o un disco virtuale da AWS.
Le autorizzazioni minime richieste per l'utente IAM dipendono dal tipo di immagine (AMI o immagine del disco virtuale) che vuoi esportare da AWS.
Crea un utente AWS IAM per l'esportazione dell'AMI
Per creare questo utente, consulta Creare un utente IAM nel tuo account AWS.
Questo utente deve disporre delle seguenti autorizzazioni e del ruolo di servizio richiesti:
Crea un utente AWS IAM per l'esportazione di immagini disco virtuali
Per creare questo utente, consulta Creare un utente IAM nel tuo account AWS.
Le autorizzazioni minime richieste da questo utente sono descritte nel seguente
JSON
criterio IAM. Sostituisci IMAGE_FILE_PATH
con il percorso del file immagine da importare.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": ["arn:aws:s3:::IMAGE_FILE_PATH"] }, ] }
Configurare e visualizzare le impostazioni di configurazione
Dopo aver creato l'utente IAM, devi impostare e configurare il tuo ambiente.
Per configurare e visualizzare le impostazioni di configurazione, esegui il comando seguente:
aws configure
Per ulteriori informazioni su questo comando, consulta Impostare e visualizzare le impostazioni di configurazione.
Generare credenziali temporanee
Dopo aver creato e configurato l'utente IAM, devi creare una credenziale temporanea che possa essere utilizzata dal comando gcloud compute images import
.
Questa credenziale utente è costituita da quanto segue:
- Un ID chiave di accesso:
aws-access-key-id
- Una chiave di accesso segreta:
aws-secret-access-key
- Un token di sessione:
aws-session-token
Questa credenziale utente AWS IAM temporanea deve essere generata da un utente IAM. L'utente IAM selezionato deve disporre di tutte le autorizzazioni richieste.
Per generare le credenziali temporanee, devi utilizzare lo strumento a riga di comando AWS o puoi generarle tramite programmazione. Per installare l'interfaccia a riga di comando AWS, consulta Installazione della versione 2 dell'interfaccia a riga di comando AWS.
Ad esempio, il seguente comando genera una credenziale che scade tra 3600 secondi. Assicurati di specificare un tempo sufficiente per importare l'immagine in Google Cloud.
aws sts get-session-token --duration-seconds 3600
Per ulteriori informazioni sulla generazione di credenziali temporanee, consulta Utilizzare le credenziali temporanee con le risorse AWS.
Importa le immagini in Compute Engine
Dopo aver creato un utente AWS IAM e generato le credenziali utente temporanee, ora puoi importare l'immagine in Compute Engine.
Importa un'AMI da AWS
Configura un bucket AWS S3. Questo bucket viene utilizzato come posizione di archiviazione temporanea da cui Google Cloud CLI può esportare l'AMI. L'interfaccia a riga di comando Google Cloud elimina l'AMI da questo bucket non appena l'importazione in Compute Engine è completata correttamente.
Questo bucket deve trovarsi nella stessa regione dell'AMI.
Importa l'AMI. Per importare un'AMI da AWS, utilizza il comando
gcloud compute images import
:gcloud compute images import IMAGE_NAME \ --aws-region=AWS_REGION \ --aws-access-key-id=AWS_ACCESS_KEY_ID \ --aws-secret-access-key=AWS_SECRET_ACCESS_KEY \ --aws-session-token=AWS_SESSION_TOKEN \ --aws-ami-id=AWS_AMI_ID \ --aws-ami-export-location=AWS_AMI_EXPORT_LOCATION \ --os=OS
Sostituisci quanto segue:
IMAGE_NAME
: il nome dell'immagine AMI da creare.AWS_REGION
: regione AWS dell'immagine che vuoi importare.AWS_ACCESS_KEY_ID
: ID chiave di accesso per una credenza AWS provvisoria. Questo ID deve essere generato utilizzando il servizio token di sicurezza AWS.AWS_SECRET_ACCESS_KEY
: chiave di accesso segreta per una credenza AWS temporanea. Questa chiave deve essere generata utilizzando il servizio token di sicurezza AWS.AWS_SESSION_TOKEN
: token di sessione per una credenza AWS temporanea. Questo token sessione deve essere generato utilizzando il Servizio token di sicurezza AWS.AWS_AMI_ID
: l'ID AMI AWS dell'immagine da importare.AWS_AMI_EXPORT_LOCATION
: la posizione del bucket AWS S3 da cui vuoi esportare l'immagine. Questo bucket deve trovarsi nella stessa regione dell'AMI.OS
: sistema operativo dell'immagine del disco da importare.
Esempio
Ad esempio, per importare un'immagine AMI con l'ID
ami-04d75016789164863
dal tuo bucket S3ami-test-bucket
e assegnarle il nomemy-ami-test-image
, il comando potrebbe essere simile al seguente:gcloud compute images import my-ami-test-image \ --aws-region=us-east-2 \ --aws-access-key-id=ASIAXS3ZFH4O3WWGMMH5 \ --aws-secret-access-key=aW/uxvQD68A+hv3m5oQ4zFfaKiS+za+X/kRlBvx0 - \ --aws-session-token=IQoJb3JpZ2luX2VjEEQaCWPIEwL7Qi76PyEIfFyj88...== \ --aws-ami-id=ami-04d75016789164863 \ --aws-ami-export-location=s3://ami-test-bucket \ --os=ubuntu-1804
Importa un'immagine del disco virtuale da AWS
Per importare un'immagine del disco virtuale da AWS, utilizza il
comando gcloud compute images import
:
gcloud compute images import IMAGE_NAME \ --aws-region=AWS_REGION \ --aws-access-key-id=AWS_ACCESS_KEY_ID \ --aws-secret-access-key=AWS_SECRET_ACCESS_KEY \ --aws-session-token=AWS_SESSION_TOKEN \ --aws-source-ami-file-path=DISK_IMAGE_FILE_PATH \ --os=OS
Sostituisci quanto segue:
IMAGE_NAME
: il nome dell'immagine del disco da creare.AWS_REGION
: regione AWS dell'immagine che vuoi importare.AWS_ACCESS_KEY_ID
: ID chiave di accesso per una credenza AWS provvisoria. Questo ID deve essere generato utilizzando il servizio token di sicurezza AWS.AWS_SECRET_ACCESS_KEY
: chiave di accesso segreta per una credenza AWS temporanea. Questa chiave deve essere generata utilizzando il servizio token di sicurezza AWS.AWS_SESSION_TOKEN
: token di sessione per una credenziale AWS temporanea. Questo token di sessione deve essere generato utilizzando il Servizio token di sicurezza AWS.DISK_IMAGE_FILE_PATH
: il percorso della risorsa S3 del file immagine del disco virtuale che vuoi importare.`OS
: sistema operativo dell'immagine del disco da importare.
Esempio
Ad esempio, per importare un disco virtuale ubuntu1804.vmdk
dal tuo bucket S3
image-test-bucket
e assegnargli il nome my-test-image
, il comando potrebbe essere simile al seguente:
gcloud compute images import my-test-image \ --aws-region=us-east-2 \ --aws-access-key-id=ASIAXS3ZFH4O3WWGMMH5 \ --aws-secret-access-key=aW/uxvQD68A+hv3m5oQ4zFfaKiS+za+X/kRlBvx0 - \ --aws-session-token=IQoJb3JpZ2luX2VjEEQaCWPIEwL7Qi76PyEIfFyj88...== \ --aws-source-ami-file-path=s3://image-test-bucket/ubuntu1804.vmdk \ --os=ubuntu-1804
Passaggi successivi
- Crea una nuova istanza VM che utilizzi l'immagine di avvio.
- Condividi l'immagine tra i progetti.