Si tienes imágenes de máquina de Amazon (AMI) o una imagen de disco virtual (como VMDK y VHD) almacenadas en un bucket de S3 en Amazon Web Services (AWS), puedes usar Google Cloud CLI para importar estas imágenes en Google Cloud.
Como alternativa, puedes importar una imagen si sigues las instrucciones para importar discos de arranque de forma manual.
Para obtener una lista completa de las opciones de importación, consulta Elige una ruta de migración.
Antes de comenzar
-
Configura la autenticación si aún no lo hiciste.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Descripción general de la importación de imágenes desde AWS
El proceso para importar una imagen desde AWS hacia Compute Engine es el siguiente:
Desde tu cuenta de AWS, crea un usuario de IAM que tenga los permisos necesarios para realizar la exportación.
- En el caso de las imágenes AMI, consulta Crea un usuario IAM de AWS para la exportación de AMI.
- En el caso de las imágenes de discos virtuales, consulta Crea un usuario de IAM de AWS para la exportación de imágenes de discos virtuales.
Desde tu cuenta de AWS, establece y consulta los ajustes de configuración.
En la cuenta de AWS, mediante el usuario de IAM creado en el paso anterior, genera credenciales temporales que puede usar Google Cloud CLI.
En Google Cloud, importa la imagen mediante Google Cloud CLI. Google Cloud CLI completa los siguientes pasos:
- Importa la imagen desde AWS hacia Compute Engine.
- Agrega la imagen a la lista de imágenes disponibles en tu proyecto especificado en Compute Engine.
Limitaciones y restricciones
- Revisa la documentación sobre consideraciones de exportación de AWS.
- Revisa la documentación de limitaciones de exportación de AWS.
- No puedes importar imágenes de Arm64 con la herramienta de importación de imágenes. Para importar imágenes de ARM64, sigue las instrucciones paso a paso que se describen en Importa discos de arranque de forma manual.
Crea un usuario IAM de AWS
Dado que es posible que no sea una práctica recomendada generar credenciales mediante tu cuenta de usuario raíz de AWS, por motivos de seguridad, Google recomienda que crees uno o más usuarios de IAM y les proporciones los permisos mínimos necesarios para exportar una AMI o un disco virtual desde AWS.
Los permisos mínimos requeridos para el usuario de IAM dependen del tipo de imagen (AMI o imagen de disco virtual) que deseas exportar desde AWS.
Crea un usuario de IAM de AWS para la exportación de AMI
Para crear este usuario, consulta crea un usuario de IAM en tu cuenta de AWS.
Este usuario debe tener los siguientes permisos necesarios y la siguiente función de servicio:
Crea un usuario de IAM de AWS para exportar imágenes de disco virtual
Para crear este usuario, consulta crea un usuario de IAM en tu cuenta de AWS.
Los permisos mínimos que requiere este usuario se describen en la siguiente JSON
política de IAM. Reemplaza IMAGE_FILE_PATH
con la ruta de acceso al archivo de imagen que deseas importar.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": ["arn:aws:s3:::IMAGE_FILE_PATH"] }, ] }
Establece y visualiza la configuración
Después de crear el usuario de IAM, debes configurar tu entorno.
Para ver y ajustar la configuración, ejecuta el siguiente comando:
aws configure
Para obtener más información sobre este comando, consulta Establece y visualiza la configuración.
Genera credenciales temporales
Después de crear y configurar el usuario de IAM, debes crear una credencial temporal que pueda usar el comando gcloud compute images import
.
Esta credencial de usuario contiene lo siguiente:
- Un ID de clave de acceso:
aws-access-key-id
- Una clave de acceso secreta:
aws-secret-access-key
- Un token de sesión:
aws-session-token
Esta credencial de usuario temporal de IAM de AWS se debe generar desde un usuario de IAM. El usuario de IAM seleccionado debe tener todos los permisos necesarios.
Para generar las credenciales temporales, debes usar la herramienta de línea de comandos de AWS o puedes generar las credenciales de manera programática. Para instalar la línea de comandos de AWS, consulta Instala la versión 2 de la CLI de AWS.
Por ejemplo, el siguiente comando genera una credencial que vence en 3,600 segundos. Asegúrate de especificar el tiempo suficiente para importar la imagen a Google Cloud.
aws sts get-session-token --duration-seconds 3600
Para obtener más información sobre cómo generar credenciales temporales, consulta Usa credenciales temporales con recursos de AWS.
Importar imágenes a Compute Engine
Después de crear un usuario de IAM de AWS y generar las credenciales de usuario temporales, podrás importar tu imagen a Compute Engine.
Importa una AMI desde AWS
Configura un bucket de AWS S3. Este bucket se usa como una ubicación de almacenamiento temporal desde la que Google Cloud CLI puede exportar la AMI. Google Cloud CLI borra la AMI de este bucket en cuanto la importación a Compute Engine se complete de forma correcta.
Este bucket debe estar en la misma región que la AMI.
Importa la AMI. Para importar una AMI desde AWS, usa el 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
Reemplaza lo siguiente:
IMAGE_NAME
: nombre de la imagen AMI que se creará.AWS_REGION
: región de AWS de la imagen que deseas importar.AWS_ACCESS_KEY_ID
: ID de clave de acceso para una credencial temporal de AWS. Este ID se debe generar mediante el servicio de token de seguridad de AWS.AWS_SECRET_ACCESS_KEY
: clave de acceso secreta para una credencial temporal de AWS. Esta clave se debe generar mediante el servicio de token de seguridad de AWS.AWS_SESSION_TOKEN
: token de sesión para una credencial temporal de AWS. Este token de sesión debe generarse mediante el servicio de token de seguridad de AWS.AWS_AMI_ID
: ID de la AMI de AWS de la imagen que se importará.AWS_AMI_EXPORT_LOCATION
: ubicación del bucket de S3 de AWS desde la que deseas exportar la imagen. Este bucket debe estar en la misma región que la AMI.OS
: sistema operativo de la imagen de disco que se importará.
Ejemplo
Por ejemplo, para importar una imagen AMI que tiene el ID
ami-04d75016789164863
desde tu bucket S3ami-test-bucket
y asignarle el nombremy-ami-test-image
, tu comando puede parecerse al siguiente: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 una imagen de disco virtual desde AWS
Para importar una imagen de disco virtual desde AWS, usa el 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
Reemplaza lo siguiente:
IMAGE_NAME
: nombre de la imagen de disco que se creará.AWS_REGION
: región de AWS de la imagen que deseas importar.AWS_ACCESS_KEY_ID
: ID de clave de acceso para una credencial temporal de AWS. Este ID se debe generar mediante el servicio de token de seguridad de AWS.AWS_SECRET_ACCESS_KEY
: clave de acceso secreta para una credencial temporal de AWS. Esta clave se debe generar mediante el servicio de token de seguridad de AWS.AWS_SESSION_TOKEN
: token de sesión para una credencial temporal de AWS. Este token de sesión debe generarse mediante el servicio de token de seguridad de AWS.DISK_IMAGE_FILE_PATH
: ruta de acceso al recurso S3 del archivo de imagen de disco virtual que deseas importar.OS
: sistema operativo de la imagen de disco que se importará.
Ejemplo
Por ejemplo, para importar un disco virtual ubuntu1804.vmdk
desde tu bucket S3 image-test-bucket
y llamarlo my-test-image
, tu comando puede parecerse al siguiente:
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
¿Qué sigue?
- Crea una nueva instancia de VM que use tu imagen que se puede iniciar.
- Comparte tu imagen entre proyectos.