Activa los buckets de Cloud Storage mediante Cloud Storage FUSE

Opciones de activación

En esta página, se describen varias formas de activar buckets de Cloud Storage en tu sistema de archivos local mediante Cloud Storage FUSE.

Antes de comenzar

Para activar buckets, primero debes completar las siguientes tareas.

Obtén los roles necesarios

Para activar un bucket, pídele al propietario del bucket que te otorgue el rol de visualizador de objetos de almacenamiento (roles/storage.objectViewer) en el bucket. Ten en cuenta que, si creaste el bucket, es probable que ya tengas la función de administrador de almacenamiento (roles/storage.admin) en el bucket y no necesites la función de visualizador de objetos de almacenamiento.

La función predefinida de Visualizador de objetos de almacenamiento contiene el permiso necesario para activar un depósito. Para ver el permiso exacto que es necesario, expande la sección Permisos requeridos:

Permisos necesarios

  • storage.objects.list

También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.

Para obtener instrucciones para otorgar roles a los buckets, consulta Usa IAM con buckets.

Instala Cloud Storage FUSE

Si aún no lo has hecho, instala Cloud Storage FUSE.

Autentica solicitudes de Cloud Storage FUSE

Para autenticar las solicitudes de Cloud Storage FUSE en Cloud Storage, debes configurar las credenciales predeterminadas de la aplicación. De forma predeterminada, Cloud Storage FUSE carga automáticamente las credenciales predeterminadas de la aplicación existentes sin ninguna configuración adicional.

Para usar Google Cloud CLI a fin de configurar las credenciales predeterminadas de la aplicación, completa los siguientes pasos:

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

Cuando creas una máquina virtual (VM) de Compute Engine, su cuenta de servicio también se puede usar para autenticar el acceso a Cloud Storage FUSE.

Activa un bucket

Para activar buckets en el sistema de archivos local, usa el siguiente comando:

gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT

Donde:

  • GLOBAL_OPTIONS son las opciones que puedes incluir para controlar cómo se configura la activación. Para obtener más información sobre las opciones y cómo usarlas, consulta Opciones de la CLI de Cloud Storage FUSE.

  • BUCKET_NAME es el nombre del bucket que deseas activar. Por ejemplo, my-bucket Si deseas realizar una activación dinámica, excluye el nombre del bucket del comando.

  • MOUNT_POINT es el directorio local donde se activa el bucket. Por ejemplo, /path/to/mount/point

Después de que Cloud Storage FUSE se cierre, puedes acceder a los buckets activados ejecutando ls en el punto de activación del bucket. Si prefieres que Cloud Storage FUSE se mantenga en primer plano (por ejemplo, para el registro de depuración), puedes ejecutar el comando gcsfuse con la marca --foreground.

Ejemplos de activación

En esta sección, se describen diferentes comandos de ejemplo para activar buckets.

Activación estática

La activación estática se refiere a la activación de un bucket específico. Por ejemplo, para activar el bucket my-bucket en el directorio /path/to/mount/point, ejecuta los siguientes comandos:

mkdir /path/to/mount/point
gcsfuse my-bucket /path/to/mount/point

Activación dinámica

La activación dinámica se refiere a la activación de todos los buckets a los que un usuario tiene acceso como subdirectorios.

Cuando realizas la activación dinámica, excluyes el nombre de un bucket del comando. Por ejemplo, supongamos que tienes acceso a my-bucket-1, my-bucket-2 y my-bucket-3. Para activar todos los buckets en el directorio /path/to/mount/point, ejecuta los siguientes comandos:

mkdir /path/to/mount/point
gcsfuse /path/to/mount/point

Luego, puedes acceder a los buckets como subdirectorios:

ls /path/to/mount/point/my-bucket-1/
ls /path/to/mount/point/my-bucket-2/
ls /path/to/mount/point/my-bucket-3/

Los buckets activados de forma dinámica no pueden aparecer en una lista desde el punto de activación raíz. En su lugar, el nombre del bucket debe especificarse como parte de la operación de lista.

Activa un bucket como de solo lectura

Para activar un bucket como de solo lectura, pasa la opción -o ro al comando gcsfuse. Por ejemplo, para activar el bucket my-bucket como de solo lectura en el directorio /path/to/mount/point, ejecuta el siguiente comando:

gcsfuse -o ro my-bucket  /path/to/mount/point

Activa un directorio dentro de un bucket

De forma predeterminada, Cloud Storage FUSE activa los buckets en su totalidad, lo que incluye todo el contenido y las estructuras de directorios del bucket. Para activar un directorio específico dentro de un bucket, pasa la opción --only-dir al comando gcsfuse. Por ejemplo, para activar el directorio my-bucket/a/b en el directorio /path/to/mount/point, ejecuta el siguiente comando:

gcsfuse --only-dir a/b my-bucket /path/to/mount/point

Activación mediante el comando mount de Linux

La instalación de Cloud Storage FUSE incluye un asistente que el comando mount de Linux comprende, que te permite usar el comando mount para activar buckets. El comando mount debe ejecutarse desde la raíz si usas Linux. Por ejemplo, con el siguiente comando, se activa el bucket my-bucket en la ruta /path/to/mount/point:

sudo mount -t gcsfuse -o rw,user my-bucket /path/to/mount/point

Cuando se activa usando el comando mount de Linux, las opciones de la CLI de Cloud Storage FUSE se pueden pasar como un argumento a la marca -o, pero los guiones (-) en ellas deben reemplazarse por guiones bajos (_). Por ejemplo, implicit_dirs en lugar de implicit-dirs.

sudo mount -t gcsfuse -o implicit_dirs my-bucket /path/to/mount/point

Activación persistente

La instalación de Cloud Storage FUSE incluye un asistente que se instala en tu sistema en la ruta /sbin/mount.gcsfuse. Este asistente te permite crear puntos de activación con el archivo /etc/fstab para que puedas conservar tus activaciones.

Por ejemplo, cuando se agrega a tu archivo /etc/fstab, la siguiente línea define un punto de activación para el bucket my-bucket en la ruta /mount/point:

my-bucket /mount/point gcsfuse rw,noauto,user

Donde:

  • La opción rw especifica que el punto de activación se crea con permisos de lectura y escritura.

  • La opción noauto especifica que el sistema de archivos no se debe activar en el momento del inicio.

  • La opción user permite que cualquier persona cree el punto de activación especificado en el archivo /etc/fstab. Después de agregar la línea de muestra al archivo /etc/fstab, puedes ejecutar mount /mount/point como un usuario no raíz.

Si deseas activar el bucket de forma automática en el inicio, es posible que debas incluir la opción x-systemd.requires=network-online.target o _netdev en tu entrada /etc/fstab para asegurarte de que Cloud Storage FUSE espere a que el sistema de red esté listo antes de la activación. Por ejemplo:

my-bucket /mount/point gcsfuse rw,x-systemd.requires=network-online.target,user

Puedes activar un bucket de forma automática como un usuario no raíz específico incluyendo las opciones uid, gid o ambos en tu entrada /etc/fstab. Por ejemplo:

my-bucket /mount/point gcsfuse rw,_netdev,allow_other,uid=1001,gid=1001

Al igual que con el comando mount de Linux, las marcas que se usan para activar en el archivo /etc/fstab deben usar guiones bajos (_) en lugar de guiones (-). Por ejemplo, implicit_dirs en lugar de implicit-dirs.

Activa un bucket con carpetas

Para activar un bucket que incluya sus carpetas administradas, incluye la opción --implicit-dirs en tu comando.

Por ejemplo, para activar el bucket my-bucket y sus carpetas administradas en el directorio /path/to/mount/point, ejecuta los siguientes comandos:

mkdir /path/to/mount/point
gcsfuse --implicit-dirs my-bucket /path/to/mount/point

Cuando actives un bucket con carpetas administradas, ten en cuenta las siguientes limitaciones y consideraciones:

  • Las carpetas administradas vacías no aparecen en los buckets activados.

  • No puedes configurar o administrar permisos de IAM en una carpeta administrada por medio de Cloud Storage FUSE. Para configurar o administrar permisos de IAM en una carpeta administrada, consulta Usar IAM con carpetas administradas.

  • Puedes copiar y mover una carpeta administrada en un bucket activado con los comandos cp y mv. Cuando copias o mueves una carpeta administrada, las políticas de IAM de la carpeta administrada original no se conservan a la carpeta administrada nueva. Debes establecer nuevas políticas de IAM en la carpeta administrada nueva.

Controla los permisos de acceso al punto de activación

De forma predeterminada, Cloud Storage FUSE crea puntos de activación de bucket con permisos que solo permiten al usuario invocador acceder al contenido de los buckets activados. Esta es una medida de seguridad que se implementa dentro del kernel de FUSE.

Para activar un bucket y permitir que otros accedan al punto de activación del bucket, puedes ejecutar el comando mount como raíz con la opción -o allow_other:

mount -t gcsfuse -o allow_other my-bucket /path/to/mount/point

Si deseas evitar que se active el bucket como raíz, debes agregar user_allow_other al archivo /etc/fuse.conf para permitir que otros accedan al punto de activación del bucket.

Para acceder a un bucket activado, otros usuarios, además del usuario que invoca,deben tener los permisos de IAM necesarios.

Funciones necesarias para acceder a un bucket activado

Para leer y escribir en un bucket activado, pídele al propietario del bucket que te otorgue el rol de usuario de objeto de Storage (roles/storage.objectUser) en el bucket.

Este rol predefinido contiene los permisos necesarios para leer desde un bucket activado y escribir en un bucket activado. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

  • storage.objects.create
  • storage.objects.delete
  • storage.objects.get
  • storage.objects.list
  • storage.objects.update

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Para obtener instrucciones para otorgar roles a los buckets, consulta Usa IAM con buckets.

Desactiva un bucket

Para desactivar un bucket, usa la herramienta fusermount:

fusermount -u /path/to/mount/point

¿Qué sigue?