Si tiene Amazon Machine Images (AMI) o una imagen de disco virtual (VMDK o VHD) almacenada en un depósito S3 en Amazon Web Services (AWS), puede usar la CLI de Google Cloud para importar estas imágenes a Google Cloud.
Alternativamente, puede importar una imagen siguiendo las instrucciones para Importar manualmente discos de arranque .
Para obtener una lista completa de opciones de importación, consulte Elegir una ruta de migración .
Antes de comenzar
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
Descripción general de la importación de imágenes desde AWS
El proceso para importar una imagen de AWS a Compute Engine es el siguiente:
Desde su cuenta de AWS, cree un usuario de IAM que tenga los permisos necesarios para realizar la exportación.
- Para imágenes AMI, consulte Creación de un usuario de AWS IAM para la exportación de AMI .
- Para imágenes de discos virtuales, consulte Creación de un usuario de AWS IAM para exportar imágenes de discos virtuales .
Desde su cuenta de AWS, establezca y vea los ajustes de configuración .
Desde su cuenta de AWS, utilizando el usuario de IAM creado en el paso anterior, genere credenciales temporales que pueda utilizar la CLI de Google Cloud.
En Google Cloud, importe la imagen mediante la CLI de Google Cloud. La CLI de Google Cloud completa los siguientes pasos:
- Importa la imagen de AWS a Compute Engine.
- Agrega la imagen a la lista de imágenes disponibles en su proyecto especificado en Compute Engine.
Limitaciones y restricciones
- Revise la documentación sobre consideraciones de exportación de AWS.
- Revise la documentación sobre limitaciones de exportación de AWS.
- No puede importar imágenes Arm64 utilizando la herramienta de importación de imágenes. Para importar imágenes Arm64, siga las instrucciones paso a paso como se describe en Importar manualmente discos de arranque .
Crear un usuario de AWS IAM
Porque puede que no sea una buena práctica generar credenciales utilizando su cuenta de usuario raíz de AWS. Por razones de seguridad, Google recomienda crear uno o más usuarios de IAM y proporcionarles 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 desea exportar desde AWS.
Cree un usuario de AWS IAM para exportar AMI
Para crear este usuario, consulte crear un usuario de IAM en su cuenta de AWS .
Este usuario debe tener los siguientes permisos requeridos y rol de servicio:
Cree un usuario de AWS IAM para exportar imágenes de discos virtuales
Para crear este usuario, consulte crear un usuario de IAM en su cuenta de AWS .
Los permisos mínimos requeridos por este usuario se describen en la siguiente política JSON
IAM. Reemplace IMAGE_FILE_PATH
con la ruta al archivo de imagen que desea importar.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": ["arn:aws:s3:::IMAGE_FILE_PATH"] }, ] }
Configurar y ver los ajustes de configuración
Después de crear el usuario de IAM, debe configurar y configurar su entorno.
Para configurar y ver sus ajustes de configuración, ejecute el siguiente comando:
aws configure
Para obtener más información sobre este comando, consulte Establecer y ver ajustes de configuración .
Generar credenciales temporales
Después de crear y configurar el usuario de IAM, debe crear una credencial temporal que pueda usar el comando gcloud compute images import
.
Esta credencial de usuario consta de 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 AWS IAM debe generarse a partir de un usuario de IAM. El usuario de IAM seleccionado debe tener todos los permisos necesarios.
Para generar las credenciales temporales, debe utilizar la herramienta de línea de comandos de AWS o puede generar las credenciales mediante programación. Para instalar la línea de comandos de AWS, consulte Instalación de la AWS CLI versión 2 .
Por ejemplo, el siguiente comando genera una credencial que caduca en 3600 segundos. Asegúrese de especificar suficiente tiempo para importar su imagen a Google Cloud.
aws sts get-session-token --duration-seconds 3600
Para obtener más información sobre cómo generar credenciales temporales, consulte Uso de credenciales temporales con recursos de AWS .
Importar imágenes a Compute Engine
Después de haber creado un usuario de AWS IAM y generado las credenciales de usuario temporales , ahora puede importar su imagen a Compute Engine.
Importar una AMI desde AWS
Configure un depósito de AWS S3 . Este depósito se utiliza como ubicación de almacenamiento temporal desde la cual la CLI de Google Cloud puede exportar la AMI. La CLI de Google Cloud elimina la AMI de este depósito tan pronto como la importación a Compute Engine se completa correctamente.
Este depósito debe estar en la misma región que la AMI.
Importe la AMI. Para importar una AMI desde AWS, use 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
Reemplace lo siguiente:
-
IMAGE_NAME
: nombre de la imagen AMI a crear. -
AWS_REGION
: región de AWS de la imagen que desea importar. -
AWS_ACCESS_KEY_ID
: ID de clave de acceso para una credencial temporal de AWS. Este ID debe generarse 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 debe generarse 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 AMI de AWS de la imagen a importar. -
AWS_AMI_EXPORT_LOCATION
: ubicación del depósito de AWS S3 desde donde desea exportar la imagen. Este depósito debe estar en la misma región que la AMI. OS
: sistema operativo de la imagen del disco que se está importando.
Ejemplo
Por ejemplo, para importar una imagen AMI que tiene el ID
ami-04d75016789164863
de su depósito S3ami-test-bucket
y nombrarlamy-ami-test-image
, su comando podría 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
-
Importar una imagen de disco virtual desde AWS
Para importar una imagen de disco virtual desde AWS, use 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
Reemplace lo siguiente:
-
IMAGE_NAME
: nombre de la imagen de disco a crear. -
AWS_REGION
: región de AWS de la imagen que desea importar. -
AWS_ACCESS_KEY_ID
: ID de clave de acceso para una credencial temporal de AWS. Este ID debe generarse 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 debe generarse 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 del recurso S3 del archivo de imagen del disco virtual que desea importar. OS
: sistema operativo de la imagen del disco que se está importando.
Ejemplo
Por ejemplo, para importar un disco virtual ubuntu1804.vmdk
desde su depósito S3 image-test-bucket
y nombrarlo my-test-image
, su comando podría 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?
- Cree una nueva instancia de VM que utilice su imagen de arranque.
- Comparta su imagen entre proyectos.