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 des buckets, vous devez d'abord effectuer les tâches suivantes.

Obtenir les rôles requis

Pour installer un bucket, demandez au propriétaire du bucket de vous attribuer le rôle de lecteur des objets de l'espace de stockage (roles/storage.objectViewer) sur le bucket. Notez que si vous avez créé le bucket, vous disposez probablement déjà du rôle "Administrateur de l'espace de stockage" (roles/storage.admin) sur le bucket et vous n'avez pas besoin du rôle "Lecteur des objets Storage".

Le rôle prédéfini de lecteur des objets de l'espace de stockage contient l'autorisation requise pour installer un bucket. Pour afficher l'autorisation exacte requise, développez la section Autorisations requises:

Autorisations requises

  • storage.objects.list

Vous pouvez également obtenir cette autorisation 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. Installez Google Cloud CLI.
  2. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  3. Créez des identifiants d'authentification locaux pour votre compte Google :

    gcloud auth application-default login

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é. Par 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 le bucket 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 procédez à une installation dynamique, vous excluez un nom de bucket de la commande. Par exemple, supposons que vous ayez accè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 le bucket 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 le bucket 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 le bucket 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

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

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

mkdir /path/to/mount/point
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é.

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.

Pour accéder à un bucket installé, d'autres utilisateurs, en plus de l'utilisateur appelant, doivent disposer des autorisations IAM requises.

Rôles requis pour accéder à un bucket installé

Pour lire et écrire dans un bucket installé, 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.

Désinstaller un bucket

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

fusermount -u /path/to/mount/point

Étapes suivantes