Se você tiver Amazon Machine Images (AMI) ou uma imagem de disco virtual (VMDK ou VHD) armazenada em um bucket S3 na Amazon Web Services (AWS), poderá usar a CLI do Google Cloud para importar essas imagens para Google Cloud.
Alternativamente, você pode importar uma imagem seguindo as instruções para Importar discos de inicialização manualmente .
Para obter uma lista completa de opções de importação, consulte Escolha um caminho de migração .
Antes de começar
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:
-
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.
-
Visão geral da importação de imagens da AWS
O processo para importar uma imagem da AWS para o Compute Engine é o seguinte:
Na sua conta da AWS, crie um usuário IAM que tenha as permissões necessárias para realizar a exportação.
- Para imagens AMI, consulte Criação de um usuário AWS IAM para exportação de AMI .
- Para imagens de disco virtual, consulte Criação de um usuário AWS IAM para exportação de imagem de disco virtual .
Na sua conta da AWS, defina e visualize as definições de configuração .
Na sua conta da AWS, usando o usuário IAM criado na etapa anterior, gere credenciais temporárias que podem ser usadas pela CLI do Google Cloud.
Em Google Cloud, importe a imagem usando a CLI do Google Cloud. A Google Cloud CLI conclui as seguintes etapas:
- Importa a imagem da AWS para o Compute Engine.
- Adiciona a imagem à lista de imagens disponíveis no projeto especificado no Compute Engine.
Limitações e restrições
- Revise a documentação de considerações de exportação da AWS.
- Revise a documentação de limitações de exportação da AWS.
- Você não pode importar imagens Arm64 usando a ferramenta de importação de imagens. Para importar imagens Arm64, siga as instruções passo a passo descritas em Importar discos de inicialização manualmente .
Crie um usuário AWS IAM
Porque pode não ser uma prática recomendada gerar credenciais usando sua conta de usuário root da AWS. Por motivos de segurança, o Google recomenda que você crie um ou mais usuários IAM e forneça a eles as permissões mínimas necessárias para exportar uma AMI ou disco virtual da AWS.
As permissões mínimas necessárias para o usuário do IAM dependem do tipo de imagem (AMI ou imagem de disco virtual) que você deseja exportar da AWS.
Crie um usuário AWS IAM para exportação de AMI
Para criar esse usuário, consulte criar um usuário IAM em sua conta da AWS .
Este usuário deve ter as seguintes permissões e funções de serviço necessárias:
Crie um usuário AWS IAM para exportação de imagem de disco virtual
Para criar esse usuário, consulte criar um usuário IAM em sua conta da AWS .
As permissões mínimas exigidas por esse usuário estão descritas na política JSON
IAM a seguir. Substitua IMAGE_FILE_PATH
pelo caminho do arquivo de imagem que você deseja importar.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": ["arn:aws:s3:::IMAGE_FILE_PATH"] }, ] }
Configurar e visualizar as definições de configuração
Depois de criar o usuário do IAM, você precisa definir e configurar seu ambiente.
Para definir e visualizar suas definições de configuração, execute o seguinte comando:
aws configure
Para obter mais informações sobre esse comando, consulte Definir e visualizar definições de configuração .
Gerar credenciais temporárias
Depois de criar e configurar o usuário do IAM, você precisa criar uma credencial temporária que possa ser usada pelo comando gcloud compute images import
.
Esta credencial de usuário consiste no seguinte:
- Um ID de chave de acesso:
aws-access-key-id
- Uma chave de acesso secreta:
aws-secret-access-key
- Um token de sessão:
aws-session-token
Essa credencial de usuário temporária do AWS IAM deve ser gerada a partir de um usuário do IAM. O usuário IAM selecionado deve ter todas as permissões necessárias.
Para gerar as credenciais temporárias, você deve usar a ferramenta de linha de comando da AWS ou pode gerar as credenciais programaticamente. Para instalar a linha de comando da AWS, consulte Instalação da AWS CLI versão 2 .
Por exemplo, o comando a seguir gera uma credencial que expira em 3.600 segundos. Certifique-se de especificar tempo suficiente para importar sua imagem para Google Cloud.
aws sts get-session-token --duration-seconds 3600
Para obter mais informações sobre como gerar credenciais temporárias, consulte Usar credenciais temporárias com recursos da AWS .
Importar imagens para o Compute Engine
Depois de criar um usuário AWS IAM e gerar as credenciais de usuário temporárias , você poderá importar sua imagem para o Compute Engine.
Importe uma AMI da AWS
Configure um bucket AWS S3 . Esse bucket é usado como local de armazenamento temporário do qual a CLI do Google Cloud pode exportar a AMI. A CLI do Google Cloud exclui a AMI desse bucket assim que a importação para o Compute Engine é concluída com êxito.
Esse bucket deve estar na mesma região que a AMI.
Importe a AMI. Para importar uma AMI da AWS, use o 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
Substitua o seguinte:
-
IMAGE_NAME
: nome da imagem AMI a ser criada. -
AWS_REGION
: região AWS da imagem que você deseja importar. -
AWS_ACCESS_KEY_ID
: ID da chave de acesso para uma credencial temporária da AWS. Esse ID deve ser gerado usando o AWS Security Token Service. -
AWS_SECRET_ACCESS_KEY
: chave de acesso secreta para uma credencial temporária da AWS. Essa chave deve ser gerada usando o AWS Security Token Service. -
AWS_SESSION_TOKEN
: token de sessão para uma credencial temporária da AWS. Esse token de sessão deve ser gerado usando o AWS Security Token Service. -
AWS_AMI_ID
: ID AWS AMI da imagem a ser importada. -
AWS_AMI_EXPORT_LOCATION
: local do bucket AWS S3 de onde você deseja exportar a imagem. Esse bucket deve estar na mesma região que a AMI. OS
: sistema operacional da imagem de disco que está sendo importada.
Exemplo
Por exemplo, para importar uma imagem AMI que tenha o ID
ami-04d75016789164863
do seu bucket S3ami-test-bucket
e nomeá-lamy-ami-test-image
, seu comando pode ser semelhante ao seguinte: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
-
Importe uma imagem de disco virtual da AWS
Para importar uma imagem de disco virtual da AWS, use o 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
Substitua o seguinte:
-
IMAGE_NAME
: nome da imagem de disco a ser criada. -
AWS_REGION
: região AWS da imagem que você deseja importar. -
AWS_ACCESS_KEY_ID
: ID da chave de acesso para uma credencial temporária da AWS. Esse ID deve ser gerado usando o AWS Security Token Service. -
AWS_SECRET_ACCESS_KEY
: chave de acesso secreta para uma credencial temporária da AWS. Essa chave deve ser gerada usando o AWS Security Token Service. -
AWS_SESSION_TOKEN
: token de sessão para uma credencial temporária da AWS. Esse token de sessão deve ser gerado usando o AWS Security Token Service. -
DISK_IMAGE_FILE_PATH
: caminho do recurso S3 do arquivo de imagem de disco virtual que você deseja importar.` OS
: sistema operacional da imagem de disco que está sendo importada.
Exemplo
Por exemplo, para importar um disco virtual ubuntu1804.vmdk
do bucket S3 image-test-bucket
e nomeá-lo my-test-image
, seu comando pode ser semelhante ao seguinte:
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
O que vem a seguir
- Crie uma nova instância de VM que use sua imagem inicializável.
- Compartilhe sua imagem entre projetos.