Installer des buckets Cloud Storage à l'aide de Cloud Storage FUSE

Options d'installation

Cette page décrit plusieurs manières d'installer des buckets Cloud Storage sur votre système de fichiers local à l'aide de Cloud Storage FUSE.

Avant de commencer

Pour installer et accéder aux buckets, vous devez d'abord effectuer les tâches suivantes.

Obtenir les rôles requis pour installer et accéder à un bucket

Pour installer, accéder et effectuer des opérations de lecture et d'écriture dans un bucket, demandez au propriétaire du bucket de vous accorder le rôle Utilisateur des objets Storage (roles/storage.objectUser) sur le bucket.

Ce rôle prédéfini contient les autorisations requises pour lire à partir d'un bucket installé et écrire dans un bucket installé. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

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

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour savoir comment attribuer des rôles aux buckets, consultez la section Utiliser IAM avec des buckets.

Installer Cloud Storage FUSE

Si ce n'est pas déjà fait, installez Cloud Storage FUSE.

Authentifier des requêtes Cloud Storage FUSE

Pour authentifier des requêtes Cloud Storage FUSE auprès de Cloud Storage, vous devez configurer des Identifiants par défaut de l'application. Par défaut, Cloud Storage FUSE charge automatiquement les Identifiants par défaut existants de l'application sans configuration supplémentaire.

Pour utiliser Google Cloud CLI afin de configurer les Identifiants par défaut de l'application, procédez comme suit :

  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.

Lorsque vous créez une VM Compute Engine, son compte de service peut également être utilisé pour authentifier l'accès à Cloud Storage FUSE.

Installer un bucket

Pour installer des buckets sur votre système de fichiers local, exécutez la commande suivante :

gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT

Où :

  • GLOBAL_OPTIONS sont les options que vous pouvez inclure pour contrôler la configuration de l'installation. Pour en savoir plus sur les options et leur utilisation, consultez la section Options de la CLI Cloud Storage FUSE.

  • BUCKET_NAME est le nom du bucket que vous souhaitez installer. Par exemple, my-bucket. Si vous souhaitez effectuer une installation dynamique, excluez un nom de bucket de la commande.

  • MOUNT_POINT correspond au répertoire local dans lequel le bucket est installé. Exemple :/path/to/mount/point

Une fois que Cloud Storage FUSE a quitté la session, vous pouvez accéder à vos buckets installés en exécutant ls sur le point d'installation du bucket. Si vous préférez que Cloud Storage FUSE reste au premier plan (par exemple, pour la journalisation des données de débogage), exécutez la commande gcsfuse avec l'option --foreground.

Exemples d'installation

Cette section décrit différents exemples de commandes permettant d'installer des buckets.

Installation statique

L'installation statique consiste à installer un bucket spécifique. Par exemple, pour installer un bucket nommé my-bucket dans le répertoire /path/to/mount/point, exécutez les commandes suivantes:

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

Installation dynamique

L'installation dynamique consiste à installer tous les buckets auxquels un utilisateur a accès en tant que sous-répertoires.

Lorsque vous effectuez un montage dynamique, vous excluez les noms de buckets de la commande. Par exemple, supposons que vous ayez accès aux buckets nommés my-bucket-1, my-bucket-2 et my-bucket-3. Pour installer tous les buckets dans le répertoire /path/to/mount/point, exécutez les commandes suivantes:

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

Vous pouvez ensuite accéder aux buckets en tant que sous-répertoires :

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

Les buckets installés de manière dynamique ne peuvent pas être répertoriés à partir du point d'installation racine. À la place, le nom du bucket doit être spécifié dans le cadre de l'opération de listing.

Installer un bucket en lecture seule

Pour installer un bucket en lecture seule, transmettez l'option -o ro à votre commande gcsfuse. Par exemple, pour installer un bucket nommé my-bucket en lecture seule dans le répertoire /path/to/mount/point, exécutez la commande suivante:

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

Installer un répertoire dans un bucket

Par défaut, Cloud Storage FUSE installe les buckets dans son intégralité, ce qui inclut tout le contenu du bucket et les structures de répertoires. Pour installer un répertoire spécifique dans un bucket, transmettez l'option --only-dir à votre commande gcsfuse. Par exemple, pour installer le répertoire my-bucket/a/b dans le répertoire /path/to/mount/point, exécutez la commande suivante :

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

Installation à l'aide de la commande Linux mount

L'installation de Cloud Storage FUSE inclut un outil d'aide compris par la commande Linux mount, qui vous permet d'utiliser la commande mount pour installer des buckets. La commande mount doit être exécutée à partir de la racine si vous utilisez Linux. Par exemple, la commande suivante installe un bucket nommé my-bucket dans le chemin d'accès /path/to/mount/point:

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

Lors de l'installation à l'aide de la commande Linux mount, les options de CLI Cloud Storage FUSE peuvent être transmises en tant qu'argument à l'option -o, mais les traits d'union (-) doivent être remplacé par des traits de soulignement (_). Par exemple, implicit_dirs au lieu de implicit-dirs.

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

Installation persistante

L'installation de Cloud Storage FUSE inclut un outil d'aide installé sur votre système dans le chemin d'accès /sbin/mount.gcsfuse. Cet outil d'aide vous permet de créer des points d'installation à l'aide du fichier /etc/fstab afin de conserver vos installations.

Par exemple, lorsqu'elle est ajoutée à votre fichier /etc/fstab, la ligne suivante définit un point d'installation pour un bucket nommé my-bucket au chemin /mount/point:

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

Où :

  • L'option rw indique que le point d'installation doit être créé avec des autorisations de lecture et d'écriture.

  • L'option noauto indique que le système de fichiers ne doit pas être installé au démarrage.

  • L'option user permet à n'importe quel utilisateur de créer le point d'installation spécifié dans le fichier /etc/fstab. Après avoir ajouté l'exemple de ligne au fichier /etc/fstab, vous pouvez exécuter mount /mount/point en tant qu'utilisateur non racine.

Si vous souhaitez installer automatiquement le bucket au démarrage, vous devrez peut-être inclure l'option x-systemd.requires=network-online.target ou l'option _netdev dans votre entrée /etc/fstab, pour vous assurer que Cloud Storage FUSE attend que le système réseau soit prêt avant l'installation. Par exemple :

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

Vous pouvez installer un bucket automatiquement en tant qu'utilisateur non racine spécifique en incluant les options uid et/ou gid dans votre entrée /etc/fstab. Par exemple :

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

À l'instar de la commande Linux mount, les options utilisées pour l'installation dans le fichier /etc/fstab doivent utiliser des traits de soulignement (_) au lieu des traits d'union (-). Par exemple, implicit_dirs au lieu de implicit-dirs.

Installer un bucket avec des dossiers

Vous pouvez installer des buckets avec plusieurs types de dossiers.

Installer un bucket avec des dossiers gérés

Pour installer un bucket, y compris ses dossiers gérés, incluez l'option --implicit-dirs dans votre commande.

Par exemple, pour installer un bucket nommé my-bucket et ses dossiers gérés dans le répertoire /path/to/mount/point, exécutez les commandes suivantes:

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

Lorsque vous installez un bucket avec des dossiers gérés, tenez compte des limitations et considérations suivantes :

  • Les dossiers gérés vides n'apparaissent pas dans les buckets installés.

  • Vous ne pouvez pas définir ou gérer des autorisations IAM sur un dossier géré à l'aide de Cloud Storage FUSE. Pour définir ou gérer les autorisations IAM sur un dossier géré, consultez la page Utiliser IAM avec des dossiers gérés.

  • Vous pouvez copier et déplacer un dossier géré dans un bucket installé à l'aide des commandes cp et mv. Lorsque vous copiez ou déplacez un dossier géré, les stratégies IAM du dossier géré d'origine ne sont pas conservées dans le nouveau dossier géré. Vous devez définir de nouvelles stratégies IAM pour le nouveau dossier géré.

Installer un bucket avec des dossiers définis implicitement

Vous pouvez installer des dossiers définis implicitement à l'aide de l'option --implicit-dirs dans votre commande Cloud Storage FUSE. Les dossiers définis implicitement sont des dossiers qui ne sont pas créés explicitement en tant qu'objets dans Cloud Storage. L'indicateur --implicit-dirs vous permet d'afficher les dossiers lorsque vous installez un bucket.

Par exemple, pour installer un bucket nommé my-bucket dans le répertoire /path/to/mount/point avec des dossiers définis implicitement, exécutez la commande suivante:

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

Installer un bucket avec un espace de noms hiérarchique activé avec des dossiers

Vous pouvez installer un bucket avec l'espace de noms hiérarchique activé, y compris ses dossiers. Lorsque vous montez un bucket avec un espace de noms hiérarchique, vous n'avez pas besoin de spécifier l'indicateur --implicit-dirs pour que les dossiers apparaissent dans votre bucket monté.

Par exemple, pour installer un bucket nommé my-bucket avec des dossiers dans le répertoire /path/to/mount/point, exécutez la commande suivante:

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

Contrôler les autorisations d'accès au point d'installation

Par défaut, Cloud Storage FUSE crée des points d'installation de bucket avec des autorisations qui ne permettent à l'utilisateur appelant que d'accéder au contenu des buckets installés. Il s'agit d'une mesure de sécurité mise en œuvre dans le noyau FUSE.

Pour installer un bucket et autoriser d'autres utilisateurs à accéder au point d'installation du bucket, vous pouvez exécuter la commande mount en tant qu'utilisateur racine avec l'option -o allow_other :

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

Si vous souhaitez éviter d'installer le bucket en tant qu'utilisateur racine, vous devez ajouter user_allow_other au fichier /etc/fuse.conf pour permettre aux autres utilisateurs d'accéder au point d'installation du bucket.

Désinstaller un bucket

Pour désinstaller un bucket, utilisez l'outil fusermount :

fusermount -u /path/to/mount/point

Étape suivante