Importa immagini da AWS

Se hai Amazon Machine Image (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 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 è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Set a default region and zone.

Panoramica dell'importazione delle immagini da AWS

Il processo per importare un'immagine da AWS a Compute Engine è il seguente:

  1. Dal tuo account AWS, crea un utente IAM che disponga delle autorizzazioni necessarie per eseguire l'esportazione.

  2. Dal tuo account AWS, imposta e visualizza le impostazioni di configurazione.

  3. Dal tuo account AWS, utilizzando l'utente IAM creato nel passaggio precedente, genera credenziali temporanee che possono essere utilizzate da Google Cloud CLI.

  4. 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

Crea un utente AWS IAM

Poiché 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 disco AMI o virtuale da AWS.

Le autorizzazioni minime richieste per l'utente IAM dipendono dal tipo di immagine (AMI o immagine disco virtuale) che vuoi esportare da AWS.

Crea un utente AWS IAM per l'esportazione AMI

Per creare questo utente, consulta Creare un utente IAM nel tuo account AWS.

Questo utente deve disporre delle autorizzazioni e del ruolo di servizio seguenti richiesti:

Crea un utente AWS IAM per l'esportazione delle immagini del disco virtuale

Per creare questo utente, consulta Creare un utente IAM nel tuo account AWS.

Le autorizzazioni minime richieste da questo utente sono descritte nel seguente criterio IAM JSON. 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"]
    },
  ]
}

Imposta e visualizza le impostazioni di configurazione

Dopo aver creato l'utente IAM, devi impostare e configurare il tuo ambiente.

Per impostare e visualizzare le impostazioni di configurazione, esegui questo comando:

aws configure

Per maggiori informazioni su questo comando, consulta Impostare e visualizzare le impostazioni di configurazione.

Genera credenziali temporanee

Dopo aver creato e configurato l'utente IAM, devi creare una credenziali temporanea che può essere utilizzata dal comando gcloud compute images import.

Questa credenziale utente è costituita da quanto segue:

  • 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 di AWS oppure puoi generarle in modo programmatico. Per installare la riga di comando di AWS, consulta Installazione di AWS CLI versione 2.

Ad esempio, il comando seguente genera una credenziale che scade dopo 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 la pagina relativa all'utilizzo di credenziali temporanee con le risorse AWS.

Importa immagini in Compute Engine

Dopo aver creato un utente AWS IAM e generato le credenziali utente temporanee, puoi importare l'immagine in Compute Engine.

Importa un'AMI da AWS

  1. Configura un bucket AWS S3. Questo bucket viene utilizzato come posizione di archiviazione temporanea da cui Google Cloud CLI può esportare l'AMI. Google Cloud CLI elimina l'AMI da questo bucket non appena l'importazione in Compute Engine viene completata correttamente.

    Questo bucket deve trovarsi nella stessa regione dell'AMI.

  2. 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: nome dell'immagine AMI da creare.
    • AWS_REGION: la regione AWS dell'immagine che vuoi importare.
    • AWS_ACCESS_KEY_ID: ID chiave di accesso per una credenziale AWS temporanea. Questo ID deve essere generato utilizzando AWS Security Token Service.
    • AWS_SECRET_ACCESS_KEY: chiave di accesso secret per una credenziali AWS temporanea. Questa chiave deve essere generata utilizzando AWS Security Token Service.
    • AWS_SESSION_TOKEN: token di sessione per una credenziale AWS temporanea. Questo token di sessione deve essere generato utilizzando il servizio AWS Security Token.
    • AWS_AMI_ID: ID AWS AMI dell'immagine da importare.
    • AWS_AMI_EXPORT_LOCATION: località del bucket AWS S3 da cui vuoi esportare l'immagine. Questo bucket deve trovarsi nella stessa regione dell'AMI.
    • OS: sistema operativo dell'immagine disco che stai importando.

    Esempio

    Ad esempio, per importare un'immagine AMI con ID ami-04d75016789164863 dal bucket S3 ami-test-bucket e denominarla my-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 disco virtuale da AWS

Per importare un'immagine 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: nome dell'immagine disco da creare.
  • AWS_REGION: la regione AWS dell'immagine che vuoi importare.
  • AWS_ACCESS_KEY_ID: ID chiave di accesso per una credenziale AWS temporanea. Questo ID deve essere generato utilizzando AWS Security Token Service.
  • AWS_SECRET_ACCESS_KEY: chiave di accesso secret per una credenziali AWS temporanea. Questa chiave deve essere generata utilizzando AWS Security Token Service.
  • AWS_SESSION_TOKEN: token di sessione per una credenziale AWS temporanea. Questo token di sessione deve essere generato utilizzando il servizio AWS Security Token.
  • DISK_IMAGE_FILE_PATH: percorso della risorsa S3 del file immagine del disco virtuale che vuoi importare.
  • OS: sistema operativo dell'immagine disco che stai importando.

Esempio

Ad esempio, per importare un disco virtuale ubuntu1804.vmdk dal bucket S3 image-test-bucket e denominarlo 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