Para permitir que los usuarios creen, eliminen, utilicen o compartan sus imágenes personalizadas, debe otorgarles las funciones de Gestión de acceso e identidad (IAM) adecuadas. Este documento describe los permisos de IAM necesarios para crear y administrar imágenes personalizadas y cómo otorgárselos a los usuarios.
Para obtener información general sobre cómo otorgar acceso a los recursos de Compute Engine, consulte Administrar el acceso a los recursos de Compute Engine . Para obtener información sobre IAM, lea la documentación de IAM .
Antes de comenzar
- Lea la documentación de IAM .
- Lea acerca de los roles de IAM de Compute Engine , en particular, el rol de Usuario de Compute Image (
roles/compute.imageUser
). - 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.
- Administrador de IAM del proyecto (
roles/resourcemanager.projectIamAdmin
) en el proyecto - Administrador de Compute (
roles/compute.admin
) en el proyecto - Para otorgar a los usuarios o cuentas de servicio los permisos necesarios para crear, comparta imágenes personalizadas:
-
resourcemanager.projects.getIamPolicy
en el proyecto -
resourcemanager.projects.setIamPolicy
en el proyecto
-
- Para otorgar a los usuarios o cuentas de servicio los permisos necesarios para eliminar imágenes personalizadas:
-
resourcemanager.projects.getIamPolicy
en el proyecto -
resourcemanager.projects.setIamPolicy
en el proyecto -
compute.images.getIamPolicy
en la imagen -
compute.images.setIamPolicy
en la imagen
-
- Para revocar el acceso de la cuenta de usuario o de servicio a imágenes personalizadas:
-
resourcemanager.projects.getIamPolicy
en el proyecto -
resourcemanager.projects.setIamPolicy
en el proyecto
-
- Para crear una instancia usando una imagen compartida:
-
compute.instances.create
en el proyecto. - Para usar una imagen personalizada para crear la VM:
compute.images.useReadOnly
en la imagen - Para usar una instantánea para crear la VM:
compute.snapshots.useReadOnly
en la instantánea - Para usar una plantilla de instancia para crear la VM:
compute.instanceTemplates.useReadOnly
en la plantilla de instancia - Para asignar una red heredada a la VM:
compute.networks.use
en el proyecto - Para especificar una dirección IP estática para la VM:
compute.addresses.use
en el proyecto - Para asignar una dirección IP externa a la VM cuando se usa una red heredada:
compute.networks.useExternalIp
en el proyecto - Para especificar una subred para la VM:
compute.subnetworks.use
en el proyecto o en la subred elegida - Para asignar una dirección IP externa a la VM cuando se usa una red VPC:
compute.subnetworks.useExternalIp
en el proyecto o en la subred elegida - Para configurar metadatos de instancia de VM para la VM:
compute.instances.setMetadata
en el proyecto - Para configurar etiquetas para la VM:
compute.instances.setTags
en la VM - Para configurar etiquetas para la VM:
compute.instances.setLabels
en la VM - Para configurar una cuenta de servicio para que la use la VM:
compute.instances.setServiceAccount
en la VM - Para crear un nuevo disco para la VM:
compute.disks.create
en el proyecto - Para conectar un disco existente en modo de solo lectura o lectura-escritura:
compute.disks.use
en el disco - Para conectar un disco existente en modo de solo lectura:
compute.disks.useReadOnly
en el disco
-
-
compute.images.create
para crear nuevas imágenes. -
compute.images.list
para enumerar imágenes en el proyecto. -
compute.disks.use
si la imagen se crea desde un disco -
compute.disks.list
si los usuarios necesitan enumerar todos los discos en un proyecto En la consola de Google Cloud, vaya a la página de IAM del proyecto u organización.
Para agregar un nuevo miembro, haga clic en
Conceder acceso .En el campo Nuevos directores , ingrese la dirección de correo electrónico de la identidad a la que desea otorgar acceso.
Por ejemplo:
- Correo electrónico de la cuenta de Google:
test-user@gmail.com
- Grupo de Google:
admins@googlegroups.com
- Identidad de un proveedor de identidad externo :
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Cuenta de servicio:
server@example.gserviceaccount.com
- Dominio de Google Workspace:
example.com
- Correo electrónico de la cuenta de Google:
En la lista Seleccionar una función , seleccione Compute Engine > Compute Storage Admin o seleccione una función personalizada si creó una.
Opcional: Para controlar aún más el acceso del usuario a Google Cloud recursos, agregue enlace de rol condicional .
Guarde sus cambios.
-
ORGANIZATION_ID
oPROJECT_ID
: el ID de la organización o el ID del proyecto (por ejemplo,my-organization-1
omy-project-1
MEMBER
: una identidad válida a la que desea otorgarle el rolPor ejemplo:
- Correo electrónico de la cuenta de Google:
user:user@gmail.com
- Grupo de Google:
group:admins@googlegroups.com
- Identidad de un proveedor de identidad externo :
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Cuenta de servicio:
serviceAccount:server@example.gserviceaccount.com
- Dominio de Google Workspace:
domain:example.com
- Correo electrónico de la cuenta de Google:
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 organizaciones, utilice el método
organizations.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:getIamPolicy
Reemplace
ORGANIZATION_ID
con el ID de la organización; por ejemplo,123456578920
.Compute Engine devuelve la política actual en la respuesta.
Para agregar o eliminar miembros y sus roles asociados, edite la política con un editor de texto. Utilice el siguiente formato para agregar miembros:
-
user:test-user@gmail.com
-
group:admins@example.com
-
serviceAccount:test123@example.domain.com
-
domain:example.domain.com
Por ejemplo, para otorgar el rol
roles/compute.storageAdmin
agroup:admins@example.com
, agregue el siguiente enlace a la política:{ "members": [ "group:admins@example.com" ], "role":"roles/compute.storageAdmin" }
-
Escriba la política actualizada utilizando 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
Reemplace
PROJECT_ID
con el ID del proyecto.- Eliminar una imagen específica
- Eliminar imágenes propiedad de un proyecto específico
- Eliminar imágenes de cualquier proyecto de una organización
-
compute.images.delete
para eliminar imágenes -
compute.images.list
si los usuarios necesitan enumerar imágenes en el proyecto u organización compute.images.get
para obtener las imágenes.En la consola de Google Cloud, vaya a la página Imágenes .
Seleccione las imágenes a las que desea otorgar permisos.
Para expandir la columna de permisos, haga clic en Mostrar panel de información .
Para agregar uno o más miembros, haga clic en Agregar director .
En el campo Nuevos directores , ingrese la dirección de correo electrónico de la identidad con la que desea compartir la imagen.
Por ejemplo:
- Correo electrónico de la cuenta de Google:
test-user@gmail.com
- Grupo de Google:
admins@googlegroups.com
- Identidad de un proveedor de identidad externo :
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Cuenta de servicio:
server@example.gserviceaccount.com
- Dominio de Google Workspace:
example.com
- Correo electrónico de la cuenta de Google:
En la lista Función , mantenga el puntero sobre Compute Engine y seleccione Administrador de almacenamiento , o seleccione una función personalizada de la lista Personalizada .
Opcional: Para controlar aún más el acceso del usuario a Google Cloud recursos, agregue enlace de rol condicional .
Guarde sus cambios.
Vaya a la página de IAM del proyecto u organización.
Haga clic en
Conceder acceso .En el campo Nuevos directores , ingrese la dirección de correo electrónico de la identidad a la que desea otorgar acceso. Por ejemplo:
- Correo electrónico de la cuenta de Google:
test-user@gmail.com
- Grupo de Google:
admins@googlegroups.com
- Identidad de un proveedor de identidad externo :
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Cuenta de servicio:
server@example.gserviceaccount.com
- Dominio de Google Workspace:
example.com
- Correo electrónico de la cuenta de Google:
En la lista Función , mantenga el puntero sobre Compute Engine y seleccione Administrador de almacenamiento , o seleccione una función personalizada de la lista Personalizada .
Opcional: Para controlar aún más el acceso del usuario a Google Cloud recursos, agregue enlace de rol condicional .
Guarde sus cambios.
-
ORGANIZATION_ID
oPROJECT_ID
oIMAGE_NAME
: el ID numérico de la organización de 12 dígitos, el ID del proyecto o el nombre de la imagen; por ejemplo,123456578920
,my-project-1
omy-custom-image
MEMBER
: una identidad válida a la que desea otorgarle el rolPor ejemplo:
- Correo electrónico de la cuenta de Google:
user:user@gmail.com
- Grupo de Google:
group:admins@googlegroups.com
- Identidad de un proveedor de identidad externo :
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Cuenta de servicio:
serviceAccount:server@example.gserviceaccount.com
- Dominio de Google Workspace:
domain:example.com
- Correo electrónico de la cuenta de Google:
ROLE
: el rol que se asignará a esta identidad; por ejemplo, el rolroles/compute.storageAdmin
o un rol personalizado comoroles/customImageDeletionRole
Lea la política existente con el método
getIamPolicy
respectivo 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.Para organizaciones, utilice el método
organizations.getIamPolicy
:POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:getIamPolicy
Reemplace
ORGANIZATION_ID
con el ID numérico de la organización de 12 dígitos.Para una imagen específica, utilice el método
images.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto -
IMAGE_NAME
: el nombre de la imagen
Compute Engine devuelve la política actual en la respuesta.
-
Para agregar o eliminar miembros y sus roles asociados, puede editar la política con un editor de texto. Utilice el siguiente formato para agregar miembros:
-
user:test-user@gmail.com
-
group:admins@example.com
-
serviceAccount:test123@example.domain.com
-
domain:example.domain.com
Por ejemplo, para otorgar el rol
roles/compute.storageAdmin
aluser:test-email@example.com
, agregue el siguiente enlace a la política:{ "members": [ "user:test-email@example.com" ], "role":"roles/compute.storageAdmin" }
-
Escriba la política actualizada utilizando 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
Reemplace
PROJECT_ID
con el ID del proyecto.- Compute Image User (
roles/compute.imageUser
): permiso para enumerar, leer y usar imágenes en sus solicitudes, sin tener otros permisos sobre la imagen - Administrador de Compute Storage (
roles/compute.storageAdmin
): permisos para crear, modificar y eliminar discos, imágenes e instantáneas En la consola de Google Cloud, vaya a la página Imágenes .
Selecciona la imagen que deseas compartir con otros usuarios.
Para expandir la columna de permisos, haga clic en Mostrar panel de información .
Para agregar uno o más miembros, haga clic en Agregar director .
En el campo Nuevos directores , ingrese la dirección de correo electrónico de la identidad con la que desea compartir la imagen.
Por ejemplo:
- Correo electrónico de la cuenta de Google:
test-user@gmail.com
- Grupo de Google:
admins@googlegroups.com
- Identidad de un proveedor de identidad externo :
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Cuenta de servicio:
server@example.gserviceaccount.com
- Dominio de Google Workspace:
example.com
- Correo electrónico de la cuenta de Google:
En la lista Función , mantenga el puntero sobre Compute Engine y seleccione Usuario de imagen o Administrador de almacenamiento , o seleccione una función personalizada.
Opcional: Para controlar aún más el acceso del usuario a Google Cloudrecursos, agregue enlace de rol condicional .
Guarde sus cambios.
En la consola de Google Cloud, vaya a la página de IAM .
Haga clic en
Conceder acceso .En el campo Nuevos directores , ingrese la dirección de correo electrónico de la identidad con la que desea compartir la imagen. Por ejemplo:
- Correo electrónico de la cuenta de Google:
test-user@gmail.com
- Grupo de Google:
admins@googlegroups.com
- Identidad de un proveedor de identidad externo :
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Cuenta de servicio:
server@example.gserviceaccount.com
- Dominio de Google Workspace:
example.com
- Correo electrónico de la cuenta de Google:
En la lista Función , mantenga el puntero sobre Proyecto y seleccione Visor .
Opcional: Para controlar aún más el acceso del usuario a Google Cloudrecursos, agregue enlace de rol condicional .
Guarde sus cambios.
-
IMAGE_NAME
: el nombre de la imagen; por ejemplo,custom-centos-8
MEMBER
: una identidad válida para la cual desea otorgar el rolPor ejemplo:
-
user:test-user@gmail.com
-
group:admins@example.com
-
serviceAccount:test123@example.domain.com
-
domain:example.domain.com
-
ROLE
: el rol al que asignar esta identidad, comoroles/compute.imageUser
,roles/compute.storageAdmin
o un rol personalizadoLea la política existente con el método
getIamPolicy
del recurso. Por ejemplo, para obtener la política de una imagen específica, utilice el métodoimages.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto al que pertenece esta imagen -
IMAGE_NAME
: el nombre de la imagen
Compute Engine devuelve la política actual en la respuesta.
-
Para agregar o eliminar miembros y sus roles asociados, edite la política con un editor de texto. Utilice el siguiente formato para agregar miembros:
-
user:test-user@gmail.com
-
group:admins@example.com
-
serviceAccount:test123@example.domain.com
-
domain:example.domain.com
Por ejemplo, para otorgar
roles/compute.imageUser
atest-email@example.com
, agregue el siguiente enlace a la política:{ "members": [ "user:test-email@example.com" ], "role":"roles/compute.imageUser" }
-
Escriba la política actualizada utilizando el método
setIamPolicy
. Por ejemplo, para establecer una política en una imagen específica, utilice el métodoproject.setIamPolicy
. En el cuerpo de la solicitud, proporcione la política de IAM actualizada del paso anterior.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto al que pertenece esta imagen -
IMAGE_NAME
: el nombre de la imagen
-
En la consola de Google Cloud, vaya a la página Imágenes .
Selecciona la imagen que deseas compartir con otros usuarios.
Para expandir la columna de permisos, haga clic en Mostrar panel de información .
Para agregar uno o más miembros, haga clic en Agregar director .
En el campo Nuevos directores , ingrese la dirección de correo electrónico del grupo con el que desea compartir la imagen. Por ejemplo,
admins@example.com
.En la lista Función , mantenga el puntero sobre Compute Engine y seleccione Compute Image User .
Opcional: Para controlar aún más el acceso del usuario a Google Cloudrecursos, agregue enlace de rol condicional .
Guarde sus cambios.
En la consola de Google Cloud, vaya a la página de IAM .
Haga clic en
Conceder acceso .En el campo Nuevos directores , ingrese la dirección de correo electrónico de la identidad con la que desea compartir la imagen. Por ejemplo,
admins@example.com
.En la lista Función , mantenga el puntero sobre Proyecto y seleccione Visor .
Opcional: Para controlar aún más el acceso del usuario a Google Cloudrecursos, agregue enlace de rol condicional .
Guarde sus cambios.
-
IMAGE_NAME
: el nombre de la imagen; por ejemplo,custom-centos-8
-
MEMBER
: una identidad válida para la cual desea otorgar el rol; por ejemplo,group:admins@example.com
Lea la política existente con el método
getIamPolicy
del recurso. Por ejemplo, para obtener la política de una imagen específica, utilice el métodoimages.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto al que pertenece esta imagen -
IMAGE_NAME
: el nombre de la imagen
Compute Engine devuelve la política actual en la respuesta.
-
Para agregar o eliminar miembros y sus roles asociados, puede editar la política con un editor de texto. Utilice el siguiente formato para agregar miembros:
-
user:test-user@gmail.com
-
group:admins@example.com
-
serviceAccount:test123@example.domain.com
-
domain:example.domain.com
Por ejemplo, para otorgar
roles/compute.imageUser
atest-user@example.com
, agregue el siguiente enlace a la política:{ "members": [ "user:test-user@example.com" ], "role":"roles/compute.imageUser" }
-
Escriba la política actualizada utilizando el método
setIamPolicy
. Por ejemplo, para establecer una política en una imagen específica, utilice el métodoimages.setIamPolicy
. En el cuerpo de la solicitud, proporcione la política de IAM actualizada del paso anterior.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto al que pertenece esta imagen -
IMAGE_NAME
: el nombre de la imagen
Opcionalmente, para permitir que los usuarios vean estas imágenes compartidas en sus solicitudes
images.list
, otorgue a los usuarios el rol de IAM de Visor (roles/viewer
) para el proyecto de imagen mediante el métodoprojects.setIamPolicy
. Si no necesita que sus usuarios puedan ver la lista de imágenes compartidas, puede omitir este paso.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
-
Lea la política existente con el método
getIamPolicy
. Por ejemplo, para obtener la política de una imagen específica, utilice el métodoimages.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto al que pertenece esta imagen -
IMAGE_NAME
: el nombre de la imagen
Compute Engine devuelve la política actual en la respuesta.
-
Para agregar o eliminar miembros y sus roles asociados, edite la política con un editor de texto:
{ "members": [ "allAuthenticatedUsers" ], "role":"roles/compute.imageUser" }
Escriba la política actualizada utilizando el método
setIamPolicy
. Por ejemplo, para establecer una política en una imagen específica, utilice el métodoimages.setIamPolicy
. En el cuerpo de la solicitud, proporcione la política de IAM actualizada del paso anterior.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto al que pertenece esta imagen -
IMAGE_NAME
: el nombre de la imagen
-
- El proyecto A quiere crear un MIG utilizando imágenes propiedad del proyecto B.
- El Proyecto B otorga a la cuenta de servicio del Proyecto A la función Compute Image User.
- El Proyecto A ahora puede usar imágenes del Proyecto B para crear MIG.
En la consola de Google Cloud, vaya a la página IAM del proyecto a cuya cuenta de servicio desea otorgar acceso.
Si se le solicita, seleccione su proyecto de la lista.
Busque el Agente de servicios de API de Google , que tiene la dirección de correo electrónico en el siguiente formato:
PROJECT_NUMBER@cloudservices.gserviceaccount.com
- Otorgar acceso MIG a todas las imágenes de un proyecto
- Otorgar acceso MIG a imágenes específicas en un proyecto
En la consola de Google Cloud, vaya a la página IAM del proyecto de imagen.
Para agregar un nuevo miembro, haga clic en
Conceder acceso .En el campo Nuevos directores , agregue la dirección de correo electrónico de la cuenta de servicio.
En la lista Función , mantenga el puntero sobre Computar y seleccione Computar usuario de imagen .
Opcional: Para controlar aún más el acceso del usuario a Google Cloudrecursos, agregue enlace de rol condicional .
Haga clic en Guardar .
Vuelva al proyecto de la cuenta de servicio.
-
PROJECT_ID
: el ID del proyecto que contiene las imágenes que deseas compartir -
SERVICE_ACCOUNT_EMAIL
: el correo electrónico de la cuenta de servicio Obtenga la política de IAM del proyecto de imagen mediante el método
projects.getIamPolicy
:POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Reemplace
PROJECT_ID
con el ID del proyecto de imagen.Para otorgar el rol
roles/compute.imageUser
a la cuenta de servicio, edite la política con un editor de texto:{ "bindings": [ { "role": "roles/compute.imageUser", "members": [ "serviceAccount:SERVICE_ACCOUNT_EMAIL" ] } ] }
Reemplace
SERVICE_ACCOUNT_EMAIL
con el correo electrónico de la cuenta de servicio.Escriba la política actualizada utilizando
projects.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
Reemplace
PROJECT_ID
con el ID del producto del proyecto de imagen.Ahora puede crear una plantilla de instancia basada en una imagen del proyecto de imagen y crear un MIG basado en la plantilla de instancia.
En la consola de Google Cloud, vaya a la página Imágenes del proyecto de imagen.
Selecciona las casillas de verificación junto a las imágenes que deseas compartir.
Para expandir la columna de permisos, haga clic en Mostrar panel de información .
En el panel Permisos , haga clic en Agregar entidad principal .
En el campo Nuevos directores , ingrese el correo electrónico de la cuenta de servicio con la que desea compartir la imagen. Por ejemplo,
test123@example.domain.com
.En la lista Función , elija Computar y seleccione Computar usuario de imagen .
Opcional: Para controlar aún más el acceso del usuario a Google Cloud recursos, agregue enlace de rol condicional .
Haga clic en Guardar .
Vuelva al proyecto de la cuenta de servicio.
-
IMAGE_NAME
: el nombre de la imagen que deseas compartir -
SERVICE_ACCOUNT_EMAIL
: el correo electrónico de la cuenta de servicio Obtenga la política de IAM de una imagen utilizando el método
images.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto del proyecto de imagen. -
IMAGE_NAME
: el nombre de la imagen que deseas compartir
-
Para otorgar el rol
roles/compute.imageUser
a la cuenta de servicio, edite la política con un editor de texto:{ "bindings": [ { "role": "roles/compute.imageUser", "members": [ "serviceAccount:SERVICE_ACCOUNT_EMAIL" ] } ] }
Reemplace
SERVICE_ACCOUNT_EMAIL
con el correo electrónico de la cuenta de servicio.Escriba la política actualizada utilizando el método
images.setIamPolicy
. En el cuerpo de la solicitud, proporcione la política de IAM actualizada del paso anterior.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto del proyecto de imagen. -
IMAGE_NAME
: el nombre de la imagen que deseas compartir
Ahora puede crear una plantilla de instancia basada en una imagen del proyecto de imagen y crear un MIG basado en la plantilla de instancia.
-
Encuentra el ID de la organización de tu organización usando el comando
gcloud organization list
:gcloud organizations list
Obtén la configuración de políticas existente para tu organización mediante el comando
gcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe \ compute.storageResourceUseRestrictions \ --organization ORGANIZATION_ID > org-policy.yaml
Reemplace ORGANIZATION_ID con su ID de organización numérico de 12 dígitos.
Abra el archivo
org-policy.yaml
en un editor de texto y modifique la restriccióncompute.storageResourceUseRestrictions
. Agregue las restricciones que necesite o elimine las restricciones que ya no necesite. Cuando termine de editar el archivo, guarde los cambios. Por ejemplo, puede establecer la siguiente entrada de restricción en su archivo de política:constraint: compute.storageResourceUseRestrictions listPolicy: allowedValues: - under:organization/organization-id
Aplica el archivo
org-policy.yaml
a tu organización mediante el comandogcloud resource-manager org-policies set-policy
:gcloud resource-manager org-policies set-policy \ --organization=ORGANIZATION_ID org-policy.yaml
Reemplace ORGANIZATION_ID con su ID de organización numérico de 12 dígitos.
En la consola de Google Cloud, vaya a la página Imágenes del proyecto de imagen.
Seleccione las casillas de verificación junto a las imágenes que desea actualizar.
Para expandir la columna de permisos, haga clic en Mostrar panel de información .
Expanda el rol para el cual desea eliminar usuarios.
Para eliminar a un usuario de esa función, haga clic en
Eliminar .-
IMAGE_NAME
: el nombre de la imagen; por ejemplo,my_image
MEMBER
: la identidad que desea eliminarDebe tener el formato
user|group|serviceAccount:email
odomain:domain
. Por ejemplo:-
user:test-user@gmail.com
-
group:admins@example.com
-
serviceAccount:test123@example.domain.com
-
domain:example.domain.com
-
ROLE
: el rol del cual desea eliminar la identidadLea la política existente con el método
images.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto al que pertenece esta imagen -
IMAGE_NAME
: el nombre de la imagen
Compute Engine devuelve la política actual en la respuesta.
-
Para eliminar miembros y sus roles asociados, edite la política con un editor de texto.
Escriba la política actualizada utilizando el método
images.setIamPolicy
. En el cuerpo de la solicitud, proporcione la política de IAM actualizada del paso anterior.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/global/images/IMAGE_NAME:setIamPolicy
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto al que pertenece esta imagen -
IMAGE_NAME
: el nombre de la imagen
-
- Lea sobre IAM .
- Consulta una lista de funciones de IAM de Compute Engine .
- Aprende sobre imágenes .
- Aprenda a crear una instancia utilizando una imagen compartida .
- Aprenda a crear un disco persistente de arranque independiente .
- Aprenda a utilizar esta función con sus implementaciones de Deployment Manager .
- Aplique el principio de privilegio mínimo otorgando acceso a recursos específicos de Compute Engine en lugar de a un proyecto completo.
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 .
Roles requeridos
Para obtener los permisos que necesita para administrar el acceso a imágenes personalizadas, solicite a su administrador que le otorgue las siguientes funciones de IAM:
Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .
Estos roles predefinidos contienen los permisos necesarios para administrar el acceso a imágenes personalizadas. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :
Permisos requeridos
Se requieren los siguientes permisos para administrar el acceso a imágenes personalizadas:
Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .
Limitaciones
En imágenes, no puedes otorgar roles al tipo de miembro especial
allUsers
.Dar permiso para crear imágenes personalizadas
Puede brindar a los usuarios la posibilidad de crear imágenes personalizadas en su organización o proyecto.
Compute Engine ofrece la función de administrador de Compute Storage predefinida (
roles/compute.storageAdmin
) que puedes asignar a los usuarios para que puedan crear, eliminar y administrar recursos relacionados con el almacenamiento, incluidas imágenes, discos e instantáneas. Si necesita un rol que solo permita la creación de imágenes, debe crear un rol personalizado . En su rol personalizado, incluya los siguientes permisos:Si le brinda a un usuario la capacidad de crear imágenes personalizadas a nivel de organización, el usuario puede crear imágenes personalizadas para cualquier proyecto dentro de la organización.
Consola
nube de gcloud
Para otorgar la función
roles/compute.storageAdmin
a nivel de organización, usa el comandogcloud organizations add-iam-policy-binding
:gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member='MEMBER' \ --role='roles/compute.storageAdmin'
Para otorgar la función
roles/compute.storageAdmin
a nivel de proyecto, usa el comandogcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/compute.storageAdmin'
Reemplace lo siguiente:
DESCANSAR
Dar permisos para eliminar imágenes personalizadas
Dependiendo de sus necesidades, puede otorgar permiso a los usuarios para hacer lo siguiente:
Dar permiso a nivel de proyecto permite a los usuarios eliminar todas las imágenes que pertenecen a ese proyecto. Otorgar permiso a nivel de organización permite al usuario eliminar cualquier imagen que pertenezca a esa organización, independientemente del proyecto.
Compute Engine ofrece la función de administrador de Compute Storage predefinida (
roles/compute.storageAdmin
) que puedes asignar a los usuarios para que puedan crear, eliminar y administrar recursos relacionados con el almacenamiento, incluidas imágenes, discos e instantáneas. Si necesita una función que solo permita la eliminación de imágenes, debe crear una función personalizada . En su rol personalizado, incluya los siguientes permisos:Consola
Para dar permiso para eliminar imágenes específicas, haga lo siguiente:
Para otorgar permiso para eliminar imágenes de un proyecto u organización, haga lo siguiente:
nube de gcloud
Para otorgar permisos para eliminar imágenes a nivel de organización, usa el comando
gcloud organizations add-iam-policy-binding
:gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member='MEMBER' \ --role='ROLE'
Para otorgar permisos para eliminar imágenes a nivel de proyecto, usa el comando
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='ROLE'
Para otorgar permisos para eliminar una imagen específica, usa el comando
gcloud compute images add-iam-policy-binding
:gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='ROLE'
Reemplace lo siguiente:
DESCANSAR
Dar permisos para compartir imágenes personalizadas dentro de una organización
Si su proyecto pertenece a una organización, la organización puede tener varios otros proyectos con distintos niveles de acceso a otros proyectos. Cuando crea imágenes personalizadas, puede compartirlas con otros usuarios de otros proyectos dentro de la organización.
Compute Engine ofrece las siguientes funciones de IAM predefinidas que puedes usar para la administración de imágenes:
Como alternativa, también puede crear su propia función de IAM personalizada .
Como práctica recomendada, le recomendamos que mantenga todas sus imágenes personalizadas en un único proyecto dedicado a alojar estas imágenes. Esta práctica mejora la gestión de esas imágenes y le permite otorgar acceso a equipos específicos solo a las imágenes que necesitan. También puede otorgar acceso a los equipos a todo el proyecto de imagen, pero debido a que el acceso del equipo a todo el proyecto de imagen viola el principio de privilegio mínimo, no lo recomendamos.
El siguiente ejemplo muestra cómo agregar un grupo para que los usuarios de ese grupo tengan acceso a la imagen.
Consola
Para permitir que los usuarios inicien imágenes personalizadas compartidas desde la consola de Google Cloud, otorgue a los usuarios la función de IAM de Visor (
roles/viewer
) para el proyecto de imagen. Otorgar esta función ayuda a garantizar que las imágenes compartidas aparezcan en la lista de selección de imágenes.nube de gcloud
Para actualizar la política de IAM para una imagen específica, usa el comando
gcloud compute images add-iam-policy-binding
:gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='ROLE'
Reemplace lo siguiente:
Opcionalmente, para permitir que los usuarios vean estas imágenes compartidas en sus solicitudes
images.list
, otorgue a los usuarios la función de IAM de Visor (roles/viewer
) para el proyecto de imagen mediante el comandogcloud projects add-iam-policy-binding
. Si no necesita que sus usuarios puedan ver la lista de imágenes compartidas, puede omitir este paso.gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
DESCANSAR
Opcionalmente, para permitir que los usuarios vean estas imágenes compartidas en sus solicitudes
images.list
, otorgue a los usuarios el rol de IAM de Visor (roles/viewer
) para el proyecto de imagen mediante el métodoprojects.setIamPolicy
. Si no necesita que sus usuarios puedan ver la lista de imágenes compartidas, puede omitir este paso.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Dar permisos para compartir imágenes personalizadas entre organizaciones
Crear un catálogo de imágenes personalizadas puede resultar útil para compartir imágenes con socios, usuarios o contratistas que están fuera de su organización. Para compartir sus imágenes con usuarios fuera de la organización, agréguelos como Usuarios de imágenes a su proyecto:
Consola
Para permitir que los usuarios inicien imágenes personalizadas compartidas desde la consola de Google Cloud, otorgue a los usuarios la función de IAM de Visor (
roles/viewer
) para el proyecto de imagen. Otorgar esta función ayuda a garantizar que las imágenes compartidas aparezcan en la lista de selección de imágenes.nube de gcloud
Para otorgar la función
roles/compute.imageUser
a los usuarios, usa el comandogcloud compute images add-iam-policy-binding
:gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='roles/compute.imageUser'
Reemplace lo siguiente:
Opcionalmente, para permitir que los usuarios vean estas imágenes compartidas en sus solicitudes
images.list
, otorgue a los usuarios la función de IAM de Visor (roles/viewer
) para el proyecto de imagen mediante el comandogcloud projects add-iam-policy-binding
. Si no necesita que sus usuarios puedan ver la lista de imágenes compartidas, puede omitir este paso.gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
DESCANSAR
Dar permisos para compartir imágenes personalizadas públicamente
Puedes compartir tus imágenes personalizadas con todos los usuarios autenticados de Compute Engine, independientemente de si son parte de tu organización o proyecto.
Sólo puedes compartir recursos, como imágenes, con todos los usuarios autenticados; No puede compartir proyectos u organizaciones con todos los usuarios autenticados. Esta restricción y la jerarquía de recursos ayudan a evitar que una organización comparta inadvertidamente todo su proyecto con todos los usuarios autenticados de Compute Engine.
El siguiente ejemplo muestra cómo otorgar a todos los usuarios autenticados de Compute Engine la función de Usuario de Compute Image (
roles/compute.imageUser
) para una imagen personalizada.nube de gcloud
Para hacer públicas las imágenes, usa el comando
gcloud compute images add-iam-policy-binding
:gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='allAuthenticatedUsers' \ --role='roles/compute.imageUser'
Reemplace
IMAGE_NAME
con el nombre del recurso (por ejemplo,my_image
).DESCANSAR
Otorgar acceso a imágenes a un grupo de instancias administrado
Compute Engine te permite crear grupos de instancias, ya sea como grupos de instancias administrados o no administrados . Si crea un grupo de instancias administrado (MIG), Compute Engine utiliza el agente de servicio de las API de Google para llamar a la API de Compute Engine y realizar acciones relacionadas con el grupo, como recrear instancias en mal estado y actualizar instancias.
Si desea crear un MIG utilizando una imagen de otro proyecto, otorgue el rol de Usuario de Compute Image (
roles/compute.imageUser
) a la cuenta de servicio de API que pertenece al proyecto que crea el MIG. Por ejemplo:Después de otorgar la función Compute Image User, puede acceder a la imagen desde otros proyectos mediante la consola o la URL de la imagen cuando crea la plantilla de instancia para el grupo administrado.
Obtenga la dirección de correo electrónico de la cuenta de servicio
Después de recuperar la dirección de correo electrónico de la cuenta de servicio, puede ir a una de las siguientes secciones:
Otorgar acceso MIG a todas las imágenes de un proyecto
Ahora que tiene la dirección de correo electrónico de una cuenta de servicio, puede agregar la dirección a otro proyecto y otorgarle la función Compute Image User (
roles/compute.imageUser
).Consola
Ahora puede crear una plantilla de instancia basada en una imagen del proyecto de imagen y crear un MIG basado en la plantilla de instancia.
nube de gcloud
Agrega una cuenta de servicio desde el proyecto de imagen usando el comando
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' --role='roles/compute.imageUser'
Reemplace lo siguiente:
Ahora puede crear una plantilla de instancia basada en una imagen del proyecto de imagen y crear un MIG basado en la plantilla de instancia.
DESCANSAR
Otorgar acceso MIG a imágenes específicas en un proyecto
Ahora que tiene la dirección de correo electrónico de una cuenta de servicio, puede agregar la dirección a otro proyecto y otorgar el rol de Usuario de Compute Image (
roles/compute.imageUser
) para ciertas imágenes.Consola
Ahora puede crear una plantilla de instancia basada en una imagen del proyecto de imagen y crear un MIG basado en la plantilla de instancia.
nube de gcloud
Para otorgar acceso a una cuenta de servicio a una imagen específica, usa el comando
gcloud compute images add-iam-policy-binding
:gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \ --role='roles/compute.imageUser'
Reemplace lo siguiente:
Ahora puede crear una plantilla de instancia basada en una imagen del proyecto de imagen y crear un MIG basado en la plantilla de instancia.
DESCANSAR
Controla el uso de tus imágenes e instantáneas compartidas
Después de compartir sus imágenes con otros usuarios, puede controlar dónde esos usuarios emplean esos recursos dentro de su organización. Establezca la restricción
constraints/compute.storageResourceUseRestrictions
para definir los proyectos donde los usuarios pueden usar sus recursos de almacenamiento.Debe tener permiso para modificar las políticas de su organización para establecer estas restricciones. Por ejemplo, el rol
resourcemanager.organizationAdmin
tiene permiso para establecer estas restricciones.Cuando termine de configurar las restricciones en la política de su organización, pruebe esas restricciones para asegurarse de que creen las restricciones que desea.
Usar imágenes de otro proyecto
Si alguien le otorga acceso a una o más imágenes en otro proyecto, puede acceder a estas imágenes en el proyecto especificando el proyecto de imagen en sus solicitudes.
Por ejemplo, para crear una instancia usando una imagen compartida de otro proyecto, siga los pasos que se enumeran en Crear una instancia a partir de una imagen compartida .
También puede crear volúmenes de disco de arranque a partir de imágenes de otro proyecto. Para obtener información sobre cómo crear un disco de arranque a partir de una imagen, consulte Creación de un disco persistente de arranque independiente .
Revocar el acceso a imágenes compartidas
Después de que un usuario ya no necesite acceso a tus recursos de Compute Engine, revoca su acceso mediante la consola de Google Cloud, la CLI de Google Cloud o REST.
Consola
nube de gcloud
Para eliminar a un usuario de una función en una imagen, usa el comando
gcloud compute images remove-iam-policy-binding
con las marcas--member
y--role
:gcloud compute images remove-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='ROLE'
Reemplace lo siguiente:
Si estás revocando el acceso a un recurso que está en versión beta, usa un comando
gcloud beta compute
en su lugar.DESCANSAR
¿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-17 (UTC).
-