Este documento descreve os pré-requisitos para importar e exportar imagens no Compute Engine.
Você pode compartilhar instâncias de máquina virtual (VM), arquivos de disco virtual e imagens de máquina de outros ambientes de nuvem ou do seu ambiente local importando e exportando imagens do Cloud Storage. A lista de verificação a seguir resume os requisitos que você precisa atender antes de importar e exportar imagens:
- Configurar o acesso a um bucket do Cloud Storage
- Conceda as funções necessárias à sua conta de usuário
- Conceda os papéis necessários à conta de serviço do Cloud Build
- Conceder os papéis necessários à conta de serviço do Compute Engine
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:
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
-
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.
Se você estiver exportando uma imagem, a ferramenta de exportação fará upload da imagem para o intervalo do Cloud Storage.
Se estiver importando uma imagem, primeiro faça upload da imagem para o intervalo do Cloud Storage. A ferramenta de importação faz download do arquivo do bucket do Cloud Storage para o Compute Engine e, em seguida, cria uma imagem no Compute Engine a partir desse arquivo de disco.
- Conta de usuário. A conta na qual você está executando os comandos de importação e exportação.
- Conta de serviço do Cloud Build. Uma conta de serviço padrão do Cloud Build 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 padrão ou personalizada do Compute Engine necessária para o fluxo de trabalho de importação e exportação.
- Função de administrador de armazenamento (
roles/storage.admin
) - Função do visualizador (
roles/viewer
) - Função de administrador do IAM do projeto (
roles/resourcemanager.projectIamAdmin
) - Papel de editor do Cloud Build (
roles/cloudbuild.builds.editor
) Acesse a página IAM e Admin do projeto ou organização.
Localize sua conta e clique em
Editar .Na lista Selecionar uma função , selecione as seguintes funções:
- Cloud Storage > Administrador de armazenamento
- Projeto > Visualizador
- Gerenciador de recursos > Administrador do IAM do projeto
- Cloud Build > Editor do Cloud Build
Salve suas alterações.
Conceda a
roles/storage.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/storage.admin'
Substitua o seguinte:
-
PROJECT_ID
: o ID do projeto do Google Cloud para seu projeto -
MEMBER
: a conta que executa os comandos de importação e exportação — por exemplo,user:export-user@gmail.com
-
Conceda as
roles/viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
Conceda a
roles/resourcemanager.projectIamAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/resourcemanager.projectIamAdmin'
Conceda a
roles/cloudbuild.builds.editor
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/cloudbuild.builds.editor'
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 os papéis necessários à 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 ligaçã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 gravar a política atualizada, use o método
setIamPolicy
.Por exemplo, para definir uma política no nível do projeto, use o método
project.setIamPolicy
. No corpo da solicitação, forneça a política IAM atualizada da etapa anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Função Criador de token de conta de serviço (
roles/iam.serviceAccountTokenCreator
) - Função de usuário da conta de serviço (
roles/iam.serviceAccountUser
) - Função de administrador do Compute (
roles/compute.admin
)Para evitar a concessão do papel de administrador do Compute, você pode criar um papel personalizado com as seguintes permissões do IAM do Compute Engine e concedê-lo à conta de serviço do Cloud Build :
- Função de usuário da rede do Compute (
roles/compute.networkUser
)Essa função é necessária somente quando você importa ou exporta imagens que usam VPC compartilhada.
No projeto de VPC compartilhada, conceda o papel de usuário da rede do Compute à conta de serviço do Cloud Build localizada no projeto em que você importa ou exporta imagens.
Depois de ativar a API Cloud Build, acesse a página IAM e administrador do projeto ou 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 você deseja adicionar:
- Conta de serviço > Criador de token de conta de serviço
- Conta de serviço > Usuário da conta de serviço
Compute Engine > Administrador do Compute
Como alternativa, você pode selecionar a função personalizada . Consulte Permissões necessárias para a função personalizada anteriormente neste documento.
Clique em Salvar para salvar as alterações.
Opcional: se você estiver importando ou exportando imagens que usam VPC compartilhada, selecione a função de usuário da rede do Compute no projeto de VPC compartilhada:
- No seletor de projetos na parte superior do console, selecione o projeto host da VPC compartilhada.
- Na página IAM e administrador , clique em Conceder acesso .
- No campo Novos principais , insira o endereço de e-mail da conta de serviço do Cloud Build:
SubstituaPROJECT_NUMBER@cloudbuild.gserviceaccount.com'
PROJECT_NUMBER
pelo número exclusivo do projeto onde você importa ou exporta imagens. - Na lista Selecionar uma função , selecione Compute Engine > Função de usuário da rede do Compute .
- Clique em Salvar para salvar as alterações.
Conceda o papel
roles/compute.admin
à conta de serviço do Cloud Build. Para evitar a concessão do papelroles/compute.admin
, você pode criar um papel personalizado com as permissões necessárias e, em seguida, conceder esse papel à conta de serviço do Cloud Build. Consulte Permissõ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 ID do projeto do Google Cloud para seu projeto -
PROJECT_NUMBER
: o número do projeto do Google Cloud para seu projeto
-
Conceda a
roles/iam.serviceAccountUser
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/iam.serviceAccountUser'
Conceda a
roles/iam.serviceAccountTokenCreator
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/iam.serviceAccountTokenCreator'
Opcional: se você estiver exportando ou importando imagens que usam VPC compartilhada, 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 host onde a VPC compartilhada está localizada -
PROJECT_NUMBER
: o número exclusivo do projeto onde você importa ou exporta imagens
-
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 os papéis necessários à 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 vinculaçã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 a concessão do papel
roles/compute.admin
, você pode criar um papel personalizado com as permissões necessárias e, em seguida, conceder esse papel à conta de serviço do Cloud Build. Consulte Permissões necessárias para a função personalizada anteriormente neste documento.Opcional: se você estiver exportando ou importando imagens que usam VPC compartilhada, conceda a função
roles/compute.networkUser
no projeto de VPC compartilhada.POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:getIamPolicy
Substitua
HOST_PROJECT_ID
pelo ID do projeto de VPC compartilhada.Adicione a seguinte vinculação do IAM à conta de serviço do Cloud Build:
{ { "roles":"roles/compute.networkUser", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } }
Para gravar a política atualizada, use o método
setIamPolicy
.Por exemplo, para definir uma política no nível do projeto, use o método
project.setIamPolicy
. No corpo da solicitação, forneça a política IAM atualizada da etapa anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Função de administrador do Compute Storage (
roles/compute.storageAdmin
): necessária para exportar e importar imagens de VM - Função de visualizador de objetos de armazenamento (
roles/storage.objectViewer
): necessária para importar imagens de VM - Função Administrador do objeto de armazenamento (
roles/storage.objectAdmin
): necessária para exportar imagens de VM Acesse a página IAM e Admin do projeto ou 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 do Compute Storage
- Cloud Storage > Visualizador de objetos de armazenamento
- Cloud Storage > Administrador de objetos de armazenamento
Salve suas alterações.
Conceda a
roles/compute.storageAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com' \ --role='roles/compute.storageAdmin'
Se você estiver importando 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 você estiver exportando 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'
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 os papéis necessários à 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 ligaçã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 gravar a política atualizada, use o método
setIamPolicy
.Por exemplo, para definir uma política no nível do projeto, use o método
project.setIamPolicy
. No corpo da solicitação, forneça a política IAM atualizada da etapa anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Importando discos virtuais com contas de serviço personalizadas
- Importando dispositivos virtuais com contas de serviço customizadas
- Importando imagens de máquina de dispositivos virtuais com contas de serviço customizadas
- Exportando imagens personalizadas com contas de serviço personalizadas
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
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.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Configurar o acesso a um bucket do Cloud Storage
Você precisa ter acesso a um bucket do Cloud Storage que a ferramenta de importação ou exportação possa usar. Se você não tiver um bucket do Cloud Storage, consulte Criar um bucket do Cloud Storage .
Para configurar o acesso ao bucket do Cloud Storage, consulte Conceder papéis necessários à sua conta e à conta de serviço do Compute Engine .
Conceder papéis de IAM necessários
A ferramenta de importação e exportação de imagens VM requer as seguintes contas para executar a operação em seu nome:
Conceda as funções necessárias à sua conta de usuário
Para importar ou exportar imagens, sua conta de usuário requer as seguintes funções:
Console
gcloud
Nas etapas a seguir, você usará o comando
gcloud projects add-iam-policy-binding
para conceder os papéis necessários no nível do projeto.DESCANSAR
Conceda os papéis necessários à conta de serviço do Cloud Build
Quando você usa o console do Google Cloud ou a CLI gcloud para importar ou exportar imagens pela primeira vez, a ferramenta tenta ativar a API Cloud Build e conceder os papéis necessários à conta de serviço do Cloud Build .
No entanto, você pode conceder manualmente essas funções para garantir que as permissões necessárias estejam em vigor:
Console
gcloud
Nas etapas a seguir, você usará o comando
gcloud projects add-iam-policy-binding
para conceder os papéis necessários no nível do projeto.DESCANSAR
Para obter mais informações sobre como gerenciar o acesso a recursos, consulte Concessão, alteração e revogação de acesso a recursos .
Conceder os papéis necessários à conta de serviço do Compute Engine
Quando você usa o console do Google Cloud ou a CLI gcloud para importar ou exportar imagens pela primeira vez, a ferramenta tenta conceder os papéis necessários à conta de serviço padrão do Compute Engine .
Dependendo da configuração da política da sua organização, a conta de serviço padrão poderá receber automaticamente a função de Editor no seu projeto. É altamente recomendável desativar a concessão automática de função aplicando a restrição de política da organização
iam.automaticIamGrantsForDefaultServiceAccounts
. Se você criou sua organização após 3 de maio de 2024, essa restrição será aplicada por padrão.Se você desabilitar a concessão automática de funções, deverá decidir quais funções conceder às contas de serviço padrão e, em seguida, conceder essas funções você mesmo.
Se a conta de serviço padrão já tiver a função de Editor, recomendamos que você substitua a função de Editor por funções menos permissivas.Para modificar com segurança as funções da conta de serviço, use o Simulador de políticas para ver o impacto da alteração e, em seguida , conceda e revogue as funções apropriadas .
Sua conta de serviço do Compute Engine precisa ter os seguintes papéis:
Console
gcloud
Nas etapas a seguir, você usará o comando
gcloud projects add-iam-policy-binding
para conceder os papéis necessários no nível do projeto.DESCANSAR
Se não quiser usar a conta de serviço padrão do Compute Engine, você poderá especificar uma conta de serviço gerenciada pelo usuário usando a sinalização
--compute-service-account
nos comandosgcloud
import e export. Para mais informações sobre como usar a conta de serviço personalizada do Compute Engine, consulte os seguintes recursos:O que vem a seguir
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-04-21 UTC.
-