Este documento descreve os pré-requisitos para importar e exportar imagens no Compute Engine.
Pode partilhar instâncias de máquinas virtuais (MV), ficheiros de discos virtuais e imagens de máquinas de outros ambientes na nuvem ou do seu ambiente nas instalações, importando e exportando imagens do Cloud Storage. A seguinte lista de verificação resume os requisitos que tem de cumprir antes de importar e exportar imagens:
- Configure o acesso a um contentor do Cloud Storage
- Conceda as funções necessárias à sua conta de utilizador
- Conceda as funções necessárias à conta de serviço do Cloud Build
- Conceda as funções necessárias à conta de serviço do Compute Engine
Antes de começar
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Configure o acesso a um contentor do Cloud Storage
Tem de ter acesso a um contentor do Cloud Storage que a ferramenta de importação ou exportação possa usar. Se não tiver um contentor do Cloud Storage, consulte o artigo Crie um contentor do Cloud Storage.
Para configurar o acesso ao seu contentor do Cloud Storage, consulte os artigos Conceda as funções necessárias à sua conta e Conta de serviço do Compute Engine.
Se estiver a exportar uma imagem, a ferramenta de exportação carrega a imagem para o contentor do Cloud Storage.
Se estiver a importar uma imagem, primeiro tem de carregar a imagem para o contentor do Cloud Storage. A ferramenta de importação transfere o ficheiro do contentor do Cloud Storage para o Compute Engine e, em seguida, cria uma imagem no Compute Engine a partir desse ficheiro de disco.
Conceda as funções de IAM necessárias
A ferramenta de importação e exportação de imagens de VMs requer que as seguintes contas realizem a operação em seu nome:
- Conta de utilizador. A conta a partir da qual está a executar os comandos de importação e exportação.
- Conta de serviço do Cloud Build. Uma conta de serviço do Cloud Build predefinida que é criada quando a ferramenta de importação ou exportação ativa a API Cloud Build.
- Conta de serviço do Compute Engine. Uma conta de serviço do Compute Engine predefinida ou personalizada que é necessária para o fluxo de trabalho de importação e exportação.
Conceda as funções necessárias à sua conta de utilizador
Para importar ou exportar imagens, a sua conta de utilizador requer as seguintes funções:
- Função de administrador de armazenamento (
roles/storage.admin
) - Função de visitante (
roles/viewer
) - Função de administrador do IAM do projeto (
roles/resourcemanager.projectIamAdmin
) - Função de editor do Cloud Build (
roles/cloudbuild.builds.editor
)
Consola
Aceda à página IAM e administrador do projeto ou da organização.
Localize a sua conta e clique em
Editar.Na lista Selecionar uma função, selecione as seguintes funções:
- Cloud Storage > Administrador de armazenamento
- Projeto > Visualizador
- Resource Manager > Administrador de IAM do projeto
- Cloud Build > Editor do Cloud Build
Guarde as alterações.
gcloud
Nos passos seguintes, vai usar o comando
gcloud projects add-iam-policy-binding
para conceder as funções necessárias ao nível do projeto.Conceda a função de
roles/storage.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/storage.admin'
Substitua o seguinte:
PROJECT_ID
: o Google Cloud ID do projeto do seu projetoMEMBER
: a conta que executa os comandos de importação e exportação, por exemplo,user:export-user@gmail.com
Conceda a função de
roles/viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
Conceda a função de
roles/resourcemanager.projectIamAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/resourcemanager.projectIamAdmin'
Conceda a função de
roles/cloudbuild.builds.editor
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/cloudbuild.builds.editor'
REST
Leia a política existente com o método
getIamPolicy
do recurso. Para projetos, use o métodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Substitua
PROJECT_ID
pelo ID do projeto, por exemplo,my-project-1
.Para conceder as funções necessárias à sua conta, edite a política com um editor de texto.
Por exemplo, para conceder a função necessária à sua conta
user:export-user@gmail.com
, adicione a seguinte associação à política:{ { "role":"roles/storage.admin", "member":[ "user:export-user@gmail.com" ] } { "roles":"roles/viewer", "member":[ "user:export-user@gmail.com" ] } { "roles":"roles/resourcemanager.projectIamAdmin", "member":[ "user:export-user@gmail.com" ] } { "roles":"roles/cloudbuild.builds.editor", "member":[ "user:export-user@gmail.com" ] } }
Para escrever a política atualizada, use o método
setIamPolicy
.Por exemplo, para definir uma política ao nível do projeto, use o método
project.setIamPolicy
. No corpo do pedido, indique a política de IAM atualizada do passo anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Conceda as funções necessárias à conta de serviço do Cloud Build
Quando usa a Google Cloud consola ou a CLI gcloud para importar ou exportar imagens pela primeira vez, a ferramenta tenta ativar a API Cloud Build e conceder as funções necessárias à conta de serviço do Cloud Build.
A conta de serviço usada para o Cloud Build depende de ter usado o Cloud Build no projeto antes de maio de 2024. Se sim, a conta de serviço do Cloud Build antiga é usada para compilações futuras. Caso contrário, é usada a conta de serviço do Compute Engine predefinida.
- Função de criador de tokens de contas de serviço
(
roles/iam.serviceAccountTokenCreator
) - Função de utilizador da conta de serviço
(
roles/iam.serviceAccountUser
) - Função de administrador do Compute (
roles/compute.admin
)Para evitar conceder a função de administrador de computação, pode criar uma função personalizada com as seguintes autorizações de IAM do Compute Engine e concedê-la à conta de serviço do Cloud Build:
- Função de utilizador da rede de computação (
roles/compute.networkUser
)Esta função só é necessária quando importa ou exporta imagens que usam a VPC partilhada.
No projeto de VPC partilhada, conceda a função de utilizador da rede de computação à conta de serviço do Cloud Build localizada no projeto onde importa ou exporta imagens.
No entanto, pode conceder manualmente estas funções para garantir que as autorizações necessárias estão em vigor:
Consola
Depois de ativar a API Cloud Build, aceda à página IAM e administração do projeto ou da organização.
Localize a conta de serviço do Cloud Build e clique em
Editar.Se as funções necessárias não estiverem listadas, faça o seguinte:
- Clique em Adicionar outra função.
Na lista Selecionar uma função, selecione as funções necessárias que quer adicionar:
- Conta de serviço > Criador de tokens de contas de serviço
- Conta de serviço > Utilizador da conta de serviço
Compute Engine > Administrador de computação
Em alternativa, pode selecionar a função Personalizada. Consulte as autorizações necessárias para a função personalizada anteriormente neste documento.
Clique em Guardar para guardar as alterações.
Opcional: se estiver a importar ou exportar imagens que usam a VPC partilhada, selecione a função de utilizador da rede de computação no projeto de VPC partilhada:
- No seletor de projetos na parte superior da consola, selecione o projeto anfitrião da VPC partilhada.
- Na página IAM e administrador, clique em Conceder acesso.
- No campo Novos membros, introduza o endereço de email da conta de serviço do Cloud Build:
SubstituaPROJECT_NUMBER@cloudbuild.gserviceaccount.com'
PROJECT_NUMBER
pelo número único do projeto onde importa ou exporta imagens. - Na lista Selecionar uma função, selecione Compute Engine > função Utilizador da rede de computação.
- Clique em Guardar para guardar as alterações.
gcloud
Nos passos seguintes, vai usar o comando
gcloud projects add-iam-policy-binding
para conceder as funções necessárias ao nível do projeto.Conceda a função
roles/compute.admin
à conta de serviço do Cloud Build. Para evitar conceder a funçãoroles/compute.admin
, pode criar uma função personalizada com as autorizações necessárias e, em seguida, conceder essa função à conta de serviço do Cloud Build. Consulte as autorizações necessárias para a função personalizada anteriormente neste documento.gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/compute.admin'
Substitua o seguinte:
PROJECT_ID
: o Google Cloud ID do projeto do seu projetoPROJECT_NUMBER
: o Google Cloud número do projeto do seu projeto
Conceda a função de
roles/iam.serviceAccountUser
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/iam.serviceAccountUser'
Conceda a função de
roles/iam.serviceAccountTokenCreator
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/iam.serviceAccountTokenCreator'
Opcional: se estiver a exportar ou importar imagens que usam a VPC partilhada, conceda a função
roles/compute.networkUser
:gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/compute.networkUser'
Substitua o seguinte:
HOST_PROJECT_ID
: o ID do projeto anfitrião onde se encontra a VPC partilhadaPROJECT_NUMBER
: o número exclusivo do projeto onde importa ou exporta imagens
REST
Leia a política existente com o método
getIamPolicy
do recurso. Para projetos, use o métodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Substitua
PROJECT_ID
pelo ID do projeto, por exemplo,my-project-1
.Para conceder as funções necessárias à sua conta, edite a política com um editor de texto.
Por exemplo, para conceder as funções necessárias a
serviceAccount:12345@cloudbuild.gserviceaccount.com
, adicione a seguinte associação à política:{ { "role":"roles/compute.admin", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } { "roles":"roles/iam.serviceAccountUser", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } { "roles":"roles/iam.serviceAccountTokenCreator", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } }
Para evitar conceder a função
roles/compute.admin
, pode criar uma função personalizada com as autorizações necessárias e, em seguida, conceder essa função à conta de serviço do Cloud Build. Consulte as autorizações necessárias para a função personalizada anteriormente neste documento.Opcional: se estiver a exportar ou importar imagens que usam a VPC partilhada, conceda a função
roles/compute.networkUser
no projeto de VPC partilhada.POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:getIamPolicy
Substitua
HOST_PROJECT_ID
pelo ID do projeto de VPC partilhada.Adicione a seguinte associação do IAM à conta de serviço do Cloud Build:
{ { "roles":"roles/compute.networkUser", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } }
Para escrever a política atualizada, use o método
setIamPolicy
.Por exemplo, para definir uma política ao nível do projeto, use o método
project.setIamPolicy
. No corpo do pedido, indique a política de IAM atualizada do passo anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Para mais informações sobre a gestão do acesso a recursos, consulte o artigo Conceder, alterar e revogar o acesso a recursos.
Conceda as funções necessárias à conta de serviço do Compute Engine
Quando usa a Google Cloud consola ou a CLI gcloud para importar ou exportar imagens pela primeira vez, a ferramenta tenta conceder as funções necessárias à conta de serviço predefinida do Compute Engine.
Consoante a configuração da política da organização, a conta de serviço predefinida pode receber automaticamente a função de editor no seu projeto. Recomendamos vivamente que desative a concessão automática de funções aplicando a restrição da política da organização
iam.automaticIamGrantsForDefaultServiceAccounts
. Se tiver criado a sua organização após 3 de maio de 2024, esta restrição é aplicada por predefinição.Se desativar a concessão automática de funções, tem de decidir que funções conceder às contas de serviço predefinidas e, em seguida, conceder estas funções.
Se a conta de serviço predefinida já tiver a função de editor, recomendamos que substitua a função de editor por funções menos permissivas.Para modificar as funções da conta de serviço em segurança, use o Simulador de políticas para ver o impacto da alteração e, em seguida, conceda e revogue as funções adequadas.
A sua conta de serviço do Compute Engine tem de ter as seguintes funções:
- Função de administrador do armazenamento do Compute
(
roles/compute.storageAdmin
): necessária para exportar e importar imagens de VMs - Função de leitor de objetos de armazenamento
(
roles/storage.objectViewer
): necessária para importar imagens de VMs - Função de administrador de objetos de armazenamento
(
roles/storage.objectAdmin
): necessária para exportar imagens de VMs
Consola
Aceda à página IAM e administrador do projeto ou da organização.
Localize a conta de serviço do Compute Engine e clique em
Editar.Na lista Selecionar uma função, selecione as seguintes funções:
- Compute Engine > Administrador de armazenamento do Compute
- Cloud Storage > Visualizador de objetos de armazenamento
- Cloud Storage > Administrador de objetos de armazenamento
Guarde as alterações.
gcloud
Nos passos seguintes, vai usar o comando
gcloud projects add-iam-policy-binding
para conceder as funções necessárias ao nível do projeto.Conceda a função de
roles/compute.storageAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com' \ --role='roles/compute.storageAdmin'
Se estiver a importar uma imagem, conceda a função
roles/storage.objectViewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com' \ --role='roles/storage.objectViewer'
Se estiver a exportar uma imagem, conceda a função
roles/storage.objectAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com' \ --role='roles/storage.objectAdmin'
REST
Leia a política existente com o método
getIamPolicy
do recurso. Para projetos, use o métodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Substitua
PROJECT_ID
pelo ID do projeto, por exemplo,my-project-1
.Para conceder as funções necessárias à sua conta, edite a política com um editor de texto.
Por exemplo, para conceder as funções necessárias a
serviceAccount:12345-compute@developer.gserviceaccount.com
para importar uma imagem, adicione a seguinte associação à política:{ { "role":"roles/compute.storageAdmin", "member":[ "serviceAccount:12345-compute@developer.gserviceaccount.com" ] } { "roles":"roles/storage.objectViewer", "member":[ "serviceAccount:12345-compute@developer.gserviceaccount.com" ] } }
Para escrever a política atualizada, use o método
setIamPolicy
.Por exemplo, para definir uma política ao nível do projeto, use o método
project.setIamPolicy
. No corpo do pedido, indique a política de IAM atualizada do passo anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Se não quiser usar a conta de serviço do Compute Engine predefinida, pode especificar uma conta de serviço gerida pelo utilizador usando a flag
--compute-service-account
nos comandos de importação e exportaçãogcloud
. Para mais informações sobre a utilização de uma conta de serviço do Compute Engine personalizada, consulte os seguintes recursos:- Importar discos virtuais com contas de serviço personalizadas
- Importar dispositivos virtuais com contas de serviço personalizadas
- Importar imagens de máquinas de dispositivos virtuais com contas de serviço personalizadas
- Exportar imagens personalizadas com contas de serviço personalizadas
O que se segue?
- Exporte imagens personalizadas para o Cloud Storage.
- Partilhe as suas imagens entre projetos.
- Escolha um método de importação.
- Importar discos virtuais
- Importar dispositivos virtuais
- Importar imagens de máquinas de dispositivos virtuais
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-19 UTC.
-