Acceso uniforme a nivel de depósito

Ir a ejemplos

En esta página, se describe el acceso uniforme a nivel de depósito, que te permite controlar de manera uniforme el acceso a los recursos de Cloud Storage. Cuando habilitas el acceso uniforme a nivel de depósito en uno de ellos, las listas de control de acceso (LCA) se inhabilitan y solo los permisos de la administración de identidades y accesos (IAM) a nivel de depósito otorgan acceso a ese depósito y a los objetos que contiene. Revocarás todos los accesos otorgados por las LCA de objetos y la capacidad de administrar permisos mediante LCA de depósitos.

Descripción general

Cloud Storage ofrece dos sistemas para otorgar permiso a los usuarios a fin de acceder a tus depósitos y objetos: IAM y las listas de control de acceso (LCA). Estos sistemas actúan en paralelo: para que un usuario acceda a un recurso de Cloud Storage, solo uno de los sistemas debe otorgarle permiso. La IAM se usa en todo Google Cloud y te permite otorgar una variedad de permisos a nivel de proyecto y de depósito. Las LCA solo se usan en Cloud Storage y tienen opciones de permisos limitadas, pero te permiten otorgar permisos por objeto.

Para admitir un sistema de permisos uniforme, Cloud Storage tiene acceso uniforme a nivel de depósito. El uso de esta función inhabilita las LCA en todos los recursos de Cloud Storage: el acceso a los recursos de Cloud Storage se otorga solo mediante la IAM. Una vez que habilitas el acceso uniforme a nivel de depósito, tienes 90 días para revertir la decisión.

¿Deberías usar el acceso uniforme a nivel de depósito?

Por lo general, se recomienda usar el acceso uniforme a nivel de depósito, ya que unifica y simplifica la forma en que otorgas acceso a los recursos de Cloud Storage.

Si usas el acceso uniforme a nivel de depósito, también puedes usar otras funciones de seguridad de Google Cloud, como los registros de auditoría de Cloud, el uso compartido restringido al dominio y las condiciones de IAM.

Es posible que no quieras usar el acceso uniforme a nivel de depósito y desees retener las LCA detalladas en los siguientes casos:

  • Si deseas controlar el acceso a objetos específicos de un depósito a través de LCA heredadas.

  • Si deseas que quien sube un objeto tenga control total sobre ese objeto, pero menos acceso a otros objetos del depósito.

Restricciones

Cuando se usa el acceso uniforme a nivel de depósito, se aplican las siguientes restricciones:

  • Algunos servicios de Google Cloud que realizan exportaciones a Cloud Storage no pueden exportar a depósitos que tengan habilitado el acceso uniforme a nivel de depósito. Entre estos servicios, se incluyen los siguientes:

    Cloud Logging, registros de auditoría de Cloud y Datastore.

  • No puedes usar la API de XML a fin de ver o establecer permisos para depósitos con el acceso uniforme a nivel de depósito habilitado.

Cómo es el comportamiento cuando está habilitado

Puedes habilitar el acceso uniforme a nivel de depósito cuando crees un depósito nuevo o cuando habilites el acceso uniforme a nivel de depósito de forma explícita en un depósito existente.

Una vez habilitado, el depósito tiene el siguiente comportamiento:

  • Las solicitudes para establecer, leer o modificar las LCA de depósitos y objetos fallan con errores 400 Bad Request.

  • Las solicitudes a la API de JSON para una proyección completa de metadatos de objetos o depósitos incluyen una lista de LCA vacía como parte de la respuesta.

  • Los comandos de gsutil cp -p, mv -p y rsync -p fallan (cuando el depósito de acceso uniforme a nivel de depósito es la fuente y cuando es el destino). Los comandos de gsutil acl y defacl también fallan.

  • La propiedad individual del objeto ya no existe; el acceso que se otorga desde esa propiedad se revoca, y las solicitudes de metadatos de depósitos y objetos ya no contienen un campo owner.

  • Si habilitas el acceso uniforme a nivel de depósito cuando creas un depósito nuevo, este recibe de forma automática funciones adicionales de IAM.

    • Con este comportamiento, los objetos conservan los permisos que heredaron de las LCA de objetos predeterminadas del depósito.

    • Si habilitas el acceso uniforme a nivel de depósito en un depósito existente, debes aplicar esas funciones de forma manual. Es posible que desees aplicar un conjunto de funciones diferente si cambiaste las LCA de objeto predeterminadas del depósito.

Cómo es el comportamiento cuando se revierte

Para admitir la posibilidad de inhabilitar el acceso uniforme a nivel de depósito y volver a usar las LCA, Cloud Storage guarda las LCA existentes durante 90 días. Si inhabilitas el acceso uniforme a nivel de depósito durante este tiempo, sucede lo siguiente:

  • Los objetos recuperan sus LCA guardadas.

  • Cualquier objeto que se agregue al depósito después de que se haya habilitado el acceso uniforme a nivel de depósito obtendrá LCA en función de las LCA de objetos predeterminadas que usa el depósito.

Consideraciones para migrar un depósito existente

Cuando habilitas el acceso uniforme a nivel de depósito en un depósito existente, debes asegurarte de que los permisos de los usuarios y servicios que antes dependían de las LCA para obtener el acceso se migren a la IAM. En esta sección, se describen algunos pasos que debes seguir cuando migres un depósito al acceso uniforme a nivel de depósito. Ten en cuenta que, como las LCA y la IAM están sincronizadas para los permisos de depósitos, tus consideraciones se deben enfocar específicamente en el acceso a objetos dentro de tu depósito y no en el acceso al depósito.

Considera si un permiso de IAM a nivel de depósito sobreexpone los datos

Antes de asignar equivalentes de IAM a las LCA, ten en cuenta los siguientes factores:

  • Un permiso de IAM aplicado a nivel de depósito se aplica a todos los objetos del depósito, mientras que las LCA de objetos pueden variar de un objeto a otro.

Si deseas aplicar acceso a algunos objetos, pero no a otros, debes agruparlos en depósitos diferentes. Cada agrupación debe contener aquellos objetos que tienen los mismos permisos.

Verifica el uso de LCA de objetos

Cuando migres al acceso uniforme a nivel de depósito, debes comprobar si se accede a los objetos del depósito mediante las LCA que se les aplican. Para comprobarlo, Cloud Monitoring tiene una métrica que realiza seguimientos del uso de la LCA. Si esta métrica indica que los usuarios o servicios dependen de las LCA para acceder a los objetos, debes asignar equivalentes de IAM al depósito antes de habilitar el acceso uniforme a nivel de depósito. Para obtener una guía sobre cómo verificar el uso de las LCA en Monitoring, consulta Verifica el uso de las LCA.

Usa esta métrica para determinar si habilitar el acceso uniforme a nivel de depósito interrumpiría el flujo de trabajo:

Métrica Descripción
storage.googleapis.com/authz/acl_operations_count La cantidad de operaciones de LCA que se inhabilitarán cuando se habilite el acceso uniforme a nivel de depósito, dividida por el tipo de operación de LCA y depósito.

Una operación importante de LCA que se debe examinar es OBJECT_ACCESS_REQUIRED_OBJECT_ACL:

  • Si este número es cero, no se requirieron LCA a nivel de objeto para acceder a los objetos en las últimas 6 semanas. Las políticas de IAM cubren los permisos necesarios a nivel de depósito o proyecto.

  • Si este número es mayor que cero, hubo solicitudes de acceso a objetos en las últimas 6 semanas que requirieron permisos de LCA de objetos. Debes asignar políticas de IAM equivalentes antes de habilitar el acceso uniforme a nivel de depósito.

Para obtener más información sobre las métricas de Monitoring, consulta Métricas, series temporales y recursos.

Revisa la LCA de objetos predeterminada del depósito

Todos los depósitos tienen una LCA de objetos predeterminada asociada a ellos. Los objetos nuevos agregados a un depósito tienen esta LCA de objetos predeterminada aplicada a ellos, a menos que se suministre explícitamente una LCA en el momento en que el objeto se agrega al depósito.

Antes de habilitar el acceso uniforme a nivel de depósito, revisa la LCA de objetos predeterminada del depósito. Considera si deseas otorgar los permisos asociados con la LCA de objetos predeterminada una vez que hayas habilitado el acceso uniforme a nivel de depósito. De ser así, asigna equivalentes de IAM al depósito.

Asigna equivalentes de IAM para las LCA de objetos

Las LCA de objetos pueden otorgar el acceso que la IAM no otorga en la actualidad. Para garantizar que los usuarios existentes no pierdan el acceso a objetos cuando habilites el acceso uniforme a nivel de depósito, usa la siguiente tabla y asigna a los usuarios afectados las funciones de IAM correspondientes.

Permiso para LCA de objetos Función de IAM equivalente
READER Lector de objetos heredados de almacenamiento (roles/storage.legacyObjectReader)
OWNER Propietario de objetos heredados de almacenamiento (roles/storage.legacyObjectOwner)

Consideraciones para usar las condiciones de IAM

A fin de evitar conflictos entre las LCA de objetos y las políticas de IAM de un depósito, las condiciones de IAM solo se pueden usar en los depósitos que tengan el acceso uniforme a nivel de depósito habilitado. Esto significa lo siguiente:

  • Para configurar las condiciones de IAM en un depósito, primero debes habilitar el acceso uniforme a nivel de depósito en ese depósito.

  • Para inhabilitar el acceso uniforme a nivel de depósito en un depósito, primero debes quitar todas las condiciones de IAM de la política de ese depósito. Si deseas obtener información sobre cómo ver y quitar las condiciones de la política de un depósito, consulta Usa las condiciones de IAM en depósitos. Ten en cuenta que el acceso uniforme a nivel de depósito no se puede inhabilitar si estuvo activo en un depósito durante 90 días consecutivos.

Próximos pasos