Funciones de IAM para Cloud Storage

Funciones predefinidas

En la siguiente tabla, se describen las funciones de administración de identidades y accesos (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 enteros o depósitos específicos.

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. resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.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 de un bucket.

resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.get
storage.objects.list
Administrador de objetos de almacenamiento (roles/storage.objectAdmin) Otorga control total sobre los objetos, lo que incluye permisos para enumerarlos, crearlos, verlos y borrarlos. resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.*
storage.multipartUploads.create
storage.multipartUploads.abort
storage.multipartUploads.listParts
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. storage.hmacKeys.*
Administrador de almacenamiento (roles/storage.admin) Otorga control total sobre los depósitos y objetos.

Cuando se aplica en un depósito individual, el control solo se aplica al depósito especificado y a los objetos que contiene.

firebase.projects.get
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.*
storage.objects.*
storage.multipartUploads.*

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 función básica tiene un valor de conveniencia que te permite usar la función básica como si fuera un grupo. Cuando se usa de esta manera, cualquier miembro que tenga la función básica se considera 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 objetos.

  • Las funciones básicas 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 cualquier otro miembro de IAM, es posible revocar el acceso que los miembros podrían esperar.

    Para ver un análisis del acceso adicional que los miembros 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 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.

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

storage.buckets.create
storage.buckets.delete
storage.buckets.list
storage.hmacKeys.*

Comportamiento modificable

En la siguiente tabla, se describe el acceso adicional a Cloud Storage que suele asociarse con cada función básica debido a los valores de conveniencia. Este acceso adicional se otorga en el momento de la creación del depósito, pero luego puedes editar tus políticas de IAM del depósito y las LCA de tu objeto para quitarlas o modificarlas.

Función Acceso adicional obtenido debido a los valores de conveniencia
Visualizador (roles/viewer)
Editor (roles/editor)
Propietario (roles/owner)

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.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 (sin incluir 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.multipartUploads.list
Escritor de depósitos heredados de almacenamiento (roles/storage.legacyBucketWriter) Otorga permiso para crear, reemplazar y borrar objetos; enumerar objetos en un bucket ; leer los metadatos de objetos cuando se los enumera (excepto 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.multipartUploads.create
storage.multipartUploads.abort
storage.multipartUploads.listParts
Propietario de depósitos heredados de almacenamiento (roles/storage.legacyBucketOwner) Otorga permiso para crear, reemplazar y borrar objetos; enumerar objetos en un bucket ; leer los metadatos de objetos cuando se los enumera (excepto las políticas de IAM); y 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.update
storage.buckets.setIamPolicy
storage.buckets.getIamPolicy
storage.objects.list
storage.objects.create
storage.objects.delete
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?