Descripción general del control de acceso

De forma predeterminada, todos los proyectos de Google Cloud Platform (GCP) vienen con un solo usuario: 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 nuevos usuarios a tu proyecto y cómo establecer el control de acceso para tus recursos de Compute Engine.

Además, si ejecutas apps en una instancia de máquina virtual (VM) y la app necesita acceso a Compute Engine o a otra API de GCP, puedes usar cuentas de servicio para autenticar tus 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 con las funciones de Cloud Identity and Access Management.

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 G Suite. Cuando agregas a un miembro del equipo a un proyecto o recurso, debes especificar qué funciones le otorgas. Cloud IAM proporciona tres tipos de funciones: funciones predefinidas, funciones básicas y funciones personalizadas.

Los recursos reciben las políticas de sus recursos superiores en la jerarquía de recurso de GCP. La política vigente para un recurso es la combinació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 Engine Beta

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

Administradores de 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 otorgarle 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, entonces 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 la lista de métodos de API a los que otorga permiso una función específica, revisa la documentación de 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
SSH en 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 la lista de métodos de API a los que otorga permiso una función específica, revisa la documentación de Funciones de IAM de Compute Engine.

Funciones básicas de Cloud IAM

Las funciones básicas de Cloud IAM se asignan directamente a las funciones de propietario, editor y visualizador del proyecto heredado. Por lo general, debes usar funciones predefinidas siempre que sea posible. Sin embargo, en algunos casos donde aún no se admite Cloud IAM, puede que debas 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 habilidad de cambiar la configuración de facturación, administrar el control de acceso y borrar proyectos.
Editor Todos los privilegios de visualizador, y la posibilidad 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, consulta la documentación sobre Funciones básicas.

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

Políticas de Cloud IAM para recursos de Compute Engine

Puedes otorgar acceso a los recursos de Compute Engine, como instancias de VM, imágenes y discos, y adjuntar políticas de Cloud IAM a esos recursos en forma directa. Una política de Cloud IAM te permite administrar funciones de Cloud 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 Cloud 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 Cloud 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 Cloud IAM para los recursos de Compute Engine, Bob no podría compartir esa imagen con sus compañeros a menos que se convierta en propietario del proyecto porque tendría que modificar la política de Cloud 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 página sobre la jerarquía de políticas de Cloud IAM.

Políticas de la organización

Si eres miembro de G Suite, 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 GCP, que está estrechamente asociado con una cuenta de G Suite. Después de que se crea un recurso de organización para un dominio de G Suite, todos los proyectos de GCP que crean 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 el código de la app en instancias y la app necesita autenticarse en otras API de GCP, puedes crear cuentas de servicio y otorgar funciones específicas de Cloud IAM a estas cuentas para que puedan autenticarse en otras API de GCP 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

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Compute Engine