Funciones de IAM para Cloud Storage

Funciones predefinidas

En la siguiente tabla, se describen las funciones de Identity and Access Management (IAM) asociadas con Cloud Storage y se enumeran los permisos que contiene cada función. A menos que se indique lo contrario, estas funciones se pueden aplicar a proyectos, buckets o carpetas administradas.

Para aprender a controlar el acceso a los buckets, consulta Usa permisos de IAM. Si deseas obtener información sobre cómo controlar el acceso a las carpetas administradas, consulta Usa IAM para carpetas administradas.

Función Descripción Permisos
Creador de objetos de almacenamiento (roles/storage.objectCreator) Permite a los usuarios crear objetos. No otorga permisos para ver, borrar ni reemplazar objetos. No otorga permisos para obtener Listas de control de acceso (LCA) de objetos ni establecer LCA de objetos como parte de una solicitud de actualización de objetos. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.objects.create
storage.managedFolders.create
storage.multipartUploads.create
storage.multipartUploads.abort
storage.multipartUploads.listParts
Visualizador de objetos de almacenamiento (roles/storage.objectViewer) Otorga acceso para ver los objetos y sus metadatos, sin incluir las LCA.

También se pueden enumerar los objetos y las carpetas administradas de un bucket.

resourcemanager.projects.get2
resourcemanager.projects.list2
storage.managedFolders.get
storage.managedFolders.list
storage.objects.get
storage.objects.list
Usuario de objetos de almacenamiento (roles/storage.objectUser) Otorga acceso para crear, ver, enumerar, actualizar y borrar objetos y carpetas administradas, junto con sus metadatos. No otorga permisos para obtener o establecer las LCA ni las políticas de IAM. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.managedFolders.create
storage.managedFolders.delete
storage.managedFolders.list
storage.managedFolders.get
storage.multipartUploads.*
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
storage.objects.restore
storage.objects.update
Administrador de objetos de almacenamiento (roles/storage.objectAdmin) Otorga control total sobre los objetos, lo que incluye enumerarlos, crearlos, visualizarlos y borrarlos, así como establecer LCA de objetos. También otorga acceso para crear, borrar, obtener y enumerar carpetas administradas. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.managedFolders.create
storage.managedFolders.delete
storage.managedFolders.get
storage.managedFolders.list
storage.objects.*
storage.multipartUploads.*
Administrador de carpetas de almacenamiento (roles/storage.folderAdmin) Otorga control total sobre los objetos y las carpetas administradas, lo que incluye enumerar, crear, visualizar, borrar y administrar permisos de IAM. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.managedFolders.*
storage.multipartUploads.*
storage.objects.*
Administrador de claves HMAC de almacenamiento (roles/storage.hmacKeyAdmin) Otorga control total de las claves HMAC en un proyecto. Esta función solo se puede aplicar a un proyecto. orgpolicy.policy.get1
storage.hmacKeys.*
Administrador de almacenamiento (roles/storage.admin) Otorga control total sobre los buckets, carpetas administradas y objetos, lo que incluye obtener y establecer LCA de objetos o políticas de IAM.

Cuando se aplica en un bucket individual, el control solo se aplica al bucket especificado y a las carpetas administradas y los objetos dentro del bucket.

firebase.projects.get
orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.buckets.*
storage.managedFolders.*
storage.objects.*
storage.multipartUploads.*
Administrador de Storage Insights (roles/storageinsights.admin) Otorga control total sobre los informes y las configuraciones de inventario de Storage Insights. cloudresourcemanager.projects.get
cloudresourcemanager.projects.list
storageinsights.reportConfigs.*
storageinsights.reportDetails.*
Visualizador de Storage Insights (roles/storageinsights.viewer) Otorga acceso de solo lectura a los informes y configuraciones de inventario de Storage Insights. cloudresourcemanager.projects.get
cloudresourcemanager.projects.list
storageinsights.reportConfigs.list
storageinsights.reportConfigs.get
storageinsights.reportDetails.list
storageinsights.reportDetails.get
Servicio de recopilación de Storage Insights (roles/storage.insightsCollectorService) Otorga acceso de lectura a los metadatos de objetos en los informes de inventario. resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.getObjectInsights
storage.buckets.get

1 El permiso orgpolicy.policy.get permite que las principales conozcan las restricciones de las políticas de la organización a las que está sujeto un proyecto. Actualmente, este permiso solo es efectivo si el rol se otorga a nivel de proyecto o superior.

2 Para obtener más información sobre los permisos resourcemanager.projects.*, consulta Control de acceso para proyectos con IAM.

Funciones básicas

Las funciones básicas son funciones que existían antes de IAM. Estas funciones tienen características únicas:

  • Las funciones básicas solo se pueden otorgar a un proyecto completo, no a depósitos individuales dentro del proyecto. Al igual que las otras funciones que se otorgan a un proyecto, las funciones básicas se aplican a todos los depósitos y objetos del proyecto.

  • Las funciones básicas contienen permisos adicionales para otros servicios de Google Cloud que no se tratan en esta sección. Consulta las funciones básicas para ver un análisis general de los permisos que otorgan estas funciones.

  • Cada rol básico tiene un valor de conveniencia que te permite usar el rol básico como si fuera un grupo. Cuando se usa de esta manera, se considera que cualquier principal que tiene el rol básico es parte del grupo. Todos los miembros del grupo obtienen acceso adicional a los recursos según el acceso que tenga el valor de conveniencia.

    • Los valores de conveniencia se pueden usar cuando se otorgan funciones para buckets.

    • Los valores de conveniencia se pueden usar cuando se configuran las LCA en los objetos.

  • Los roles básicos no otorgan de forma intrínseca todo el acceso a los recursos de Cloud Storage que implican sus nombres. En cambio, proporcionan una parte del acceso esperado de forma intrínseca y el resto del acceso esperado mediante el uso de valores de conveniencia. Debido a que los valores de conveniencia se pueden agregar o quitar de forma manual, como cualquiera otra principal de IAM, es posible revocar el acceso que, de lo contrario, las principales podrían tener.

    Para ver un análisis del acceso adicional que los principales de las funciones básicas suelen obtener debido a los valores de conveniencia, consulta comportamiento modificable.

Permisos intrínsecos

En la siguiente tabla, se describen los permisos de Cloud Storage que siempre están asociados con cada función básica.

Función Descripción Permisos de Cloud Storage
Visualizador (roles/viewer) Otorga permiso para enumerar los bucket s del proyecto, ver los metadatos del bucket durante la enumeración (sin incluir las LCA), y enumerar y obtener las claves HMAC del proyecto. storage.buckets.list
storage.hmacKeys.get
storage.hmacKeys.list
Editor (roles/editor) Otorga el permiso para crear, enumerar y borrar los bucket s en el proyecto, ver los metadatos del bucket durante la enumeración (sin incluir las LCA), y controlar las claves HMAC del proyecto. storage.buckets.create
storage.buckets.delete
storage.buckets.list
storage.hmacKeys.*
Propietario (roles/owner)

Otorga permiso para crear, enumerar y borrar buckets en el proyecto; ver los metadatos del bucket durante la enumeración (sin incluir las LCA); crear, borrar y enumerar vinculaciones de etiquetas y controlar las claves HMAC del proyecto.

En general, en Google Cloud, los miembros con esta función pueden realizar tareas administrativas, como cambiar las funciones de los principales del proyecto o cambiar la facturación.

storage.buckets.create
storage.buckets.delete
storage.buckets.list
storage.buckets.createTagBinding
storage.buckets.deleteTagBinding
storage.buckets.listEffectiveTags
storage.buckets.listTagBindings
storage.hmacKeys.*

Comportamiento modificable

Los miembros con roles básicos a menudo tienen acceso adicional a los buckets y objetos de un proyecto debido a los valores de conveniencia. Cuando se crea un bucket, los valores de conveniencia se otorgan a cierto nivel a nivel de bucket, pero luego puedes editar las políticas de IAM del bucket y las LCA de tu objeto para quitar o cambiar el acceso.

Cuando creas un bucket que tiene habilitado el acceso uniforme a nivel de bucket, el siguiente acceso se otorga a través de valores de conveniencia:

  • Los principales a los que se les otorgó roles/viewer obtienen los roles roles/storage.legacyBucketReader y roles/storage.legacyObjectReader para el bucket.

  • Los principales a los que se les otorgó roles/editor obtienen los roles roles/storage.legacyBucketOwner y roles/storage.legacyObjectOwner para el bucket.

  • Los principales a los que se les otorgó roles/owner obtienen los roles roles/storage.legacyBucketOwner y roles/storage.legacyObjectOwner para el bucket.

Cuando creas un bucket que no tiene habilitado el acceso uniforme a nivel de bucket, se otorga el siguiente acceso con valores de conveniencia:

  • Los principales a los que se les otorgó roles/viewer obtienen el rol roles/storage.legacyBucketReader para el bucket.

  • Los principales a los que se les otorgó roles/editor obtienen el rol roles/storage.legacyBucketOwner para el bucket.

  • Los principales a los que se les otorgó roles/owner obtienen el rol roles/storage.legacyBucketOwner para el bucket.

  • Además, el depósito tiene una Lista de control de acceso (LCA) de objetos predeterminada. Esta LCA predeterminada a menudo se aplica a objetos nuevos en el bucket y a menudo otorga acceso adicional a valores de conveniencia.

Funciones heredadas predefinidas

En la siguiente tabla, se enumeran las funciones de IAM que son equivalentes a los permisos de Lista de control de acceso (LCA). Puedes otorgar funciones heredadas solo para depósitos individuales, no para proyectos.

Función Descripción Permisos
Lector de objetos heredados de almacenamiento (roles/storage.legacyObjectReader) Otorga permiso para ver los objetos y sus metadatos, sin incluir las LCA. storage.objects.get
Propietario de objetos heredados de almacenamiento (roles/storage.legacyObjectOwner) Otorga permiso para ver y editar objetos y sus metadatos, incluidas las LCA. storage.objects.get
storage.objects.update
storage.objects.setRetention
storage.objects.overrideUnlockedRetention
storage.objects.setIamPolicy
storage.objects.getIamPolicy
Lector de depósitos heredados de almacenamiento (roles/storage.legacyBucketReader) Otorga permiso para enumerar el contenido y leer los metadatos de un bucket, sin incluir las políticas de IAM. También otorga permiso para leer metadatos de objeto cuando se enumeran objetos y carpetas administradas (excepto las políticas de IAM).

El uso de esta función también se refleja en las LCA del depósito. Consulta la relación de la IAM con las LCA para obtener más información.

storage.buckets.get
storage.objects.list
storage.managedFolders.get
storage.managedFolders.list
storage.multipartUploads.list
Escritor de depósitos heredados de almacenamiento (roles/storage.legacyBucketWriter) Otorga permiso para crear, reemplazar, enumerar y borrar objetos y carpetas administradas; crear objetos que tengan una configuración de retención; leer metadatos de objetos y carpetas administradas durante la enumeración (sin incluir las políticas de IAM); y leer los metadatos del bucket, excepto las políticas de IAM.

El uso de esta función también se refleja en las LCA del depósito. Consulta la relación de la IAM con las LCA para obtener más información.

storage.buckets.get
storage.objects.list
storage.objects.create
storage.objects.delete
storage.objects.restore
storage.objects.setRetention
storage.managedFolders.create
storage.managedFolders.delete
storage.managedFolders.get
storage.managedFolders.list
storage.multipartUploads.*
Propietario de buckets heredados de almacenamiento (roles/storage.legacyBucketOwner) Otorga permiso para crear, reemplazar, enumerar y borrar objetos y carpetas administradas; crear objetos que tengan una configuración de retención; crear, borrar y enumerar vinculaciones de etiquetas; leer metadatos de objeto durante la enumeración (sin incluir las políticas de IAM); leer metadatos de carpetas administradas durante la enumeración (incluidas las políticas de IAM); leer y editar los metadatos del bucket (incluidas las políticas de IAM).

El uso de esta función también se refleja en las LCA del depósito. Consulta la relación de la IAM con las LCA para obtener más información.

storage.buckets.get
storage.buckets.createTagBinding
storage.buckets.deleteTagBinding
storage.buckets.listEffectiveTags
storage.buckets.listTagBindings
storage.buckets.update
storage.buckets.enableObjectRetention
storage.buckets.restore
storage.buckets.setIamPolicy
storage.buckets.getIamPolicy
storage.managedFolders.*
storage.objects.list
storage.objects.create
storage.objects.delete
storage.objects.restore
storage.objects.setRetention
storage.multipartUploads.*

Funciones personalizadas

Es posible que desees definir tus propias funciones que contengan paquetes de permisos específicos. Para ello, IAM ofrece funciones personalizadas.

¿Qué sigue?