Images aus AWS importieren

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

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

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

Hinweis

Aus AWS importieren

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 vom gcloud-Befehlszeilentool verwendet werden können.

  4. Importieren Sie das Image in Google Cloud mit dem gcloud-Befehlszeilentool. Mit dem gcloud-Befehlszeilentool werden die folgenden Schritte ausgeführt:

    • 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

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 festlegen und aufrufen

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 festzulegen und abzurufen:

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, aus dem das gcloud-Befehlszeilentool das AMI exportieren kann. Das gcloud-Befehlszeilentool löscht das AMI aus diesem Bucket, sobald der Import in Compute Engine abgeschlossen ist.

    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 beta compute images import:

    gcloud beta 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 Ihr Befehl so aus:

    gcloud beta 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 beta compute images import:

gcloud beta 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 beta 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