En este documento se describen los requisitos para importar y exportar imágenes en Compute Engine.
Puedes compartir instancias de máquina virtual, archivos de disco virtual e imágenes de máquina de otros entornos de nube o de tu entorno local importando y exportando imágenes de Cloud Storage. En la siguiente lista de comprobación se resumen los requisitos que debe cumplir antes de importar y exportar imágenes:
- Configurar el acceso a un segmento de Cloud Storage
- Asigna los roles necesarios a tu cuenta de usuario
- Asigna los roles necesarios a la cuenta de servicio de Cloud Build
- Concede los roles necesarios a la cuenta de servicio de Compute Engine
Antes de empezar
-
Si aún no lo has hecho, configura la autenticación.
La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos 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
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Configurar el acceso a un segmento de Cloud Storage
Debes tener acceso a un segmento de Cloud Storage que pueda usar la herramienta de importación o exportación. Si no tienes ningún segmento de Cloud Storage, consulta el artículo Crear un segmento de Cloud Storage.
Para configurar el acceso a tu segmento de Cloud Storage, consulta Conceder los roles necesarios a tu cuenta y Cuenta de servicio de Compute Engine.
Si exportas una imagen, la herramienta de exportación la sube al segmento de Cloud Storage.
Si vas a importar una imagen, primero debes subirla al segmento de Cloud Storage. La herramienta de importación descarga el archivo del segmento de Cloud Storage a Compute Engine y, a continuación, crea una imagen en Compute Engine a partir de ese archivo de disco.
Conceder los roles de gestión de identidades y accesos necesarios
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:
- Cuenta de usuario. La cuenta desde la que ejecutas los comandos de importación y exportación.
- Cuenta de servicio de 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 Cloud Build.
- Cuenta de servicio de Compute Engine. Una cuenta de servicio de Compute Engine predeterminada o personalizada que se necesita para el flujo de trabajo de importación y exportación.
Asignar los roles necesarios a tu cuenta de usuario
Para importar o exportar imágenes, tu cuenta de usuario debe tener los siguientes roles:
- Rol Administrador de almacenamiento (
roles/storage.admin
) - Rol de lector (
roles/viewer
) - Rol Administrador de gestión de identidades y accesos de proyectos (
roles/resourcemanager.projectIamAdmin
) - Rol Editor de Cloud Build (
roles/cloudbuild.builds.editor
)
Consola
Ve a la página IAM y administración del proyecto o de la organización.
Busca tu cuenta y haz clic en
Editar.En la lista Selecciona un rol, elige los siguientes roles:
- Cloud Storage > Administrador de Storage
- Proyecto ;> Lector
- Administrador de recursos > Administrador de gestión de identidades y accesos de proyectos
- Cloud Build > Editor de Cloud Build
Guarda los cambios.
gcloud
En los pasos siguientes, usarás el
gcloud projects add-iam-policy-binding
comando para asignar los roles necesarios a nivel de proyecto.Asigna el rol
roles/storage.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/storage.admin'
Haz los cambios siguientes:
PROJECT_ID
: el Google Cloud ID de proyecto de tu proyectoMEMBER
: la cuenta que ejecuta los comandos de importación y exportación. Por ejemplo,user:export-user@gmail.com
Asigna el rol
roles/viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
Asigna el rol
roles/resourcemanager.projectIamAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/resourcemanager.projectIamAdmin'
Asigna el rol
roles/cloudbuild.builds.editor
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/cloudbuild.builds.editor'
REST
Lee la política actual con el método
getIamPolicy
del recurso. En el caso de los proyectos, utiliza el métodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Sustituye
PROJECT_ID
por el ID del proyecto (por ejemplo,my-project-1
).Para conceder los roles necesarios a tu cuenta, edita la política con un editor de texto.
Por ejemplo, para conceder el rol necesario a tu cuenta
user:export-user@gmail.com
, añade 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, usa el método
setIamPolicy
.Por ejemplo, para definir una política a nivel de proyecto, usa el método
project.setIamPolicy
. En el cuerpo de la solicitud, proporciona la política de gestión de identidades y accesos actualizada del paso anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Conceder los roles necesarios a la cuenta de servicio de Cloud Build
Cuando usas la consola o la CLI de gcloud para importar o exportar imágenes por primera vez, la herramienta intenta habilitar la API Cloud Build y conceder los roles necesarios a la cuenta de servicio de Cloud Build. Google Cloud
La cuenta de servicio que se usa en Cloud Build depende de si has usado Cloud Build en el proyecto antes de mayo del 2024. Si es así, se usará la cuenta de servicio de Cloud Build antigua para las compilaciones futuras. De lo contrario, se usará la cuenta de servicio predeterminada de Compute Engine.
- Rol Creador de tokens de cuenta de servicio
(
roles/iam.serviceAccountTokenCreator
) - Rol Usuario de cuenta de servicio
(
roles/iam.serviceAccountUser
) - Rol Administrador de Compute (
roles/compute.admin
)Para evitar conceder el rol Administrador de Compute, puedes crear un rol personalizado con los siguientes permisos de IAM de Compute Engine y concedérselo a la cuenta de servicio de Cloud Build:
- Rol Usuario de red de Compute (
roles/compute.networkUser
)Este rol solo es necesario cuando importas o exportas imágenes que usan una VPC compartida.
En el proyecto de VPC compartida, concede el rol Usuario de red de Compute a la cuenta de servicio de Cloud Build que se encuentra en el proyecto en el que importas o exportas imágenes.
Sin embargo, puedes conceder estos roles manualmente para asegurarte de que los permisos necesarios estén activos:
Consola
Después de habilitar la API Cloud Build, ve a la página IAM y administración del proyecto o de la organización.
Busca la cuenta de servicio de Cloud Build y haz clic en
Editar.Si no aparecen los roles necesarios, haz lo siguiente:
- Haz clic en Añadir otro rol.
En la lista Selecciona un rol, elige los roles que quieras añadir:
- Cuenta de servicio > Creador de tokens de cuenta de servicio
- Cuenta de servicio > Usuario de cuenta de servicio
Compute Engine > Administrador de Compute
También puedes seleccionar el rol Personalizado. Consulta los permisos necesarios para el rol personalizado en la sección anterior de este documento.
Haz clic en Guardar para guardar los cambios.
Opcional: Si vas a importar o exportar imágenes que usen una VPC compartida, selecciona el rol Usuario de red de Compute en el proyecto de VPC compartida:
- En el selector de proyectos de la parte superior de la consola, selecciona el proyecto host de VPC compartida.
- En la página IAM y administración, haz clic en Conceder acceso.
- En el campo Nuevos principales, introduce la dirección de correo de la cuenta de servicio de Cloud Build:
SustituyePROJECT_NUMBER@cloudbuild.gserviceaccount.com'
PROJECT_NUMBER
por el número único del proyecto en el que importas o exportas imágenes. - En la lista Seleccionar un rol, selecciona Compute Engine > rol Usuario de red de Compute.
- Haz clic en Guardar para guardar los cambios.
gcloud
En los pasos siguientes, usarás el
gcloud projects add-iam-policy-binding
comando para asignar los roles necesarios a nivel de proyecto.Asigna el rol
roles/compute.admin
a la cuenta de servicio de Cloud Build. Para no tener que conceder el rolroles/compute.admin
, puedes crear un rol personalizado con los permisos necesarios y, a continuación, conceder ese rol a la cuenta de servicio de Cloud Build. Consulta la sección Permisos necesarios para el rol personalizado de este documento.gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/compute.admin'
Haz los cambios siguientes:
PROJECT_ID
: el Google Cloud ID de proyecto de tu proyectoPROJECT_NUMBER
: el Google Cloud número de proyecto de tu proyecto
Asigna el rol
roles/iam.serviceAccountUser
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/iam.serviceAccountUser'
Asigna 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 exportas o importas imágenes que usan una VPC compartida, asigna 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'
Haz los cambios siguientes:
HOST_PROJECT_ID
: ID del proyecto host en el que se encuentra la VPC compartidaPROJECT_NUMBER
: el número único del proyecto en el que importas o exportas imágenes.
REST
Lee la política actual con el método
getIamPolicy
del recurso. En el caso de los proyectos, utiliza el métodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Sustituye
PROJECT_ID
por el ID del proyecto (por ejemplo,my-project-1
).Para conceder los roles necesarios a tu cuenta, edita la política con un editor de texto.
Por ejemplo, para asignar los roles necesarios a
serviceAccount:12345@cloudbuild.gserviceaccount.com
, añade 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 conceder el rol
roles/compute.admin
, puedes crear un rol personalizado con los permisos necesarios y, a continuación, conceder ese rol a la cuenta de servicio de Cloud Build. Consulta la sección Permisos necesarios para el rol personalizado de este documento.Opcional: Si vas a exportar o importar imágenes que usen una VPC compartida, asigna el rol
roles/compute.networkUser
en el proyecto de VPC compartida.POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:getIamPolicy
Sustituye
HOST_PROJECT_ID
por el ID del proyecto de VPC compartida.Añade la siguiente vinculación de IAM a la cuenta de servicio de Cloud Build:
{ { "roles":"roles/compute.networkUser", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } }
Para escribir la política actualizada, usa el método
setIamPolicy
.Por ejemplo, para definir una política a nivel de proyecto, usa el método
project.setIamPolicy
. En el cuerpo de la solicitud, proporciona la política de gestión de identidades y accesos actualizada del paso anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Para obtener más información sobre cómo gestionar el acceso a los recursos, consulta el artículo Conceder, cambiar y revocar el acceso a los recursos.
Concede los roles necesarios a la cuenta de servicio de Compute Engine
Cuando usas la Google Cloud consola o la CLI de gcloud para importar o exportar imágenes por primera vez, la herramienta intenta conceder los roles necesarios a la cuenta de servicio predeterminada de Compute Engine.
En función de la configuración de la política de tu organización, es posible que se conceda automáticamente el rol Editor a la cuenta de servicio predeterminada de tu proyecto. Te recomendamos que inhabilites la asignación automática de roles aplicando la restricción de la política de organización
iam.automaticIamGrantsForDefaultServiceAccounts
. Si has creado tu organización después del 3 de mayo del 2024, esta restricción se aplica de forma predeterminada.Si inhabilitas la concesión automática de roles, debes decidir qué roles quieres conceder a las cuentas de servicio predeterminadas y, a continuación, concederlos tú mismo.
Si la cuenta de servicio predeterminada ya tiene el rol Editor, te recomendamos que lo sustituyas por roles con menos permisos.Para modificar los roles de la cuenta de servicio de forma segura, usa Simulador de políticas para ver el impacto del cambio y, a continuación, asigna y revoca los roles adecuados.
Tu cuenta de servicio de Compute Engine debe tener los siguientes roles:
- Rol Administrador de Compute Storage
(
roles/compute.storageAdmin
): necesario para exportar e importar imágenes de máquina virtual - Rol Lector de objetos de Storage (
roles/storage.objectViewer
): necesario para importar imágenes de VM - Rol Administrador de objetos de Storage
(
roles/storage.objectAdmin
): obligatorio para exportar imágenes de máquina virtual
Consola
Ve a la página IAM y administración del proyecto o de la organización.
Busca la cuenta de servicio de Compute Engine y haz clic en
Editar.En la lista Selecciona un rol, elige los siguientes roles:
- Compute Engine > Administrador de almacenamiento de Compute
- Cloud Storage > Visor de objetos de almacenamiento
- Cloud Storage > Administrador de objetos de almacenamiento
Guarda los cambios.
gcloud
En los pasos siguientes, usarás el
gcloud projects add-iam-policy-binding
comando para asignar los roles necesarios a nivel de proyecto.Asigna 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 va a importar una imagen, asigne 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 vas a exportar una imagen, asigna 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'
REST
Lee la política actual con el método
getIamPolicy
del recurso. En el caso de los proyectos, utiliza el métodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Sustituye
PROJECT_ID
por el ID del proyecto (por ejemplo,my-project-1
).Para conceder los roles necesarios a tu cuenta, edita la política con un editor de texto.
Por ejemplo, para asignar los roles necesarios a
serviceAccount:12345-compute@developer.gserviceaccount.com
para importar una imagen, añade 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, usa el método
setIamPolicy
.Por ejemplo, para definir una política a nivel de proyecto, usa el método
project.setIamPolicy
. En el cuerpo de la solicitud, proporciona la política de gestión de identidades y accesos actualizada del paso anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Si no quieres usar la cuenta de servicio predeterminada de Compute Engine, puedes especificar una cuenta de servicio gestionada por el usuario con la marca
--compute-service-account
en los comandosgcloud
import y export. Para obtener más información sobre cómo usar una cuenta de servicio de Compute Engine personalizada, consulta los siguientes recursos:- Importar discos virtuales con cuentas de servicio personalizadas
- Importar aplicaciones virtuales con cuentas de servicio personalizadas
- Importar imágenes de máquinas de dispositivos virtuales con cuentas de servicio personalizadas
- Exportar imágenes personalizadas con cuentas de servicio personalizadas
Siguientes pasos
- Exporta imágenes personalizadas a Cloud Storage.
- Comparte tus imágenes entre proyectos.
- Elige un método de importación.
- Importar discos virtuales
- Importar aplicaciones virtuales
- Importar imágenes de máquinas de dispositivos virtuales
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-09-12 (UTC).
-