Monta i bucket Cloud Storage utilizzando Cloud Storage FUSE

Opzioni di montaggio

In questa pagina vengono descritti i diversi modi per montare i bucket Cloud Storage al file system locale utilizzando Cloud Storage FUSE.

Prima di iniziare

Per montare i bucket, devi prima completare le attività seguenti.

Ottieni i ruoli richiesti

Per montare un bucket, chiedi al proprietario del bucket di concederti il visualizzatore oggetti Storage (roles/storage.objectViewer) nel bucket. Tieni presente che se hai creato , probabilmente hai già il ruolo Amministratore Storage (roles/storage.admin) sul bucket e non hanno bisogno del ruolo Visualizzatore oggetti Storage.

Il ruolo predefinito Visualizzatore oggetti Storage contiene l'autorizzazione richiesta per montare un bucket. Per visualizzare esattamente l'autorizzazione richiesta, espandi la sezione Sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

  • storage.objects.list

Potresti riuscire a ottenere questa autorizzazione anche con i ruoli personalizzati o e altri ruoli predefiniti.

Per istruzioni sulla concessione dei ruoli nei bucket, consulta Utilizzare IAM con i bucket.

Installa Cloud Storage FUSE

Se non lo hai già fatto, installa Cloud Storage FUSE.

Autentica le richieste FUSE di Cloud Storage

Per autenticare le richieste Cloud Storage FUSE in Cloud Storage, devi configurare Credenziali predefinite dell'applicazione. Per impostazione predefinita, Cloud Storage FUSE carica automaticamente le credenziali predefinite dell'applicazione esistenti senza dover configurazione.

Per utilizzare Google Cloud CLI per configurare le credenziali predefinite dell'applicazione, completa segui questi passaggi:

  1. Installa Google Cloud CLI.
  2. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  3. Crea credenziali di autenticazione locali per il tuo Account Google:

    gcloud auth application-default login

Quando crei una macchina virtuale (VM) Compute Engine, il relativo account di servizio può utilizzato anche per autenticare l'accesso a Cloud Storage FUSE.

Monta un bucket

Per montare i bucket nel file system locale, utilizza il comando seguente:

gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT

Dove:

  • GLOBAL_OPTIONS sono le opzioni che puoi includere per controllare la configurazione della piastra da muro. Per ulteriori informazioni sulle opzioni e su come utilizzarle, vedi Opzioni dell'interfaccia a riga di comando di Cloud Storage FUSE.

  • BUCKET_NAME è il nome del bucket che vuoi . Ad esempio, my-bucket. Se vuoi eseguire il montaggio dinamico, escludi il nome di un bucket dal comando.

  • MOUNT_POINT è la directory locale in cui il bucket viene montato. Ad esempio, /path/to/mount/point.

Una volta chiuso Cloud Storage FUSE, puoi accedere ai bucket montati eseguendo ls sul punto di montaggio del bucket. Se preferisci che Cloud Storage FUSE rimanga nel in primo piano (ad esempio per il logging di debug), puoi eseguire il comando gcsfuse con il flag --foreground.

Esempi di montaggio

Questa sezione descrive i diversi comandi di esempio per il montaggio dei bucket.

Montaggio statico

Per montaggio statico si intende il montaggio di un bucket specifico. Ad esempio, per montare il bucket my-bucket nella directory /path/to/mount/point, esegui questo comando :

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

Montaggio dinamico

Il montaggio dinamico si riferisce al montaggio di tutti i bucket a cui un utente ha accesso come nelle sottodirectory.

Quando esegui il montaggio dinamico, escludi un bucket nome dal comando. Ad esempio, supponiamo che tu abbia accesso a my-bucket-1, my-bucket-2 e my-bucket-3. montare tutti i bucket nella directory /path/to/mount/point, esegui questi comandi:

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

Puoi quindi accedere ai bucket come sottodirectory:

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

I bucket montati dinamicamente non possono essere elencati dal punto di montaggio principale. Invece, il nome del bucket deve essere specificato nell'ambito dell'operazione di elenco.

Montaggio di un bucket in modalità di sola lettura

Per montare un bucket in sola lettura, passa l'opzione -o ro al tuo Comando gcsfuse. Ad esempio, per montare il bucket my-bucket in sola lettura sul nella directory /path/to/mount/point, esegui questo comando:

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

Montaggio di una directory all'interno di un bucket

Per impostazione predefinita, Cloud Storage FUSE monta tutti i bucket, inclusi tutti dei contenuti e delle strutture di directory del bucket. Per montare una directory specifica all'interno di un bucket, passa l'opzione --only-dir al comando gcsfuse. Ad esempio: per montare la directory my-bucket/a/b nella directory /path/to/mount/point, esegui questo comando:

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

Montaggio mediante il comando mount di Linux

L'installazione di Cloud Storage FUSE include un helper comprensibile mount, che ti consente di usare il comando mount per montare i bucket. Se utilizzi Linux, il comando mount deve essere eseguito dalla directory radice. Ad esempio: il seguente comando monta il bucket my-bucket nel percorso /path/to/mount/point:

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

Durante il montaggio utilizzando il comando mount di Linux, le opzioni dell'interfaccia a riga di comando di Cloud Storage FUSE possono essere passate come argomento al flag -o, ma i trattini (-) al loro interno devono essere sostituiti con trattini bassi (_). Ad esempio, implicit_dirs anziché implicit-dirs.

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

Montaggio continuo

L'installazione di Cloud Storage FUSE include un helper già installato nel percorso /sbin/mount.gcsfuse. Questo helper ti consente di creare usando il file /etc/fstab, in modo da poter mantenere i punti di montaggio.

Ad esempio, una volta aggiunta al file /etc/fstab, la seguente riga definisce un punto di montaggio per il bucket my-bucket nel percorso /mount/point:

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

Dove:

  • L'opzione rw specifica che il punto di montaggio deve essere creato con i comandi di lettura e autorizzazioni di scrittura.

  • L'opzione noauto consente di specificare che il file system non deve essere montato in all'avvio del dispositivo.

  • L'opzione user consente a chiunque di creare il punto di montaggio specificato in /etc/fstab file. Dopo aver aggiunto la riga di esempio al file /etc/fstab, puoi eseguire mount /mount/point come utente non root.

Se vuoi montare il bucket automaticamente all'avvio, potresti dover includere l'opzione x-systemd.requires=network-online.target o _netdev nella voce /etc/fstab, per assicurarti che Cloud Storage FUSE attenda che il sistema di rete sia pronto prima del montaggio. Ad esempio:

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

Puoi montare automaticamente un bucket come utente non root specifico includendo le opzioni uid, gid o entrambe nella voce /etc/fstab. Ad esempio:

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

Analogamente al comando Linux mount, i flag utilizzati per il montaggio il file /etc/fstab deve utilizzare trattini bassi (_) anziché trattini (-). Ad esempio, implicit_dirs anziché implicit-dirs.

Montaggio di un bucket con le cartelle

Per montare un bucket, incluse le relative cartelle gestite, includi il comando --implicit-dirs nel comando.

Ad esempio, per montare il bucket my-bucket e le relative cartelle gestite /path/to/mount/point, esegui questi comandi:

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

Quando monta un bucket con cartelle gestite, tieni presente quanto segue limitazioni e considerazioni in considerazione:

  • Le cartelle gestite vuote non vengono visualizzate nei bucket montati.

  • Non puoi impostare o gestire le autorizzazioni IAM su una cartella gestita usando Cloud Storage FUSE. Per impostare o gestire IAM autorizzazioni su una cartella gestita, consulta Utilizza IAM con le cartelle gestite.

  • Puoi copiare e spostare una cartella gestita in un bucket montato utilizzando l'cp e mv. Quando copi o sposti una cartella gestita, viene I criteri IAM nella cartella gestita originale non vengono mantenuti nella nuova cartella gestita. Devi e impostare nuovi criteri IAM sulla nuova cartella gestita.

Controlla le autorizzazioni di accesso al punto di montaggio

Per impostazione predefinita, Cloud Storage FUSE crea punti di montaggio dei bucket con autorizzazioni Consentire solo all'utente che richiama di accedere ai contenuti dei bucket montati. Si tratta di una misura di sicurezza implementata all'interno del kernel FUSE.

Per montare un bucket e consentire ad altri di accedere al punto di montaggio del bucket, puoi eseguire il comando mount come root con l'opzione -o allow_other:

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

Per evitare di montare il bucket come radice, è necessario aggiungere user_allow_other al file /etc/fuse.conf per consentire ad altri di accedere al punto di montaggio del bucket.

Per accedere a un bucket montato, gli altri utenti, oltre all'utente che chiama,devono avere le autorizzazioni IAM richieste.

Ruoli obbligatori per accedere a un bucket montato

Per leggere e scrivere in un bucket montato, chiedi al proprietario del bucket di concederti il ruolo Utente oggetti Storage (roles/storage.objectUser) nel bucket.

Questo ruolo predefinito contiene le autorizzazioni necessarie per leggere da un di un bucket montato e scrivere in un bucket montato. Per vedere le autorizzazioni esatte espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

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

Potresti anche riuscire a ottenere queste autorizzazioni con i ruoli personalizzati o e altri ruoli predefiniti.

Per istruzioni sulla concessione dei ruoli nei bucket, consulta Utilizzare IAM con i bucket.

Smonta un bucket

Per smontare un bucket, usa lo strumento fusermount:

fusermount -u /path/to/mount/point

Passaggi successivi