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 :
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- 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 :
Dans votre compte AWS, créez un utilisateur IAM disposant des autorisations nécessaires pour effectuer l'exportation.
- Pour les images AMI, consultez la section Créer un utilisateur IAM AWS pour exporter des images AMI.
- Pour les images de disque virtuel, consultez la page Créer un utilisateur IAM AWS pour exporter des images de disque virtuel.
Dans votre compte AWS, définissez et affichez les paramètres de configuration.
À 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.
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
- Consultez la documentation d'AWS sur les points à prendre en compte lors de l'exportation.
- Consultez la documentation d'AWS sur les limites liées à l'exportation.
- Vous ne pouvez pas importer d'images Arm64 à l'aide de l'outil d'importation d'image. Pour importer des images Arm64, suivez les instructions détaillées comme décrit dans la section Importer manuellement des disques de démarrage.
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
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.
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 S3ami-test-bucket
et la nommermy-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
- Créez une instance de VM qui utilise votre image amorçable.
- Partagez votre image entre plusieurs projets.