Importer des images depuis AWS


Si vous stockez des images AMI (Amazon Machine Images) ou une image de disque virtuel (VMDK ou VHD) dans un bucket S3 sur Amazon Web Services (AWS), vous pouvez les importer dans Google Cloud à l'aide de Google Cloud CLI.

Vous pouvez également importer une image en suivant les instructions de la page Importer manuellement des disques de démarrage.

Pour obtenir la liste complète des options d'importation, consultez la page Choisir un chemin de migration.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.

Présentation de l'importation d'images depuis AWS

Le processus d'importation d'une image d'AWS vers Compute Engine est le suivant :

  1. Dans votre compte AWS, créez un utilisateur IAM disposant des autorisations nécessaires pour effectuer l'exportation.

  2. Dans votre compte AWS, définissez et affichez les paramètres de configuration.

  3. À partir de votre compte AWS, en utilisant l'utilisateur IAM créé à l'étape précédente, générez des identifiants temporaires pouvant être utilisés par Google Cloud CLI.

  4. Dans Google Cloud, importez l'image à l'aide de Google Cloud CLI. Google Cloud CLI effectue les étapes suivantes :

    • Il importe l'image depuis AWS vers Compute Engine.
    • Il ajoute l'image à la liste des images disponibles dans le projet spécifié sur Compute Engine.

Limites et restrictions

Créer un utilisateur AWS IAM

Il n'est pas recommandé de générer des identifiants à l'aide du compte utilisateur racine AWS. Pour des raisons de sécurité, Google vous recommande de créer un ou plusieurs utilisateurs IAM, et de leur accorder les autorisations minimales requises pour exporter une image AMI ou un disque virtuel depuis AWS.

Les autorisations minimales requises pour l'utilisateur IAM dépendent du type d'image (image AMI ou image de disque virtuel) que vous souhaitez exporter depuis AWS.

Créer un utilisateur IAM AWS pour exporter des images AMI

Pour créer cet utilisateur, consultez la page Création d'un utilisateur IAM dans votre compte AWS.

Cet utilisateur doit disposer des autorisations et du rôle de service suivants :

Créer un utilisateur IAM AWS pour exporter des images de disque virtuel

Pour créer cet utilisateur, consultez la page Création d'un utilisateur IAM dans votre compte AWS.

Les autorisations minimales requises par cet utilisateur sont décrites dans la stratégie IAM JSON suivante. Remplacez IMAGE_FILE_PATH par le chemin d'accès au fichier image que vous souhaitez importer.

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

Configurer et afficher les paramètres de configuration

Après avoir créé l'utilisateur IAM, vous devez configurer votre environnement.

Pour configurer et afficher vos paramètres de configuration, exécutez la commande suivante :

aws configure

Pour en savoir plus sur cette commande, consultez la page Définition et affichage des paramètres de configuration.

Générer des identifiants temporaires

Après avoir créé et configuré l'utilisateur IAM, vous devez créer un identifiant temporaire pouvant être utilisé par la commande gcloud compute images import.

Cet identifiant utilisateur comprend les éléments suivants :

  • Un ID de clé d'accès : aws-access-key-id
  • Une clé d'accès secrète : aws-secret-access-key
  • Un jeton de session : aws-session-token

L'identifiant temporaire de l'utilisateur IAM AWS doit être généré par un utilisateur IAM. L'utilisateur IAM choisi doit disposer de toutes les autorisations requises.

Pour générer les identifiants temporaires, vous devez utiliser l'outil de ligne de commande AWS. Sinon, vous pouvez les générer par programmation. Pour installer l'interface de ligne de commande AWS, consultez la page Installation de la version 2 de la CLI AWS.

Par exemple, la commande suivante génère un identifiant qui expire au bout de 3 600 secondes. Assurez-vous de spécifier suffisamment de temps pour importer votre image dans Google Cloud.

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

Pour en savoir plus sur la génération des identifiants temporaires, consultez la section Utilisation d'informations d'identification temporaires avec des ressources AWS.

Importer des images dans Compute Engine

Après avoir créé un utilisateur IAM AWS et généré ses identifiants temporaires, vous pouvez importer votre image dans Compute Engine.

Importer une image AMI depuis AWS

  1. Configurez un bucket AWS S3. Ce bucket sert d'emplacement de stockage temporaire à partir duquel Google Cloud CLI peut exporter l'AMI. Google Cloud CLI supprime l'AMI de ce bucket dès que l'importation dans Compute Engine est terminée.

    Ce bucket doit se trouver dans la même région que l'image AMI.

  2. Importez l'image AMI. Pour importer une image AMI à partir d'AWS, exécutez la commande 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
    

    Remplacez les éléments suivants :

    • IMAGE_NAME : nom de l'image AMI à créer.
    • AWS_REGION : région AWS de l'image que vous souhaitez importer.
    • AWS_ACCESS_KEY_ID : ID de clé d'accès de l'identifiant AWS temporaire. Cet ID doit être généré à l'aide d'AWS Security Token Service.
    • AWS_SECRET_ACCESS_KEY : clé d'accès secrète de l'identifiant AWS temporaire. Cette clé doit être générée à l'aide d'AWS Security Token Service.
    • AWS_SESSION_TOKEN : jeton de session pour l'identifiant AWS temporaire. Ce jeton de session doit être généré à l'aide d'AWS Security Token Service.
    • AWS_AMI_ID : ID AWS de l'image AMI à importer.
    • AWS_AMI_EXPORT_LOCATION : emplacement du bucket AWS S3 à partir duquel vous souhaitez exporter l'image. Ce bucket doit se trouver dans la même région que l'image AMI.
    • OS : système d'exploitation de l'image disque que vous importez.

    Exemple

    Par exemple, si vous souhaitez importer une image AMI dont l'ID est ami-04d75016789164863 depuis votre bucket S3 ami-test-bucket et la nommer my-ami-test-image, votre commande peut se présenter comme suit :

    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
    

Importer une image de disque virtuel depuis AWS

Pour importer une image de disque virtuel à partir d'AWS, exécutez la commande 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

Remplacez les éléments suivants :

  • IMAGE_NAME : nom de l'image disque à créer.
  • AWS_REGION : région AWS de l'image que vous souhaitez importer.
  • AWS_ACCESS_KEY_ID : ID de clé d'accès de l'identifiant AWS temporaire. Cet ID doit être généré à l'aide d'AWS Security Token Service.
  • AWS_SECRET_ACCESS_KEY : clé d'accès secrète de l'identifiant AWS temporaire. Cette clé doit être générée à l'aide d'AWS Security Token Service.
  • AWS_SESSION_TOKEN : jeton de session pour l'identifiant AWS temporaire. Ce jeton de session doit être généré à l'aide d'AWS Security Token Service.
  • DISK_IMAGE_FILE_PATH : chemin d'accès à la ressource S3 du fichier de l'image de disque virtuel que vous souhaitez importer.
  • OS : système d'exploitation de l'image disque que vous importez.

Exemple

Par exemple, si vous souhaitez importer un disque virtuel ubuntu1804.vmdk depuis votre bucket S3 image-test-bucket et le nommer my-test-image, votre commande peut se présenter comme suit :

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

Étapes suivantes