Importe imagens da AWS


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:
    1. 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.

    2. 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:

  1. Na sua conta da AWS, crie um usuário IAM que tenha as permissões necessárias para realizar a exportação.

  2. Na sua conta da AWS, defina e visualize as definições de configuração .

  3. 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.

  4. 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

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

  1. 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.

  2. 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 S3 ami-test-bucket e nomeá-la my-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