Images aus AWS importieren


Wenn Sie Amazon Machine Images (AMI) oder ein virtuelles Laufwerk-Image (VMDK oder VHD) in einem S3-Bucket in Amazon Web Services (AWS) gespeichert haben, können Sie die Google Cloud CLI zum Importieren dieser Images in Google Cloud verwenden.

Alternativ können Sie der Anleitung Boot-Laufwerke manuell importieren folgen, um ein Image zu importieren.

Eine vollständige Liste der Importoptionen finden Sie unter Migrationspfad auswählen.

Hinweise

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.
    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Legen Sie eine Standardregion und -zone fest.

Images aus AWS importieren – Übersicht

So importieren Sie ein Image aus AWS in Compute Engine:

  1. Erstellen Sie in Ihrem AWS-Konto einen IAM-Nutzer mit den erforderlichen Berechtigungen für den Export.

  2. Legen Sie in Ihrem AWS-Konto die Konfigurationseinstellungen fest und rufen Sie diese auf.

  3. Nutzen Sie den im vorherigen Schritt erstellten IAM-Nutzer zum Generieren von temporären Anmeldedaten, die von der Google Cloud CLI verwendet werden können.

  4. Importieren Sie das Image in Google Cloud mit der Google Cloud CLI. Die Google Cloud CLI führt die folgenden Schritte aus:

    • Importiert das Image aus AWS in Compute Engine.
    • Fügt das Image der Liste der verfügbaren Images in dem angegebenen Projekt in Compute Engine hinzu.

Limits und Einschränkungen

AWS IAM-Nutzer erstellen

Möglicherweise ist es keine Best Practice, Anmeldedaten mit Ihrem AWS-Root-Nutzerkonto zu generieren. Aus Sicherheitsgründen empfiehlt Google, einen oder mehrere IAM-Nutzer zu erstellen und ihnen die für den Export eines AMI oder virtuellen Laufwerks aus AWS erforderlichen Mindestberechtigungen zu gewähren.

Die für den IAM-Nutzer erforderlichen Mindestberechtigungen hängen vom Typ des Image (AMI oder virtuelles Laufwerk) ab, das Sie aus AWS exportieren möchten.

AWS IAM-Nutzer für AMI-Export erstellen

Informationen zum Erstellen dieses Nutzers finden Sie unter IAM-Nutzer in Ihrem AWS-Konto erstellen.

Dieser Nutzer muss die folgenden Berechtigungen und folgende Dienstrolle haben:

AWS IAM-Nutzer zum Exportieren von virtuellen Laufwerk-Images erstellen

Informationen zum Erstellen dieses Nutzers finden Sie unter IAM-Nutzer in Ihrem AWS-Konto erstellen.

Die für diesen Nutzer erforderlichen Mindestberechtigungen sind in der folgenden JSON-IAM-Richtlinie aufgeführt. Ersetzen Sie IMAGE_FILE_PATH durch den Pfad zur Image-Datei, die Sie importieren möchten.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": ["arn:aws:s3:::IMAGE_FILE_PATH"]
    },
  ]
}

Konfigurationseinstellungen einrichten und anzeigen

Nachdem Sie den IAM-Nutzer erstellt haben, müssen Sie Ihre Umgebung einrichten und konfigurieren.

Führen Sie den folgenden Befehl aus, um Ihre Konfigurationseinstellungen einzurichten und aufzurufen:

aws configure

Weitere Informationen zu diesem Befehl finden Sie unter Konfigurationseinstellungen festlegen und abrufen.

Temporäre Anmeldedaten generieren

Nachdem Sie den IAM-Nutzer erstellt und konfiguriert haben, müssen Sie temporäre Anmeldedaten erstellen, die vom Befehl gcloud compute images import verwendet werden können.

Diese Nutzeranmeldedaten bestehen aus folgenden Elementen:

  • Eine Zugriffsschlüssel-ID: aws-access-key-id
  • Ein geheimer Zugriffsschlüssel: aws-secret-access-key
  • Ein Sitzungstoken: aws-session-token

Diese temporären Anmeldedaten für AWS IAM-Nutzer müssen von einem IAM-Nutzer generiert werden. Der ausgewählte IAM-Nutzer benötigt alle erforderlichen Berechtigungen.

Zum Generieren der temporären Anmeldedaten müssen Sie das AWS-Befehlszeilentool verwenden oder die Anmeldedaten programmatisch generieren. Informationen zur Installation der AWS-Befehlszeile finden Sie unter AWS-Befehlszeile Version 2 installieren.

Der folgende Befehl generiert beispielsweise Anmeldedaten, die in 3.600 Sekunden ablaufen. Achten Sie darauf, dass ausreichend Zeit festgelegt wird, um das Image in Google Cloud zu importieren.

aws sts get-session-token --duration-seconds 3600

Weitere Informationen zum Erstellen temporärer Anmeldedaten finden Sie unter Temporäre Anmeldedaten mit AWS-Ressourcen verwenden.

Images in Compute Engine importieren

Nachdem Sie einen AWS-IAM-Nutzer erstellt und die temporären Nutzeranmeldedaten generiert haben, können Sie Ihr Image in Compute Engine importieren.

AMI aus AWS importieren

  1. Richten Sie einen AWS S3-Bucket ein. Dieser Bucket wird als temporärer Speicherort verwendet, von dem die Google Cloud CLI die AMI exportieren kann. Die Google Cloud CLI löscht die AMI aus diesem Bucket, sobald der Import in Compute Engine erfolgreich abgeschlossen wurde.

    Dieser Bucket muss sich in der Region des AMI befinden.

  2. Importieren Sie das AMI. Verwenden Sie zum Importieren eines AMI aus AWS den Befehl 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
    

    Dabei gilt:

    • IMAGE_NAME: Name des AMI-Image, das erstellt werden soll.
    • AWS_REGION: AWS-Region des Image, das Sie importieren möchten.
    • AWS_ACCESS_KEY_ID: Zugriffsschlüssel-ID für temporäre AWS-Anmeldedaten. Diese ID muss mit dem AWS Security Token Service generiert werden.
    • AWS_SECRET_ACCESS_KEY: geheimer Zugriffsschlüssel für temporäre AWS-Anmeldedaten. Dieser Schlüssel muss mit dem AWS Security Token Service generiert werden.
    • AWS_SESSION_TOKEN: Sitzungstoken für temporäre AWS-Anmeldedaten. Dieses Sitzungstoken muss mit dem AWS Security Token Service generiert werden.
    • AWS_AMI_ID: AWS-AMI-ID des zu importierenden Image.
    • AWS_AMI_EXPORT_LOCATION: Speicherort des AWS S3-Buckets, aus dem Sie das Image exportieren möchten. Dieser Bucket muss sich in der Region des AMI befinden.
    • OS: Betriebssystem des zu importierenden Laufwerk-Image.

    Beispiel

    Wenn Sie beispielsweise ein AMI-Image mit der ID ami-04d75016789164863 aus Ihrem S3-Bucket ami-test-bucket importieren und mit my-ami-test-image benennen möchten, sieht der Befehl so aus:

    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
    

Virtuelles Laufwerk-Image aus AWS importieren

Um ein virtuelles Laufwerk-Image aus AWS zu importieren, verwenden Sie diesen Befehl 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

Dabei gilt:

  • IMAGE_NAME: Name des zu erstellenden Laufwerk-Image.
  • AWS_REGION: AWS-Region des Image, das Sie importieren möchten.
  • AWS_ACCESS_KEY_ID: Zugriffsschlüssel-ID für temporäre AWS-Anmeldedaten. Diese ID muss mit dem AWS Security Token Service generiert werden.
  • AWS_SECRET_ACCESS_KEY: geheimer Zugriffsschlüssel für temporäre AWS-Anmeldedaten. Dieser Schlüssel muss mit dem AWS Security Token Service generiert werden.
  • AWS_SESSION_TOKEN: Sitzungstoken für temporäre AWS-Anmeldedaten. Dieses Sitzungstoken muss mit dem AWS Security Token Service generiert werden.
  • DISK_IMAGE_FILE_PATH: S3-Ressourcenpfad der virtuellen Laufwerk-Image-Datei, die Sie importieren möchten.
  • OS: Betriebssystem des zu importierenden Laufwerk-Image.

Beispiel

Wenn Sie beispielsweise ein virtuelles ubuntu1804.vmdk-Laufwerk aus Ihrem S3-Bucket image-test-bucket importieren und mit my-test-image benennen möchten, geben Sie folgenden Befehl ein:

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

Nächste Schritte