En esta página, se describe el acceso uniforme a nivel de bucket, que te permite controlar de manera uniforme el acceso a los recursos de Cloud Storage. Cuando habilitas el acceso uniforme a nivel de bucket en uno de ellos, las listas de control de acceso (LCA) se inhabilitan y solo los permisos de Identity and Access Management (IAM) a nivel de bucket otorgan acceso a ese bucket y a los objetos que contiene. Revocarás todos los accesos otorgados por las LCA de objetos y la capacidad de administrar permisos a través de LCA de buckets.
Descripción general
Cloud Storage ofrece dos sistemas para otorgar permiso a los usuarios para acceder a tus buckets 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 bucket. 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 bucket. Usar esta característica en un bucket inhabilita las LCA para todos los recursos de Cloud Storage en el bucket. El acceso a los recursos de Cloud Storage se otorga de forma exclusiva a través de IAM. El acceso uniforme a nivel de bucket no puede inhabilitarse si estuvo activo en un bucket durante 90 días consecutivos.
¿Deberías usar el acceso uniforme a nivel de bucket ?
Por lo general, se recomienda usar el acceso uniforme a nivel de bucket,
El acceso uniforme a nivel de bucket unifica y simplifica la forma en que otorgas acceso a los recursos de Cloud Storage.
El acceso uniforme a nivel de bucket evita la exposición de datos no deseada de las LCA.
Se debe habilitar el acceso uniforme a nivel del bucket para usar las siguientes funciones:
- Espacio de nombres jerárquico
- Carpetas administradas
- Condiciones de IAM configuradas directamente en el bucket
- Federación de identidades de personal
- Federación de identidades para cargas de trabajo
No debes usar el acceso uniforme a nivel de bucket si quieres usar el sistema de LCA para tu bucket.
Cómo es el comportamiento cuando está habilitado
Puedes habilitar el acceso uniforme a nivel de bucket cuando crees un bucket nuevo o cuando habilites el acceso uniforme a nivel de bucket de forma explícita en un bucket existente.
Una vez habilitado, el bucket tiene el siguiente comportamiento:
Las solicitudes para establecer, leer o modificar las LCA de buckets y objetos fallan con errores
400 Bad Request
.- Esto incluye las solicitudes a la API de JSON a través de cualquier método
BucketAccessControls
,DefaultObjectAccessControls
oObjectAccessControls
.
- Esto incluye las solicitudes a la API de JSON a través de cualquier método
Las solicitudes a la API de JSON para una proyección completa de metadatos de objetos o buckets incluyen una lista de LCA vacía como parte de la respuesta.
La propiedad individual del objeto ya no existe; el acceso que se otorga desde esa propiedad se revoca, y las solicitudes de metadatos de buckets y objetos ya no contienen un campo
owner
.En el momento de la creación, los buckets reciben roles de IAM especializados. Si habilitas el acceso uniforme a nivel de bucket como parte de la creación de un bucket nuevo, ese bucket obtendrá roles de IAM adicionales.
Con este comportamiento, los objetos conservan los permisos que habrían heredado de la LCA de objetos predeterminada estándar para un bucket.
Si habilitas el acceso uniforme a nivel de bucket en un bucket existente, debes aplicar esos roles de forma manual. Si cambiaste con anterioridad la LCA de objeto predeterminada del depósito, es probable que desees aplicar un conjunto diferente de roles de IAM.
Cómo es el comportamiento cuando se revierte
Para admitir la posibilidad de inhabilitar el acceso uniforme a nivel de bucket y volver a usar las LCA, Cloud Storage guarda las LCA existentes. Si inhabilitas el acceso uniforme a nivel de bucket, ocurre lo siguiente:
Los objetos recuperan sus LCA guardadas.
Cualquier objeto que se agregue al bucket después de que se haya habilitado el acceso uniforme a nivel de bucket obtendrá LCA en función de las LCA de objetos predeterminadas que usa el bucket.
Consideraciones para migrar un bucket existente
Cuando habilitas el acceso uniforme a nivel de bucket en un bucket 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 bucket al acceso uniforme a nivel de bucket. Ten en cuenta que, como las LCA y la IAM están sincronizadas para los permisos de depósitos, tus consideraciones se deben enfocar en específico 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 bucket 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 bucket, debes comprobar si se accede a los objetos del bucket a través de 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 bucket 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 bucket, dividida por el tipo de operación de LCA y bucket. |
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 bucket 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 bucket.
Para obtener más información de las métricas de Monitoring, consulta Métricas, series temporales y recursos.
Revisa la LCA de objetos predeterminada del depósito
Los buckets sin acceso uniforme a nivel de bucket tienen una LCA de objetos predeterminada asociada a ellos. Los objetos nuevos agregados a esos buckets tienen esta LCA de objetos predeterminada aplicada a ellos, a menos que se suministre de forma explícita una LCA en el momento en que el objeto se agrega al bucket.
Por ejemplo, los depósitos suelen usar la LCA predefinida projectPrivate
como su LCA de objeto predeterminada. projectPrivate
otorga el permiso de objeto READER
a los visualizadores de proyectos asociados con el depósito y otorga permiso al objeto OWNER
a los editores y propietarios del proyecto. asociados con el bucket.
Antes de habilitar el acceso uniforme a nivel de bucket, revisa la LCA de objetos predeterminada del bucket. Considera si deseas otorgar los permisos asociados con la LCA de objetos predeterminada una vez que hayas habilitado el acceso uniforme a nivel de bucket. 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
Para evitar conflictos entre las LCA de objetos y las políticas de IAM de un bucket, las condiciones de IAM solo se pueden usar en los buckets que tengan el acceso uniforme a nivel de bucket habilitado. Esto significa lo siguiente:
Para configurar las condiciones de IAM en un bucket, primero debes habilitar el acceso uniforme a nivel de bucket en ese bucket.
Antes de inhabilitar el acceso uniforme a nivel de bucket en un bucket, debes quitar todas las condiciones de IAM de la política de ese bucket. Si deseas obtener información acerca de cómo ver y quitar las condiciones de la política de un bucket, consulta Usa las condiciones de IAM en buckets.
¿Qué sigue?
- Obtén más información para usar el acceso uniforme a nivel de bucket.
- Obtén información de la restricción del acceso uniforme a nivel de bucket, que puedes configurar en tu organización, carpeta o proyecto de Google Cloud.
- Configura permisos de IAM en buckets y proyectos.