Descripción general del control de acceso

De forma predeterminada, todos los proyectos de Google Cloud incluyen un solo usuario, es decir, el creador original del proyecto. Ningún otro usuario tiene acceso al proyecto y, por lo tanto, tampoco puede acceder a recursos de Compute Engine hasta que se lo agregue como miembro del proyecto o se lo vincule a un recurso específico. En esta página, se describe cómo agregar usuarios nuevos al proyecto y cómo establecer el control de acceso para los recursos de Compute Engine.

Además, si ejecutas apps en una instancia de máquina virtual (VM) y una de ellas necesita acceso a Compute Engine o a otras API de Google Cloud, puedes usar cuentas de servicio para autenticar las apps en lugar de usar credenciales de usuario.

Opciones de control de acceso para usuarios

Para que los usuarios tengan la capacidad de crear y administrar tus recursos de Compute Engine, puedes agregar usuarios como miembros del equipo a tu proyecto o a recursos específicos y otorgarles permisos mediante funciones de administración de identidades y accesos (IAM).

Un miembro del equipo puede ser un usuario individual con una Cuenta de Google válida, un Grupo de Google, una cuenta de servicio o un dominio de Google Workspace. Cuando agregas un miembro del equipo a un proyecto o recurso, debes especificar qué funciones le otorgas. IAM proporciona tres tipos de funciones: predefinidas, básicas y personalizadas.

Los recursos heredan las políticas de sus recursos superiores en la jerarquía de recursos de Google Cloud. La política vigente para un recurso es la unión del conjunto de políticas en ese recurso y la política heredada de su superior.

Funciones predefinidas de Compute Engine

Las funciones predefinidas otorgan un conjunto de permisos relacionados. Compute Engine ofrece las siguientes funciones predefinidas:

Título de la función Capacidades Usuario objetivo
Usuario de imagen de Compute Engine

Permiso para generar una lista y usar imágenes de otro proyecto. Otorga a un miembro esta función, junto con otra, y podrá usar imágenes de otro proyecto para crear un nuevo recurso. Por ejemplo, otorga esta función y la función de Administrador de instancias para que un miembro pueda usar imágenes de otro proyecto y crear instancias de VM y discos persistentes.

Si quieres crear grupos de instancias administrados o si quieres usar Deployment Manager para crear instancias de VM, puede que debas otorgar esta función a la cuenta de servicio de API de Google del proyecto para poder usar imágenes de otros proyectos.

  • Cuentas de servicio
  • Administradores de sistemas
  • Desarrolladores
Administrador de instancias de Compute Engine (v1)

Control total de instancias de Compute Engine, grupos de instancias, discos, instantáneas y, también, imágenes. Acceso de solo lectura a todos los recursos de red de Compute Engine.

Si el miembro administra instancias de VM que están configuradas para ejecutarse como una cuenta de servicio, también debes otorgar la función de Usuario de cuenta de servicio. De esta manera, podrá asignar cuentas de servicio a instancias de VM.

  • Administradores de sistemas
  • Desarrolladores
Función de administrador de Compute Engine

Control absoluto de todos los recursos de Compute Engine Si el usuario administra instancias de VM que están configuradas para ejecutarse como una cuenta de servicio, también debes otorgar la función roles/iam.serviceAccountUser.

  • Administradores de sistemas
  • Desarrolladores
Administrador de red de Compute Engine

Permisos para crear, modificar y borrar recursos de red, excepto reglas de firewall y certificados SSL. La función de administrador de red permite el acceso de solo lectura a reglas de firewall, certificados SSL y, también, instancias (para ver sus direcciones IP efímeras). La función de administrador de red no permite que un miembro cree, inicie, detenga o borre instancias.

Administradores de red
Administrador de seguridad de Compute Engine

Permisos para crear, modificar y borrar reglas de firewall y certificados SSL.

Administradores de seguridad
Administrador del balanceador de cargas de Compute EngineBeta

Permisos para crear, modificar y borrar balanceadores de cargas y recursos asociados.

Administradores del balanceador de cargas
Usuario de cuenta de servicio de Compute Engine

Permisos para crear instancias que usen cuentas de servicio, adjuntar un disco y establecer metadatos en una instancia ya configurada a fin de ejecutarse como una cuenta de servicio.

No debes otorgar esta función por sí sola, debido a que no brinda permisos para la API de Compute Engine. Debes otorgar a un miembro esta función junto con otra, como la función de administrador de la instancia.

  • Administradores de sistemas
  • Desarrolladores
Función de visualizador de Compute Engine

Acceso de solo lectura para obtener y generar una lista de los recursos de Compute Engine, sin la posibilidad de leer los datos almacenados en ellos. Por ejemplo, una cuenta con esta función podría crear inventarios de todos los discos en un proyecto, pero no podría leer ninguno de los datos de esos discos.

Administradores de sistemas
Usuario de la red de Compute Engine

Permisos para usar una red VPC compartida. Otorga esta función en particular a los propietarios de servicios que necesiten usar recursos en el proyecto host. Una vez otorgada, los propietarios del servicio podrán usar subredes y redes que pertenezcan al proyecto host. Por ejemplo, un usuario de red puede crear una instancia de VM que pertenezca a una red host de VPC compartida, pero no puede borrar ni crear redes nuevas en el proyecto host.

  • Administradores de sistemas
  • Desarrolladores
Visualizador de red de Compute Engine

Acceso de solo lectura a todos los recursos de red. Por ejemplo, si tienes un software que inspecciona tu configuración de red, podrías otorgar la función de visualizador de red a la cuenta de servicio de ese software.

  • Administradores de red
  • Administradores de sistemas
  • Desarrolladores
  • Cuentas de servicio
Administrador de almacenamiento de Compute EngineBeta

Permisos para crear, modificar y borrar discos, imágenes y, también, instantáneas.

Por ejemplo, si en tu empresa hay alguien que administra imágenes y no quieres que tenga la función de editor en el proyecto, otorga esta función a su cuenta.

  • Administradores de sistemas
  • Desarrolladores
Administrador de VPC compartida de Compute Engine

Permisos para administrar proyectos host de VPC compartidas. En particular, habilita los proyectos host y asocia proyectos de servicio a la red del proyecto host. Esta función solo se puede otorgar a nivel de la organización.

Creadores de proyectos

Para ver una lista de los métodos de la API a los que otorga permiso una función específica, consulta la documentación Funciones de IAM de Compute Engine.

Matriz de funciones predefinidas

En la siguiente tabla, se muestra una comparación completa de los atributos de cada función de Compute Engine.

Capacidades Administrador de instancias (v1) Usuario de imagen Usuario de red Visualizador de red Administrador de red Administrador de seguridad Administrador de almacenamiento Administrador de VPC compartida Administrador de Compute Visualizador de Compute Administrador del balanceador de cargas
Crear o borrar instancias de VM * No No No No No No No No No
Establecer conexión SSH a instancias de VM * No No No No No No No * No No
Obtener instancias de VM o generar una lista de ellas No No No No No
Crear o borrar imágenes, discos o instantáneas No No No No No No No
Obtener imágenes o generar una lista de ellas No No No No No No
Crear o borrar grupos de instancias * No No No No No No No No
Obtener grupos de instancias o generar una lista de ellos No No No No No
Crear y administrar balanceadores de cargas No No No No No No No No
Crear y administrar VPN No No No No No No No No No
Visualizar recursos de red y subred No No No No
Visualizar las reglas de firewall No No No No
Crear y administrar firewalls y certificados SSL No No No No No No No No No para firewalls, sí para certificados SSL
Crear y administrar proyectos host de VPC compartida No No No No No No No No No
Usar redes y subredes en un proyecto host de VPC compartida No No No No No No No No No
Crear y administrar redes y subredes No No No No No No No No No

*Si la instancia de VM se puede ejecutar como una cuenta de servicio, otorga también la función de usuario de cuenta de servicio.

Para ver una lista de los métodos de la API a los que otorga permiso una función específica, consulta la documentación Funciones de IAM de Compute Engine.

Funciones de IAM básicas

Las funciones de IAM básicas se mapean directamente a las funciones heredadas de propietario, editor y visualizador del proyecto. Por lo general, debes usar funciones predefinidas siempre que sea posible. Sin embargo, en algunos casos en los que aún no se admite IAM, es posible que necesites usar una función básica para otorgar los permisos correctos.

Título de la función Permisos
Owner Todos los privilegios de visualizador y editor, y la capacidad de cambiar la configuración de facturación, administrar el control de acceso y borrar proyectos.
Editor Todos los privilegios de visualizador, y la capacidad de crear, modificar y borrar recursos.
Viewer Permisos de solo lectura para todos los recursos; sin permiso para cambiar recursos.

Para obtener más información sobre las funciones básicas, lee la documentación de las funciones básicas.

Si las funciones predefinidas o básicas no se ajustan a tus necesidades, puedes crear funciones personalizadas.

Políticas de IAM para recursos de Compute Engine

Puedes otorgar acceso a los recursos de Compute Engine, como instancias de VM, imágenes y discos; para ello, adjunta políticas de IAM directamente a esos recursos. Una política de IAM te permite administrar funciones de IAM en esos recursos en lugar de administrar funciones a nivel de proyecto, o además de hacerlo. Esto te brinda flexibilidad para aplicar el principio de privilegios mínimos, que significa otorgar acceso solo a los recursos específicos que los colaboradores necesitan para hacer su trabajo.

Con las políticas de IAM para los recursos de Compute Engine, las organizaciones pueden hacer lo siguiente:

  • Otorgar a los usuarios acceso a un subconjunto específico de recursos. Supongamos que Alice debe administrar un subconjunto de instancias en un proyecto. Con las políticas de IAM a nivel de instancia, puedes otorgarle la función compute.instanceAdmin.v1 solo en esas instancias. Si le otorgaras a Alice la misma función en el proyecto, tendría permiso para modificar todas las instancias del proyecto.
  • Permitir que los administradores otorguen accesos. Los administradores pueden otorgar acceso a instancias, imágenes y discos a otras personas, sin necesidad de ser propietarios potentes de proyectos. Supongamos que Bob es un desarrollador al que se le otorgó la función compute.storageAdmin en una imagen específica. Él puede compartir esa imagen con sus compañeros de equipo si les otorga la función compute.imageUser en la imagen. Sin las políticas de IAM para los recursos de Compute Engine, Bob no podría compartir esa imagen con sus compañeros de equipo, a menos que se convierta en propietario del proyecto porque tendría que modificar la política de IAM del proyecto.

Los recursos también heredan las políticas de sus recursos superiores. Si estableces una política a nivel de proyecto, todos sus recursos secundarios la heredan. La política vigente para un recurso es la unión de la política establecida en ese recurso y la política heredada de una jerarquía superior. Para obtener más información, consulta la jerarquía de políticas de IAM.

Políticas de la organización

Si eres miembro de Google Workspace, tu proyecto podría ser parte de un recurso de organización. Un recurso de organización es el supernodo en la jerarquía de recursos de Google Cloud que está estrechamente asociado con una cuenta de Google Workspace. Después de que se crea un recurso de organización para un dominio de Google Workspace, todos los proyectos de Google Cloud que creen los miembros del dominio pertenecen al recurso de organización.

Una organización puede implementar políticas de organización, que son políticas que restringen las configuraciones permitidas en toda tu jerarquía de recursos de Google Cloud. En Compute Engine, puedes implementar las siguientes políticas:

Para configurar las políticas de la organización, debes tener la función orgpolicy.policyAdmin en la organización. También puedes establecer anulaciones específicas del proyecto en caso de que tengas excepciones a la política.

Para obtener más información sobre las organizaciones, consulta la documentación sobre Organizaciones.

Para obtener más información sobre las políticas de la organización, consulta la documentación sobre Política de la organización.

Otorga acceso SSH a instancias de VM a los usuarios

Para otorgar a un usuario la habilidad de conectarse a una instancia de VM mediante SSH sin que pueda administrar los recursos de Compute Engine, agrega la clave pública del usuario al proyecto, o agrega la clave pública del usuario a una instancia determinada. Con este método, puedes evitar agregar a un usuario como miembro del proyecto y, al mismo tiempo, otorgarle acceso a instancias específicas.

Para obtener más información sobre SSH y la administración de Llaves SSH, consulta la descripción general de Llaves SSH.

Ten en cuenta que si otorgas la función roles/compute.instanceAdmin.v1 a un miembro del proyecto, este podrá conectarse de forma automática a instancias mediante SSH, siempre que la instancia no esté configurada para ejecutarse como una cuenta de servicio. Si la instancia está configurada de esta manera, también deberás otorgar la función roles/iam.serviceAccountUser para que el miembro pueda conectarse a la instancia.

Si agregas un miembro como propietario o editor del proyecto, también tendrá acceso SSH a las instancias de VM en el proyecto de forma automática.

Control de acceso para apps que se ejecutan en instancias de VM

Si ejecutas código de la app en instancias y la app necesita autenticarse en otras API de Google Cloud, puedes crear cuentas de servicio y otorgarles funciones específicas de IAM para que se autentiquen en otras API de Google Cloud en tu nombre. Una cuenta de servicio es una cuenta especial que no tiene credenciales de usuario y es ideal para las interacciones de servidor a servidor.

Para obtener más información sobre las cuentas de servicio, consulta la documentación sobre Cuentas de servicio.

Próximos pasos