Se você tiver imagens do Amazon Machine Images (AMI) ou uma imagem de disco virtual (como VMDK e VHD) armazenadas em um bucket S3 na Amazon Web Services (AWS), use a Google Cloud CLI para importar essas imagens para o Google Cloud.
Se preferir, importe uma imagem seguindo as instruções em Como importar discos de inicialização manualmente.
Para ver a lista completa de opções de importação, consulte Escolher um caminho de migração.
Antes de começar
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- 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 conta da AWS, crie um usuário do IAM que tenha as permissões necessárias para realizar a exportação.
- Para imagens do AMI, consulte Como criar um usuário do AWS IAM para exportação do AMI.
- Para imagens de disco virtual, consulte Como criar um usuário do IAM da AWS para exportação de imagens de disco virtual.
Na sua conta da AWS, defina e visualize as configurações.
Na conta da AWS, usando o usuário do IAM criado na etapa anterior, gere credenciais temporárias que possam ser usadas pela Google Cloud CLI.
No Google Cloud, importe a imagem usando a Google Cloud CLI. 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
- Analise a documentação de considerações sobre exportação da AWS.
- Leia a documentação sobre limitações de exportação da AWS.
- Não é possível importar imagens Arm64 usando a ferramenta de importação de imagens. Para importar imagens Arm64, siga as instruções passo a passo conforme descrito em Importar discos de inicialização manualmente.
Criar um usuário do AWS IAM
Talvez não seja uma boa prática gerar credenciais usando sua conta de usuário raiz da AWS. Por motivos de segurança, o Google recomenda que você crie um ou mais usuários do IAM e forneça a eles o mínimo de permissões necessárias para exportar um AMI ou um disco virtual da AWS.
As permissões mínimas exigidas para o usuário do IAM dependem do tipo de imagem (AMI ou imagem de disco virtual) que você quer exportar da AWS.
Criar um usuário do IAM da AWS para exportação do AMI
Para criar esse usuário, consulte Criar um usuário do IAM na sua conta da AWS.
Esse usuário precisa ter as seguintes permissões e papéis de serviço obrigatórios:
Criar um usuário do IAM da AWS para exportação de imagens de disco virtual
Para criar esse usuário, consulte Criar um usuário do IAM na sua conta da AWS.
As permissões mínimas exigidas por esse usuário estão descritas na seguinte política do IAM JSON
. Substitua IMAGE_FILE_PATH
pelo caminho para o arquivo de imagem que você quer importar.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": ["arn:aws:s3:::IMAGE_FILE_PATH"] }, ] }
Definir e verificar as definições de configuração
Depois de criar o usuário do IAM, defina e configure o ambiente.
Para definir e verificar as definições de configuração, execute o seguinte comando:
aws configure
Para mais informações sobre esse comando, consulte Definir e visualizar as configurações.
Gerar credenciais temporárias
Depois de criar e configurar o usuário do IAM, você precisa criar uma credencial temporária que pode ser usada pelo comando gcloud compute images import
.
Essa credencial de usuário consiste no seguinte:
- Um ID da 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 temporária do usuário do AWS IAM precisa ser gerada a partir de um usuário do IAM. O usuário do IAM selecionado precisa ter todas as permissões necessárias.
Para gerar as credenciais temporárias, você precisa usar a ferramenta de linha de comando da AWS ou gerar as credenciais de modo programático. Para instalar a linha de comando da AWS, consulte Como instalar a versão 2 da CLI da AWS.
Por exemplo, o comando a seguir gera uma credencial que expira em 3.600 segundos. Especifique tempo suficiente para importar sua imagem para o Google Cloud.
aws sts get-session-token --duration-seconds 3600
Para mais informações sobre como gerar credenciais temporárias, consulte Como usar credenciais temporárias com recursos da AWS.
Importar imagens para o Compute Engine
Depois de criar um usuário do AWS IAM e gerar as credenciais temporárias do usuário, é possível importar sua imagem para o Compute Engine.
Importar um AMI da AWS
Configure um bucket do AWS S3. Esse bucket é usado como um local de armazenamento temporário do qual a Google Cloud CLI pode exportar o AMI. A Google Cloud CLI exclui o AMI desse bucket assim que a importação para o Compute Engine é concluída.
Este bucket precisa estar na mesma região que o AMI.
Importe o AMI. Para importar um AMI do 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:
IMAGE_NAME
: nome da imagem do AMI a ser criada.AWS_REGION
: região da AWS da imagem que você quer importar.AWS_ACCESS_KEY_ID
: ID de chave de acesso para uma credencial temporária da AWS. Esse ID precisa ser gerado com o AWS Security Token Service.AWS_SECRET_ACCESS_KEY
: chave de acesso secreta para uma credencial temporária da AWS. É preciso gerar essa chave usando o AWS Security Token Service.AWS_SESSION_TOKEN
: token de sessão para uma credencial da AWS temporária. Esse token de sessão precisa ser gerado com o AWS Security Token Service.AWS_AMI_ID
: ID do AWS AMI da imagem a ser importada.AWS_AMI_EXPORT_LOCATION
: local do bucket S3 da AWS de onde você quer exportar a imagem. Esse bucket precisa estar na mesma região que o AMI.OS
: sistema operacional da imagem de disco que está sendo importada.
Exemplo
Por exemplo, para importar do bucket da S3
ami-test-bucket
uma imagem de AMI que tenha o IDami-04d75016789164863
e nomeá-la comomy-ami-test-image
, o comando se parecerá com este: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 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:
IMAGE_NAME
: nome da imagem de disco a ser criada.AWS_REGION
: região da AWS da imagem que você quer importar.AWS_ACCESS_KEY_ID
: ID de chave de acesso para uma credencial temporária da AWS. Esse ID precisa ser gerado com o AWS Security Token Service.AWS_SECRET_ACCESS_KEY
: chave de acesso secreta para uma credencial temporária da AWS. É preciso gerar essa chave usando o AWS Security Token Service.AWS_SESSION_TOKEN
: token de sessão para uma credencial da AWS temporária. Esse token de sessão precisa ser gerado com o AWS Security Token Service.DISK_IMAGE_FILE_PATH
: caminho do recurso S3 do arquivo de imagem do disco virtual que você quer importar.OS
: sistema operacional da imagem de disco que está sendo importada.
Exemplo
Por exemplo, para importar do bucket da S3 image-test-bucket
um disco virtual ubuntu1804.vmdk
e nomeá-lo como my-test-image
, o comando pode se parecerá
com este:
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
A seguir
- Crie uma nova instância de VM que use sua imagem inicializável.
- Compartilhe a imagem entre projetos.