Control de acceso de proyectos con gestión de identidades y accesos

Google Cloud ofrece Gestión de Identidades y Accesos (IAM), que te permite dar un acceso más granular a recursos específicos Google Cloud y evitar el acceso no deseado a otros recursos. IAM te permite adoptar el principio de seguridad de mínimos accesos, de forma que solo concedas el acceso necesario a tus recursos.

La gestión de identidades y accesos te permite controlar quién (usuarios) tiene qué acceso (roles) a qué recursos configurando políticas de permiso. Las políticas de permitir conceden roles específicos a un usuario, lo que le otorga determinados permisos.

En esta página se explican los permisos y roles de gestión de identidades y accesos que puede usar para gestionar el acceso a los proyectos. Para obtener más información, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

.

Permisos y roles

Para controlar el acceso a los recursos, Google Cloud requiere que las cuentas que realicen solicitudes de API tengan los roles de gestión de identidades y accesos adecuados. Los roles de gestión de identidades y accesos incluyen permisos que permiten a los usuarios realizar acciones específicas enGoogle Cloud recursos. Por ejemplo, el permiso resourcemanager.projects.delete permite a un usuario eliminar un proyecto.

No se conceden permisos directamente a los usuarios, sino que se les asignan roles, que incluyen uno o varios permisos. Estos roles se asignan a un recurso concreto, pero también se aplican a todos los elementos descendientes de ese recurso en la jerarquía de recursos.

Permisos

Para gestionar proyectos, la persona que llama debe tener un rol que incluya los siguientes permisos. El rol se concede en el recurso de organización o en la carpeta que contiene los proyectos:

Método Permisos necesarios
resourcemanager.projects.create resourcemanager.projects.create
resourcemanager.projects.delete resourcemanager.projects.delete
resourcemanager.projects.get resourcemanager.projects.get
Si concedes este permiso, también se concederá acceso para obtener el nombre de la cuenta de facturación asociada al proyecto mediante el método billing.projects.getBillingInfo de la API Billing.
resourcemanager.projects.getIamPolicy resourcemanager.projects.getIamPolicy
resourcemanager.projects.list resourcemanager.projects.list
resourcemanager.projects.search resourcemanager.projects.get
resourcemanager.projects.setIamPolicy resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions No requiere ningún permiso.
resourcemanager.projects.undelete resourcemanager.projects.undelete
resourcemanager.projects.patch Para actualizar los metadatos de un proyecto, se necesita el permiso resourcemanager.projects.update. Para actualizar el elemento superior de un proyecto y moverlo a un recurso de organización, se necesita el permiso resourcemanager.projects.create en el recurso de organización.
projects.move projects.move

Usar roles predefinidos

Los roles predefinidos de gestión de identidades y accesos te permiten gestionar cuidadosamente el conjunto de permisos a los que tienen acceso tus usuarios. Para ver una lista completa de los roles que se pueden conceder a nivel de proyecto, consulta el artículo Descripción de los roles.

En la siguiente tabla se enumeran los roles predefinidos que puede usar para conceder acceso a un proyecto. Cada rol incluye una descripción de lo que hace y los permisos que tiene.

Rol Permisos

(roles/resourcemanager.projectCreator)

Brinda acceso para crear nuevos proyectos. Cuando un usuario crea un proyecto, se le asigna automáticamente el rol de propietario de ese proyecto.

Recursos de nivel más bajo en los que puedes asignar este rol:

  • Carpeta

resourcemanager.organizations.get

resourcemanager.projects.create

(roles/resourcemanager.projectDeleter)

Proporciona acceso para eliminar Google Cloud proyectos.

Recursos de nivel más bajo en los que puedes asignar este rol:

  • Proyecto

resourcemanager.projects.delete

(roles/resourcemanager.projectMover)

Proporciona acceso para actualizar y mover proyectos.

Recursos de nivel más bajo en los que puedes asignar este rol:

  • Proyecto

resourcemanager.projects.get

resourcemanager.projects.move

resourcemanager.projects.update

(roles/resourcemanager.projectIamAdmin)

Proporciona permisos para administrar políticas de permitidas en proyectos.

Recursos de nivel más bajo en los que puedes asignar este rol:

  • Proyecto

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/browser)

Acceso de lectura para consultar la jerarquía de un proyecto, incluida la carpeta, la organización y la política de permisos. Este rol no incluye el permiso para ver los recursos del proyecto.

Recursos de nivel más bajo en los que puedes asignar este rol:

  • Proyecto

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

Roles básicos

Evita usar roles básicos, excepto cuando sea absolutamente necesario. Estos roles son muy potentes e incluyen un gran número de permisos en todos losGoogle Cloud servicios. Para obtener más información sobre cuándo debes usar los roles básicos, consulta el artículo Roles básicos.

Rol Descripción Permisos
roles/owner Acceso completo a todos los recursos. Todos los permisos de todos los recursos.
roles/editor Permiso para editar el acceso a la mayoría de los recursos. Crear y actualizar el acceso a la mayoría de los recursos.
roles/viewer Acceso de lectura a la mayoría de los recursos. Obtiene y muestra el acceso a la mayoría de los recursos.

Crear roles personalizados

Además de los roles predefinidos que se describen en este tema, también puedes crear roles personalizados, que son conjuntos de permisos que puedes adaptar a tus necesidades. Cuando crees un rol personalizado para usarlo con Resource Manager, ten en cuenta lo siguiente:
  • Los permisos de lista y de obtención, como resourcemanager.projects.get/list, siempre deben concederse como un par.
  • Si tu rol personalizado incluye los permisos folders.list y folders.get, también debe incluir projects.list y projects.get.
  • Ten en cuenta que el permiso setIamPolicy para los recursos de organización, carpeta y proyecto permite al usuario conceder todos los demás permisos, por lo que debe asignarse con cuidado.

Control de acceso a nivel de proyecto

Puedes asignar roles a los usuarios a nivel de proyecto mediante Google Cloud console, la API Cloud Resource Manager y Google Cloud CLI. Para obtener instrucciones, consulta Conceder, cambiar y revocar el acceso.

Roles predeterminados

Cuando creas un proyecto, se te asigna el rol roles/owner para que tengas control total como creador. Este rol predeterminado se puede cambiar como de costumbre en una política de permiso.

Controles de Servicio de VPC

Controles de Servicio de VPC puede proporcionar seguridad adicional al usar la API Cloud Resource Manager. Para obtener más información sobre Controles de Servicio de VPC, consulta la información general de Controles de Servicio de VPC.

Para obtener información sobre las limitaciones actuales del uso de Resource Manager con Controles de Servicio de VPC, consulta la página Productos admitidos y limitaciones.