En esta página se describe cómo puedes aplicar el principio de mínimos privilegios concediendo acceso a recursos específicos de Compute Engine en lugar de conceder acceso a un recurso superior, como un proyecto, una carpeta o una organización.
Para conceder acceso a un recurso, debes definir una política de Gestión de Identidades y Accesos (IAM) en el recurso. La política vincula uno o varios miembros, como un usuario o una cuenta de servicio, a uno o varios roles. Cada rol contiene una lista de permisos que permiten al miembro interactuar con el recurso.
Si concedes acceso a un recurso principal (por ejemplo, a un proyecto), también se concederá acceso a todos sus recursos secundarios (por ejemplo, a todas las máquinas virtuales de ese proyecto). Para limitar el acceso a los recursos, define políticas de gestión de identidades y accesos en los recursos de nivel inferior siempre que sea posible, en lugar de hacerlo a nivel de proyecto o superior.
Para obtener información general sobre cómo conceder, cambiar y revocar el acceso a recursos que no estén relacionados con Compute Engine (por ejemplo, para conceder acceso a un Google Cloud proyecto), consulta la documentación de IAM sobre cómo conceder, cambiar y revocar el acceso a los recursos.
Antes de empezar
- Consulta la descripción general de IAM.
- Consulta la descripción general del control de acceso de Compute Engine.
- Familiarízate con los roles de gestión de identidades y accesos de Compute Engine .
-
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 .
Roles obligatorios
Para obtener los permisos que necesitas para gestionar el acceso a los recursos de Compute Engine, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de Compute (
roles/compute.admin
) en el recurso. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.Este rol predefinido contiene los permisos necesarios para gestionar el acceso a los recursos de Compute Engine. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para gestionar el acceso a los recursos de Compute Engine, se necesitan los siguientes permisos:
-
Para conceder o revocar el acceso a los recursos, sigue estos pasos:
-
compute.projects.get
en el proyecto -
compute.RESOURCE_TYPE.get
en el recurso -
compute.RESOURCE_TYPE.getIamPolicy
en el recurso -
compute.RESOURCE_TYPE.setIamPolicy
en el recurso
-
-
Para probar los permisos de la persona que llama, haz lo siguiente:
compute.RESOURCE_TYPE.getIamPolicy
en el recursoSustituye RESOURCE_TYPE por el recurso al que quieras gestionar el acceso. Por ejemplo,
instances
,instanceTemplates
oimages
.
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Recursos compatibles
Para ver una lista de recursos de Compute Engine que admiten el control de acceso a nivel de recurso, consulta Tipos de recursos que aceptan políticas de gestión de identidades y accesos y filtra por Compute Engine.
En el caso de otros recursos de Compute Engine que no admitan el control de acceso a nivel de recurso, debes gestionar el acceso a esos recursos a nivel de proyecto, carpeta u organización. Para obtener información sobre organizaciones, carpetas o proyectos, consulta el artículo Jerarquía de recursos.
Conceder acceso a los recursos de Compute Engine
Una entidad principal, como un usuario o una cuenta de servicio, puede acceder a los recursos de Compute Engine. Una identidad es una propiedad de una entidad. La identidad de un principal se representa normalmente mediante una dirección de correo asociada a la cuenta.
Antes de asignar un rol de gestión de identidades y accesos a una entidad principal en un recurso, comprueba qué roles se pueden asignar en ese recurso concreto. Para obtener más información, consulta el artículo sobre cómo ver los roles que se pueden asignar a los recursos.
Para conceder permiso para acceder a recursos de Compute Engine específicos, define una política de gestión de identidades y accesos en el recurso.
Consola
- En la Google Cloud consola, ve a la página del recurso correspondiente al que quieras añadir permisos.
- Para las instancias, ve a la página Instancias de VM.
- Para ver los discos zonales y regionales, ve a la página Discos.
- Para ver las capturas, ve a la página Capturas.
- En el caso de las imágenes, ve a la página Imágenes.
- En el caso de las plantillas de instancia, ve a la página Plantillas de instancia.
- En el caso de las imágenes de máquina, ve a la página Imágenes de máquina.
- Para ver las reservas, ve a la página Reservas.
- En el caso de los nodos de único cliente, ve a la página Nodos de único cliente.
- Seleccione las casillas situadas junto a los recursos que quiera actualizar.
- Sigue los pasos que se indican en la página de recursos.
- En el caso de las instancias de VM, haz clic en Permisos.
- En cuanto al resto de los recursos, siga estos pasos:
- Comprueba si el panel de información está visible. Si no aparece, haz clic en Mostrar panel de información.
- Selecciona la pestaña Permisos.
- Haz clic en Añadir principal.
- Añade la identidad de la cuenta principal y selecciona el rol necesario.
- Para guardar los cambios, haz clic en Guardar.
gcloud
Para asignar un rol a una entidad en un recurso, usa el subcomando
add-iam-policy-binding
de ese recurso con las marcas--member
y--role
.gcloud compute RESOURCE_TYPE add-iam-policy-binding RESOURCE_NAME \ --member='PRINCIPAL' \ --role='ROLE'
Haz los cambios siguientes:
RESOURCE_TYPE
: el tipo de recurso. Los valores válidos son los siguientes:disks
images
instances
instance-templates
machine-images
reservations
sole-tenancy node-groups
sole-tenancy node-templates
snapshots
RESOURCE_NAME
: el nombre del recurso. Por ejemplo,my_instance
.PRINCIPAL
: una identidad válida de la cuenta principal a la que quieres asignar el rol. Debe tener el formatouser|group|serviceAccount:EMAIL_ADDRESS
odomain:DOMAIN_ADDRESS
. Por ejemplo:user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: el rol que se asignará a esta entidad.
Si vas a conceder acceso a un recurso que está en versión preliminar, usa el comando
gcloud beta compute
.REST
Para modificar una política de gestión de identidades y accesos a través de la API, haz lo siguiente:
Lee la política actual con el método
getIamPolicy
correspondiente del recurso. Por ejemplo, la siguiente solicitud HTTP lee la política de gestión de identidades y accesos de una VM:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto al que pertenece esta VM.ZONE
: la zona de la VM. Para los recursos regionales o globales, sustituyezones/ZONE
porregions/REGION
oglobal
.VM_NAME
: el nombre de la instancia de VM.
Compute Engine devuelve la política actual en la respuesta.
Edita la política con un editor de texto para añadir o quitar principales y sus roles asociados. Por ejemplo, para asignar el rol
compute.admin
a email@example.com, añade la siguiente vinculación a la política:{ "members": [ "user:email@example.com" ], "role":"roles/compute.admin" }
Escribe la política actualizada con
setIamPolicy()
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto al que pertenece esta VM.ZONE
: la zona de la VM. Para los recursos regionales o globales, sustituyezones/ZONE
porregions/REGION
oglobal
.VM_NAME
: el nombre de la instancia de VM.
En el cuerpo de la solicitud, proporciona la política de IAM actualizada del paso anterior.
Revocar el acceso a los recursos
Como práctica recomendada, cuando las entidades de seguridad ya no necesiten acceder a tus recursos de Compute Engine, revoca su acceso.
Consola
- En la Google Cloud consola, ve a la página del recurso correspondiente al que quieras añadir permisos.
- Para las instancias, ve a la página Instancias de VM.
- Para ver los discos zonales y regionales, ve a la página Discos.
- Para ver las capturas, ve a la página Capturas.
- En el caso de las imágenes, ve a la página Imágenes.
- En el caso de los grupos de instancias, ve a la página Grupos de instancias.
- En el caso de las plantillas de instancia, ve a la página Plantillas de instancia.
- En el caso de las imágenes de máquina, ve a la página Imágenes de máquina.
- Para ver las reservas, ve a la página Reservas.
- En el caso de los nodos de único cliente, ve a la página Nodos de único cliente.
- Seleccione las casillas situadas junto a los recursos que quiera actualizar.
- Sigue los pasos que se indican en la página de recursos.
- En el caso de las instancias de VM, haz clic en Permisos.
- En cuanto al resto de los recursos, siga estos pasos:
- Comprueba si el panel de información está visible. Si no aparece, haz clic en Mostrar panel de información.
- Selecciona la pestaña Permisos.
- Haz clic en la tarjeta del rol del que quieras quitar principales. Se desplegará la tarjeta y se mostrarán los usuarios que tienen ese rol en ese recurso.
- Para quitar un principal de ese rol, haz clic en Eliminar.
gcloud
Para quitar un rol de una entidad de un recurso, usa el subcomando
remove-iam-policy-binding
del recurso con las marcas--member
y--role
.gcloud compute RESOURCE_TYPE remove-iam-policy-binding RESOURCE_NAME \ --member='MEMBER' \ --role='ROLE'
Haz los cambios siguientes:
RESOURCE_TYPE
: tipo de recurso. Los valores válidos son los siguientes:disks
images
instances
instance-templates
machine-images
reservations
sole-tenancy node-groups
sole-tenancy node-templates
snapshots
RESOURCE_NAME
: nombre del recurso. Por ejemplo,my_instance
.PRINCIPAL
: una identidad válida para la entidad de seguridad. Debe tener el formatouser|group|serviceAccount:EMAIL_ADDRESS
odomain:DOMAIN_ADDRESS
. Por ejemplo:user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: rol del que quieres quitar el principal.
Si vas a revocar el acceso a un recurso que está en versión preliminar, usa el comando
gcloud beta compute
.REST
Para modificar una política de gestión de identidades y accesos directamente a través de la API, haz lo siguiente:
Lee la política actual con el método
getIamPolicy
correspondiente del recurso. Por ejemplo, la siguiente solicitud HTTP lee la política de gestión de identidades y accesos de una VM:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto al que pertenece esta VM.ZONE
: la zona de la VM. Para los recursos regionales o globales, sustituyezones/ZONE
porregions/REGION
oglobal
.VM_NAME
: el nombre de la instancia de VM.
Compute Engine devuelve la política actual en la respuesta.
Edita la política con un editor de texto para quitar miembros de los roles asociados. Por ejemplo, para quitar email@example.com del rol
compute.admin
, sigue estos pasos:{ "members": [ "user:owner@example.com" ], "role":"roles/compute.admin" }
Escribe la política actualizada con
setIamPolicy()
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto al que pertenece esta VM.ZONE
: la zona de la VM. Para los recursos regionales o globales, sustituyezones/ZONE
porregions/REGION
oglobal
.VM_NAME
: el nombre de la instancia de VM.
En el cuerpo de la solicitud, proporciona la política de IAM actualizada del paso anterior.
Probar si un llamador tiene permisos
Si no sabes qué permisos tiene una identidad, usa el método de la API
testIamPermissions
para comprobar qué permisos están disponibles para una identidad.El método toma una URL de recurso y un conjunto de permisos como parámetros de entrada, y devuelve el conjunto de permisos que tiene el llamante. Puedes usar este método en cualquiera de los recursos admitidos.
Normalmente,
testIamPermissions
se integra con tu software propietario, como una interfaz gráfica de usuario personalizada. Normalmente, no llamas atestIamPermissions
si usas Google Clouddirectamente para gestionar los permisos.Por ejemplo, si estás creando una interfaz gráfica de usuario (GUI) sobre la API de Compute Engine y tu GUI tiene un botón "Iniciar" que inicia una instancia, puedes llamar a
compute.instances.testIamPermissions()
para determinar si el botón debe estar habilitado o inhabilitado.Para comprobar si un llamante tiene permisos específicos en un recurso, sigue estos pasos:
Envía una solicitud al recurso e incluye en el cuerpo de la solicitud una lista de permisos que quieras comprobar.
Por ejemplo, en una instancia, puedes comprobar
compute.instances.start
,compute.instances.stop
ycompute.instances.delete
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/testIamPermissions { "permissions": [ "compute.instances.start", "compute.instances.stop", "compute.instances.delete" ] }
La solicitud devuelve los permisos que están habilitados para el llamador.
{ "permissions": [ "compute.instances.start", "compute.instances.stop" ] }
Modificar el acceso a los recursos de varios miembros
Si quieres modificar el acceso a los recursos de Compute Engine de varios miembros a la vez, consulta las recomendaciones sobre cómo modificar una política de gestión de identidades y accesos mediante programación.
Siguientes pasos
- Consulta cómo gestionar el acceso a imágenes personalizadas con la gestión de identidades y accesos.
- Más información sobre las cuentas de servicio
- Consulta más información sobre los roles de gestión de identidades y accesos de Compute Engine.
- Consulta más información sobre los permisos incluidos en los roles de gestión de identidades y accesos predefinidos de Compute Engine.
- Consulta cómo crear y gestionar roles personalizados.
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).
-