Este documento describe los requisitos previos para importar y exportar imágenes en Compute Engine.
Puede compartir instancias de máquinas virtuales (VM), archivos de discos virtuales e imágenes de máquinas desde otros entornos de nube o desde su entorno local importando y exportando imágenes desde Cloud Storage. La siguiente lista de verificación resume los requisitos que debe cumplir antes de importar y exportar imágenes:
- Configurar el acceso a un depósito de Cloud Storage
- Otorgue los roles requeridos a su cuenta de usuario
- Otorgar roles requeridos a la cuenta de servicio Cloud Build
- Otorgar roles requeridos a la cuenta de servicio de Compute Engine
Antes de comenzar
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
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.
Si estás exportando una imagen, la herramienta de exportación carga la imagen en el depósito de Cloud Storage.
Si estás importando una imagen, primero debes cargarla en el depósito de Cloud Storage. La herramienta de importación descarga el archivo del depósito de Cloud Storage a Compute Engine y luego crea una imagen en Compute Engine a partir de ese archivo de disco.
- Cuenta de usuario. La cuenta desde la que ejecuta los comandos de importación y exportación.
- Cuenta de servicio Cloud Build. Una cuenta de servicio de Cloud Build predeterminada que se crea cuando la herramienta de importación o exportación habilita la API de Cloud Build.
- Cuenta de servicio de Compute Engine. Una cuenta de servicio de Compute Engine predeterminada o personalizada que se requiere para el flujo de trabajo de importación y exportación.
- Rol de administrador de almacenamiento (
roles/storage.admin
) - Rol de espectador (
roles/viewer
) - Rol de administrador de IAM del proyecto (
roles/resourcemanager.projectIamAdmin
) - Función de editor de Cloud Build (
roles/cloudbuild.builds.editor
) Vaya a la página IAM y administración del proyecto u organización.
Ubique su cuenta y haga clic en
Editar .En la lista Seleccionar una función , seleccione las siguientes funciones:
- Almacenamiento en la nube > Administrador de almacenamiento
- Proyecto > Visor
- Administrador de recursos > Administrador de IAM del proyecto
- Compilación en la nube > Editor de compilación en la nube
Guarde sus cambios.
Otorgue el rol
roles/storage.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/storage.admin'
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto de Google Cloud para tu proyecto -
MEMBER
: la cuenta que ejecuta los comandos de importación y exportación; por ejemplo,user:export-user@gmail.com
-
Otorgar los
roles/viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
Otorgue el rol
roles/resourcemanager.projectIamAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/resourcemanager.projectIamAdmin'
Otorgue el rol
roles/cloudbuild.builds.editor
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/cloudbuild.builds.editor'
Lea la política existente con el método
getIamPolicy
del recurso. Para proyectos, utilice el métodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Reemplace
PROJECT_ID
con el ID del proyecto (por ejemplo,my-project-1
.Para otorgar los roles requeridos a su cuenta, edite la política con un editor de texto.
Por ejemplo, para otorgar el rol requerido a su cuenta
user:export-user@gmail.com
, agregue el siguiente enlace a la 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 escribir la política actualizada, utilice el método
setIamPolicy
.Por ejemplo, para establecer una política a nivel de proyecto, utilice el método
project.setIamPolicy
. En el cuerpo de la solicitud, proporcione la política de IAM actualizada del paso anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Rol de creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator
) - Rol de usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) - Rol de administrador de Compute (
roles/compute.admin
)Para evitar otorgar la función Compute Admin, puedes crear una función personalizada con los siguientes permisos de IAM de Compute Engine y otorgarla a la cuenta de servicio Cloud Build :
- Rol de usuario de red informática (
roles/compute.networkUser
)Esta función solo es necesaria cuando importa o exporta imágenes que utilizan VPC compartida.
En el proyecto de VPC compartida, otorgue el rol de Usuario de Compute Network a la cuenta del servicio Cloud Build que se encuentra en el proyecto donde importa o exporta imágenes.
Después de habilitar la API de Cloud Build, vaya a la página IAM y administración del proyecto u organización.
Localice la cuenta del servicio Cloud Build y haga clic en
Editar .Si los roles requeridos no aparecen en la lista, haga lo siguiente:
- Haga clic Agregar otro rol .
En la lista Seleccionar una función , seleccione las funciones requeridas que desea agregar:
- Cuenta de servicio > Creador de tokens de cuenta de servicio
- Cuenta de servicio > Usuario de cuenta de servicio
Compute Engine > Administrador de Compute
Alternativamente, puede seleccionar el rol Personalizado . Consulte Permisos necesarios para la función personalizada anteriormente en este documento.
Haga clic en Guardar para guardar los cambios.
Opcional: si importa o exporta imágenes que utilizan VPC compartida, seleccione la función Compute Network User en el proyecto de VPC compartida:
- En el selector de proyectos en la parte superior de la consola, seleccione el proyecto de host de VPC compartido.
- En la página IAM y administración , haga clic en Conceder acceso .
- En el campo Nuevos directores , ingrese la dirección de correo electrónico de la cuenta del servicio Cloud Build:
ReemplacePROJECT_NUMBER@cloudbuild.gserviceaccount.com'
PROJECT_NUMBER
con el número único del proyecto donde importa o exporta imágenes. - En la lista Seleccionar una función , seleccione Compute Engine > función Usuario de red de Compute .
- Haga clic en Guardar para guardar los cambios.
Otorgue el rol
roles/compute.admin
a la cuenta de servicio Cloud Build. Para evitar otorgar el rolroles/compute.admin
, puede crear un rol personalizado con los permisos necesarios y luego otorgar ese rol a la cuenta del servicio Cloud Build. Consulte Permisos necesarios para la función personalizada anteriormente en este documento.gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/compute.admin'
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto de Google Cloud para tu proyecto -
PROJECT_NUMBER
: el número de proyecto de Google Cloud para tu proyecto
-
Otorgue el rol
roles/iam.serviceAccountUser
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/iam.serviceAccountUser'
Otorgue el rol
roles/iam.serviceAccountTokenCreator
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/iam.serviceAccountTokenCreator'
Opcional: si está exportando o importando imágenes que utilizan VPC compartida, otorgue el rol
roles/compute.networkUser
:gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/compute.networkUser'
Reemplace lo siguiente:
-
HOST_PROJECT_ID
: el ID del proyecto host donde se encuentra la VPC compartida -
PROJECT_NUMBER
: el número único del proyecto donde importas o exportas imágenes
-
Lea la política existente con el método
getIamPolicy
del recurso. Para proyectos, utilice el métodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Reemplace
PROJECT_ID
con el ID del proyecto (por ejemplo,my-project-1
.Para otorgar los roles requeridos a su cuenta, edite la política con un editor de texto.
Por ejemplo, para otorgar los roles necesarios a
serviceAccount:12345@cloudbuild.gserviceaccount.com
, agregue el siguiente enlace a la 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 otorgar el rol
roles/compute.admin
, puede crear un rol personalizado con los permisos necesarios y luego otorgar ese rol a la cuenta del servicio Cloud Build. Consulte Permisos necesarios para la función personalizada anteriormente en este documento.Opcional: si exporta o importa imágenes que utilizan VPC compartida, otorgue el rol
roles/compute.networkUser
en el proyecto de VPC compartida.POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:getIamPolicy
Reemplace
HOST_PROJECT_ID
con el ID del proyecto de VPC compartida.Agregue el siguiente enlace de IAM a la cuenta de servicio Cloud Build:
{ { "roles":"roles/compute.networkUser", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } }
Para escribir la política actualizada, utilice el método
setIamPolicy
.Por ejemplo, para establecer una política a nivel de proyecto, utilice el método
project.setIamPolicy
. En el cuerpo de la solicitud, proporcione la política de IAM actualizada del paso anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Función de administrador de Compute Storage (
roles/compute.storageAdmin
): necesaria para exportar e importar imágenes de VM - Función Visor de objetos de almacenamiento (
roles/storage.objectViewer
): necesaria para importar imágenes de VM - Función de administrador de objetos de almacenamiento (
roles/storage.objectAdmin
): necesaria para exportar imágenes de VM Vaya a la página IAM y administración del proyecto u organización.
Ubique la cuenta de servicio de Compute Engine y haga clic en
Editar .En la lista Seleccionar una función , seleccione las siguientes funciones:
- Compute Engine > Administrador de almacenamiento informático
- Almacenamiento en la nube > Visor de objetos de almacenamiento
- Almacenamiento en la nube > Administrador de objetos de almacenamiento
Guarde sus cambios.
Otorgue el rol
roles/compute.storageAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com' \ --role='roles/compute.storageAdmin'
Si está importando una imagen, otorgue el rol
roles/storage.objectViewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com' \ --role='roles/storage.objectViewer'
Si está exportando una imagen, otorgue el rol
roles/storage.objectAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com' \ --role='roles/storage.objectAdmin'
Lea la política existente con el método
getIamPolicy
del recurso. Para proyectos, utilice el métodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Reemplace
PROJECT_ID
con el ID del proyecto (por ejemplo,my-project-1
.Para otorgar los roles requeridos a su cuenta, edite la política con un editor de texto.
Por ejemplo, para otorgar los roles necesarios a
serviceAccount:12345-compute@developer.gserviceaccount.com
Para importar una imagen, agregue el siguiente enlace a la 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 escribir la política actualizada, utilice el método
setIamPolicy
.Por ejemplo, para establecer una política a nivel de proyecto, utilice el método
project.setIamPolicy
. En el cuerpo de la solicitud, proporcione la política de IAM actualizada del paso anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Importación de discos virtuales con cuentas de servicio personalizadas
- Importación de dispositivos virtuales con cuentas de servicio personalizadas
- Importación de imágenes de máquinas desde dispositivos virtuales con cuentas de servicio personalizadas
- Exportación de imágenes personalizadas con cuentas de servicio personalizadas
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de 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.
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
Configurar el acceso a un depósito de Cloud Storage
Debes tener acceso a un depósito de Cloud Storage que la herramienta de importación o exportación pueda usar. Si no tienes un depósito de Cloud Storage, consulta Crear un depósito de Cloud Storage .
Para configurar el acceso a tu depósito de Cloud Storage, consulta Otorgar roles requeridos a tu cuenta y a tu cuenta de servicio de Compute Engine .
Conceder roles de IAM requeridos
La herramienta de importación y exportación de imágenes de VM requiere las siguientes cuentas para realizar la operación en su nombre:
Otorgue los roles requeridos a su cuenta de usuario
Para importar o exportar imágenes, su cuenta de usuario requiere los siguientes roles:
Consola
nube de gcloud
En los siguientes pasos, usarás el comando
gcloud projects add-iam-policy-binding
para otorgar las funciones requeridas a nivel de proyecto.DESCANSAR
Otorgar roles requeridos a la cuenta de servicio Cloud Build
Cuando usas la consola de Google Cloud o la CLI de gcloud para importar o exportar imágenes por primera vez, la herramienta intenta habilitar la API de Cloud Build y otorgar las funciones requeridas a la cuenta de servicio de Cloud Build .
Sin embargo, puede otorgar manualmente estos roles para asegurarse de que los permisos requeridos estén vigentes:
Consola
nube de gcloud
En los siguientes pasos, usarás el comando
gcloud projects add-iam-policy-binding
para otorgar las funciones requeridas a nivel de proyecto.DESCANSAR
Para obtener más información sobre cómo administrar el acceso a los recursos, consulte Conceder, cambiar y revocar el acceso a los recursos .
Otorgar roles requeridos a la cuenta de servicio de Compute Engine
Cuando usas la consola de Google Cloud o la CLI de gcloud para importar o exportar imágenes por primera vez, la herramienta intenta otorgar las funciones requeridas a la cuenta de servicio predeterminada de Compute Engine .
Dependiendo de la configuración de la política de su organización, es posible que a la cuenta de servicio predeterminada se le otorgue automáticamente la función de Editor en su proyecto. Le recomendamos encarecidamente que deshabilite la concesión automática de roles aplicando la restricción de política de organización
iam.automaticIamGrantsForDefaultServiceAccounts
. Si creó su organización después del 3 de mayo de 2024, esta restricción se aplica de forma predeterminada.Si desactiva la concesión automática de roles, debe decidir qué roles otorgar a las cuentas de servicio predeterminadas y luego otorgarlos usted mismo.
Si la cuenta de servicio predeterminada ya tiene la función de Editor, le recomendamos que reemplace la función de Editor con funciones menos permisivas.Para modificar de forma segura los roles de la cuenta de servicio, use Policy Simulator para ver el impacto del cambio y luego otorgue y revoque los roles apropiados .
Tu cuenta de servicio de Compute Engine debe tener las siguientes funciones:
Consola
nube de gcloud
En los siguientes pasos, usarás el comando
gcloud projects add-iam-policy-binding
para otorgar las funciones requeridas a nivel de proyecto.DESCANSAR
Si no deseas usar la cuenta de servicio predeterminada de Compute Engine, puedes especificar una cuenta de servicio administrada por el usuario usando la marca
--compute-service-account
en los comandos de importación y exportacióngcloud
. Para obtener más información sobre el uso de una cuenta de servicio personalizada de Compute Engine, consulta los siguientes recursos:¿Qué sigue?
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-21 (UTC).
-