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 usando Identity and Access Management (IAM).
Para obtener información sobre cómo proporcionar acceso a las aplicaciones que se ejecutan en tus instancias de Compute Engine, consulta Cómo se determina la autorización.
Opciones de control de acceso para usuarios
Para otorgar a los usuarios 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 usando roles de 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. |
|
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 |
|
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 |
|
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. |
|
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. |
|
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. |
|
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. |
|
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.
Función | 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 | * | ||||||||||
SSH en instancias de VM | * | * | |||||||||
Obtener instancias de VM o generar una lista de ellas | |||||||||||
Crear o borrar imágenes, discos o instantáneas | |||||||||||
Obtener imágenes o generar una lista de ellas | |||||||||||
Crear o borrar grupos de instancias | * | ||||||||||
Obtener grupos de instancias o generar una lista de ellos | |||||||||||
Crear y administrar balanceadores de cargas | |||||||||||
Crear y administrar VPN | |||||||||||
Visualizar recursos de red y subred | |||||||||||
Visualizar las reglas de firewall | |||||||||||
Crear y administrar firewalls y certificados SSL |
para firewalls, para certificados SSL |
||||||||||
Crear y administrar proyectos host de VPC compartida | |||||||||||
Usar redes y subredes en un proyecto host de VPC compartida | |||||||||||
Crear y administrar redes y subredes |
*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:
- Otorga 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. - Permite 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óncompute.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:
- Inhabilita el acceso interactivo a la consola en serie.
- Inhabilita las direcciones IP externas para instancias de VM.
- Restringe los proyectos de imagen que están disponibles para los miembros de tu proyecto
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.
Identidades de carga de trabajo administradas para cargas de trabajo de Compute Engine
Puedes configurar el aprovisionamiento automático y la administración del ciclo de vida de los certificados X.509 desde Certificate Authority Service (servicio de AC) mediante identidades de carga de trabajo administradas. Los certificados de identidad de carga de trabajo administrados se emiten desde el servicio de CA, que es un servicio de Google Cloud escalable y con alta disponibilidad que te ayuda a simplificar y automatizar la implementación, administración y seguridad de los servicios de CA, mientras mantienes el control de las claves privadas.
Con las identidades de carga de trabajo administradas, puedes beneficiarte de mTLS por VM, administrada por Compute Engine. mTLS por VM usa certificados X.509 que se emiten cuando creas una VM. Estos certificados mTLS se rotan de forma automática, por lo que ya no tienes que preocuparte por administrarlos.
Las identidades de cargas de trabajo administradas proporcionan una base para habilitar las comunicaciones autenticadas y encriptadas de forma mutua entre dos VMs de Compute Engine. Por ejemplo, cuando usas identidades de carga de trabajo administradas, el servicio A que se ejecuta en una VM se comunica con el servicio B que se ejecuta en otra a través de un canal encriptado que se establece con mTLS.
Para obtener información sobre cómo configurar identidades de carga de trabajo administradas, consulta Autentica cargas de trabajo en otras cargas de trabajo a través de mTLS.
Próximos pasos
- Agrega usuarios como miembros del equipo.
- Obtén más información sobre las funciones de IAM
- Obtén más información sobre cómo agregar y quitar Claves SSH.
- Obtén más información sobre las cuentas de servicio.