Cuando agrega un nuevo miembro a su proyecto, puede usar una política de administración de identidad y acceso (IAM) para otorgarle a ese miembro una o más funciones de IAM. Cada función de IAM contiene permisos que otorgan al miembro acceso a recursos específicos.
Compute Engine tiene un conjunto de roles de IAM predefinidos que se describen en esta página. También puede crear roles personalizados que contengan subconjuntos de permisos que se correspondan directamente con sus necesidades.
Para saber qué permisos se requieren para cada método, consulta la documentación de referencia de la API de Compute Engine:
Para obtener información sobre cómo otorgar acceso, consulte las páginas siguientes.
- Para establecer políticas de IAM a nivel de proyecto, consulte Conceder, cambiar y revocar acceso a recursos en la documentación de IAM.
- Para establecer políticas sobre recursos específicos de Compute Engine, lee Conceder acceso a recursos de Compute Engine .
- Para asignar roles a una cuenta de servicio de Compute Engine, lee Crear y habilitar cuentas de servicio para instancias .
¿Qué es IAM?
Google Cloud ofrece IAM , que le permite brindar acceso más granular a temas específicosGoogle Cloud recursos y evita el acceso no deseado a otros recursos. IAM le permite adoptar el principio de seguridad de privilegio mínimo , de modo que solo conceda el acceso necesario a sus recursos.
IAM le permite controlar quién (identidad) tiene qué (roles) permiso y qué recursos mediante el establecimiento de políticas de IAM. Las políticas de IAM otorgan roles específicos a un miembro del proyecto, otorgando a esa identidad ciertos permisos. Por ejemplo, para un recurso determinado, como un proyecto, puede asignar la función roles/compute.networkAdmin
a una cuenta de usuario (una cuenta de Google o una cuenta de un proveedor de identidad externo ) y esa cuenta puede controlar los recursos relacionados con la red en el proyecto, pero no puede administrar otros recursos, como instancias y discos. También puedes usar IAM para administrar las funciones heredadas de la consola de Google Cloud otorgadas a los miembros del equipo del proyecto.
El rol serviceAccountUser
Cuando se otorga junto con roles/compute.instanceAdmin.v1
, roles/iam.serviceAccountUser
brinda a los miembros la capacidad de crear y administrar instancias que usan una cuenta de servicio. Específicamente, otorgar roles/iam.serviceAccountUser
y roles/compute.instanceAdmin.v1
juntos otorga a los miembros permiso para:
- Cree una instancia que se ejecute como una cuenta de servicio .
- Adjunte un disco persistente a una instancia que se ejecute como una cuenta de servicio.
- Establezca metadatos de instancia en una instancia que se ejecute como una cuenta de servicio.
- Utilice SSH para conectarse a una instancia que se ejecuta como una cuenta de servicio.
- Vuelva a configurar una instancia para que se ejecute como una cuenta de servicio.
Puede otorgar roles/iam.serviceAccountUser
de dos maneras:
Recomendado . Otorgue el rol a un miembro en una cuenta de servicio específica . Esto le da a un miembro acceso a la cuenta de servicio de la que es
iam.serviceAccountUser
, pero impide el acceso a otras cuentas de servicio de las que el miembro no esiam.serviceAccountUser
.Otorgue el rol a un miembro en el nivel del proyecto . El miembro tiene acceso a todas las cuentas de servicio del proyecto, incluidas las cuentas de servicio que se creen en el futuro.
Si no está familiarizado con las cuentas de servicio, obtenga más información sobre las cuentas de servicio .
Google Cloud Permiso de consola
Para usar la consola de Google Cloud para acceder a los recursos de Compute Engine, debes tener un rol que contenga el siguiente permiso en el proyecto:
compute.projects.get
Conexión a una instancia como administrador de instancia
Después de otorgarle a un miembro del proyecto el rol roles/compute.instanceAdmin.v1
, este podrá conectarse a instancias de máquinas virtuales (VM) mediante el uso estándar. Google Cloudherramientas, como la CLI de gcloud o SSH-in-browser .
Cuando un miembro usa la CLI de gcloud o SSH en el navegador, las herramientas generan automáticamente un par de claves pública/privada y agregan la clave pública a los metadatos del proyecto. Si el miembro no tiene permisos para editar los metadatos del proyecto, la herramienta agrega la clave pública del miembro a los metadatos de la instancia.
Si el miembro tiene un par de claves existente que desea usar, puede agregar manualmente su clave pública a los metadatos de la instancia. Obtenga más información sobre cómo agregar claves SSH a una instancia .
IAM con cuentas de servicio
Cree nuevas cuentas de servicio personalizadas y otorgue funciones de IAM a las cuentas de servicio para limitar el acceso a sus instancias. Utilice roles de IAM con cuentas de servicio personalizadas para:
- Limite el acceso que tienen sus instancias Google Cloud API que utilizan roles de IAM granulares.
- Asigne a cada instancia, o conjunto de instancias, una identidad única.
- Limite el acceso a su cuenta de servicio predeterminada.
Obtenga más información sobre las cuentas de servicio .
Grupos de instancias administrados e IAM
Los grupos de instancias administrados (MIG) son recursos que realizan acciones en su nombre sin interacción directa del usuario. Por ejemplo, el MIG puede agregar y eliminar máquinas virtuales del grupo.
Todas las operaciones realizadas por Compute Engine como parte de MIG las realiza el agente de servicio de API de Google para su proyecto, que tiene una dirección de correo electrónico como la siguiente: PROJECT_ID @cloudservices.gserviceaccount.com
De forma predeterminada, al agente de servicios de API de Google se le otorga la función de editor ( roles/editor
) a nivel de proyecto, lo que otorga suficientes privilegios para crear recursos según la configuración del MIG. Si está personalizando el acceso para el agente de servicio de las API de Google, otorgue la función de administrador de instancia informática (v1) ( roles/compute.instanceAdmin.v1
) y, opcionalmente, la función de usuario de cuenta de servicio ( roles/iam.serviceAccountUser
). La función de usuario de cuenta de servicio solo se requiere si MIG crea máquinas virtuales que puedan ejecutarse como una cuenta de servicio.
Tenga en cuenta que otros procesos también utilizan el Agente de servicio de las API de Google, incluido el Administrador de implementación .
Cuando creas un MIG o actualizas su plantilla de instancia, Compute Engine valida que el agente de servicio de las API de Google tenga la siguiente función y permisos:
- Rol de usuario de cuenta de servicio, que es importante si planea crear instancias que puedan ejecutarse como una cuenta de servicio.
- Permisos para todos los recursos a los que se hace referencia desde plantillas de instancias, como imágenes, discos, redes de VPC y subredes.
Roles de IAM predefinidos de Compute Engine
Con IAM, cada método API en la API de Compute Engine requiere que la identidad que realiza la solicitud API tenga los permisos adecuados para usar el recurso. Los permisos se otorgan estableciendo políticas que otorgan roles a un miembro (usuario, grupo o cuenta de servicio) de su proyecto.
Además de los roles básicos ( espectador, editor, propietario ) y roles personalizados , puedes asignar los siguientes roles predefinidos de Compute Engine a los miembros de tu proyecto.
Puede otorgar múltiples roles a un miembro del proyecto en el mismo recurso. Por ejemplo, si su equipo de redes también administra reglas de firewall, puede otorgar roles/compute.networkAdmin
y roles/compute.securityAdmin
al grupo de Google del equipo de redes.
Las siguientes tablas describen las funciones de IAM de Compute Engine predefinidas, así como los permisos contenidos en cada función. Cada rol contiene un conjunto de permisos adecuados para una tarea específica. Por ejemplo, las funciones de administrador de instancias otorgan permisos para administrar instancias, las funciones relacionadas con la red incluyen permisos para administrar recursos relacionados con la red y la función de seguridad incluye permisos para administrar recursos relacionados con la seguridad, como firewalls y certificados SSL. Cuando trabajas en Compute Engine, es posible que también necesites roles para otros servicios, como Cloud DNS y cuentas de servicio IAM. Para obtener una lista completa de funciones de IAM, consulte la documentación de referencia de funciones de IAM .
Role | Permissions |
---|---|
Compute Admin( Full control of all Compute Engine resources.
If the user will be managing virtual machine instances that are configured
to run as a service account, you must also grant the
Lowest-level resources where you can grant this role:
|
|
Compute Future Reservation Admin Beta(
|
|
Compute Future Reservation User Beta(
|
|
Compute Future Reservation Viewer Beta(
|
|
Compute Image User( Permission to list and read images without having other permissions on the image. Granting this role at the project level gives users the ability to list all images in the project and create resources, such as instances and persistent disks, based on images in the project. Lowest-level resources where you can grant this role:
|
|
Compute Instance Admin (beta)( Permissions to create, modify, and delete virtual machine instances. This includes permissions to create, modify, and delete disks, and also to configure Shielded VM settings.
If the user will be managing virtual machine instances that are configured
to run as a service account, you must also grant the
For example, if your company has someone who manages groups of virtual machine instances but does not manage network or security settings and does not manage instances that run as service accounts, you can grant this role on the organization, folder, or project that contains the instances, or you can grant it on individual instances. Lowest-level resources where you can grant this role:
|
|
Compute Instance Admin (v1)( Full control of Compute Engine instances, instance groups, disks, snapshots, and images. Read access to all Compute Engine networking resources. If you grant a user this role only at an instance level, then that user cannot create new instances. |
|
Compute Load Balancer Admin( Permissions to create, modify, and delete load balancers and associate resources. For example, if your company has a load balancing team that manages load balancers, SSL certificates for load balancers, SSL policies, and other load balancing resources, and a separate networking team that manages the rest of the networking resources, then grant this role to the load balancing team's group. Lowest-level resources where you can grant this role:
|
|
Compute Load Balancer Services User( Permissions to use services from a load balancer in other projects. |
|
Compute Network Admin( Permissions to create, modify, and delete networking resources, except for firewall rules and SSL certificates. The network admin role allows read-only access to firewall rules, SSL certificates, and instances (to view their ephemeral IP addresses). The network admin role does not allow a user to create, start, stop, or delete instances.
For example, if your company has a security team that manages firewalls
and SSL certificates and a networking team that manages the rest of the
networking resources, then grant this role to the networking team's group.
Or, if you have a combined team that manages both security and networking,
then grant this role as well as the
Lowest-level resources where you can grant this role:
|
|
Compute Network User( Provides access to a shared VPC network Once granted, service owners can use VPC networks and subnets that belong to the host project. For example, a network user can create a VM instance that belongs to a host project network but they cannot delete or create new networks in the host project. Lowest-level resources where you can grant this role:
|
|
Compute Network Viewer( Read-only access to all networking resources For example, if you have software that inspects your network configuration, you could grant this role to that software's service account. Lowest-level resources where you can grant this role:
|
|
Compute Organization Firewall Policy Admin( Full control of Compute Engine Organization Firewall Policies. |
|
Compute Organization Firewall Policy User( View or use Compute Engine Firewall Policies to associate with the organization or folders. |
|
Compute Organization Security Policy Admin( Full control of Compute Engine Organization Security Policies. |
|
Compute Organization Security Policy User( View or use Compute Engine Security Policies to associate with the organization or folders. |
|
Compute Organization Resource Admin( Full control of Compute Engine Firewall Policy associations to the organization or folders. |
|
Compute OS Admin Login( Access to log in to a Compute Engine instance as an administrator user. Lowest-level resources where you can grant this role:
|
|
Compute OS Login( Access to log in to a Compute Engine instance as a standard user. Lowest-level resources where you can grant this role:
|
|
Compute OS Login External User( Available only at the organization level. Access for an external user to set OS Login information associated with this organization. This role does not grant access to instances. External users must be granted one of the required OS Login roles in order to allow access to instances using SSH. Lowest-level resources where you can grant this role:
|
|
Compute packet mirroring admin( Specify resources to be mirrored. |
|
Compute packet mirroring user( Use Compute Engine packet mirrorings. |
|
Compute Peer Subnet Migration Admin( Use subnetwork whose PURPOSE is "PEER_MIGRATION" |
|
Compute Public IP Admin( Full control of public IP address management for Compute Engine. |
|
Compute Security Admin( Permissions to create, modify, and delete firewall rules and SSL certificates, and also to configure Shielded VM settings. For example, if your company has a security team that manages firewalls and SSL certificates and a networking team that manages the rest of the networking resources, then grant this role to the security team's group. Lowest-level resources where you can grant this role:
|
|
Compute Sole Tenant Viewer( Permissions to view sole tenancy node groups |
|
Compute Storage Admin( Permissions to create, modify, and delete disks, images, and snapshots. For example, if your company has someone who manages project images and you don't want them to have the editor role on the project, then grant this role to their account on the project. Lowest-level resources where you can grant this role:
|
|
Compute Viewer( Read-only access to get and list Compute Engine resources, without being able to read the data stored on them. For example, an account with this role could inventory all of the disks in a project, but it could not read any of the data on those disks. Lowest-level resources where you can grant this role:
|
|
Compute Shared VPC Admin( Permissions to administer shared VPC host projects, specifically enabling the host projects and associating shared VPC service projects to the host project's network. At the organization level, this role can only be granted by an organization admin.
Google Cloud recommends that the Shared VPC Admin be the owner of the shared VPC host project. The
Shared VPC Admin is responsible for granting the Compute Network User role
( Lowest-level resources where you can grant this role:
|
|
OS Config Admin( Full access to OS Config resources |
|
GuestPolicy Admin Beta( Full admin access to GuestPolicies |
|
GuestPolicy Editor Beta( Editor of GuestPolicy resources |
|
GuestPolicy Viewer Beta( Viewer of GuestPolicy resources |
|
InstanceOSPoliciesCompliance Viewer Beta( Viewer of OS Policies Compliance of VM instances |
|
OS Inventory Viewer( Viewer of OS Inventories |
|
OSPolicyAssignment Admin( Full admin access to OS Policy Assignments |
|
OSPolicyAssignment Editor( Editor of OS Policy Assignments |
|
OSPolicyAssignmentReport Viewer( Viewer of OS policy assignment reports for VM instances |
|
OSPolicyAssignment Viewer( Viewer of OS Policy Assignments |
|
PatchDeployment Admin( Full admin access to PatchDeployments |
|
PatchDeployment Viewer( Viewer of PatchDeployment resources |
|
Patch Job Executor( Access to execute Patch Jobs. |
|
Patch Job Viewer( Get and list Patch Jobs. |
|
PolicyOrchestrator Admin Beta( Admin of PolicyOrchestrator resources |
|
PolicyOrchestrator Viewer Beta( Viewer of PolicyOrchestrator resources |
|
Project Feature Settings Editor( Read/write access to project feature settings |
|
Project Feature Settings Viewer( Read access to project feature settings |
|
Upgrade Report Viewer Beta( Provides read-only access to VM Manager Upgrade Reports |
|
OS Config Viewer( Readonly access to OS Config resources |
|
OS VulnerabilityReport Viewer( Viewer of OS VulnerabilityReports |
|
¿Qué sigue?
- Obtenga más información sobre IAM .
- Aprenda a crear y administrar roles de IAM personalizados .
- Otorgar roles de IAM a los usuarios del proyecto .
- Otorga roles de IAM para recursos específicos de Compute Engine .
- Otorgar funciones de IAM a cuentas de servicio .